以太坊是备受关注的区块链,它基于密码学技术和P2P通信技术 构建了一个去中心化的平台,所有的交易同步保存在每个节点中, 通过将区块单向级联成链,以太坊有效的保证了交易的不可篡改:

智能合约平台

以太坊是第一个实现了虚拟机的区块链,因此为智能合约 - Smart Contract - 的运行提供了良好的支持环境。也正因为这个原因,以太坊被称为区块链 2.0,以区别于比特币代表的以数字加密货币为核心特征的区块链1.0。

可以将智能合约理解为机器之间的合同约定,在满足一定条件时自动 执行约定好的逻辑,例如在保险理赔流程中,如果理赔条件满足就自动 将赔偿金释放给出险人,这个流程就可以使用智能合约来实现。

有多种语言可以开发以太坊智能合约,但目前最常用的是类似于JavaScript的 Solidity语言。本课程中将采用Solidity讲解智能合约的开发。

JSON-RPC

如果我们希望构造一个去中心化应用(DApp),除了智能合约的开发, 通常还需要使用其他开发语言为用户提供操作智能合约的用户接口,例如 开发一个网页、一个手机App或者一个桌面应用。这些代码都需要与以太坊 进行交互。

以太坊规定了每个节点需要实现的JSON RPC API 应用开发接口,该接口是传输无关的,应用程序可以通过HTTP、websocket或IPC等多种 通信机制来使用该接口协议操作以太坊节点:

理论上你可以使用任何语言基于JSON RPC接口开发出以太坊之上的 去中心化应用,不过为了提高开发效率,更好的办法是 使用特定语言的JSON RPC封装库,这些库封装了JSON RPC的协议细节, 有助于开发人员聚焦在业务逻辑的实现上。

不过在php社区中,目前还缺乏得到统一认可的、相对比较成熟的以太坊开发包,在DApp的开发过程中,往往需要综合利用多方面的代码资源才能解决 问题。

课程地址:
http://xc.hubwiz.com/course/5b36629bc02e6b6a59171de3

课程内容

本课程的目的是帮助php工程师快速掌握开发以太坊应用的技能,同时穿插 讲解以太坊的一些基本概念,例如:账户、交易和智能合约的开发等。

第二章 Hi,以太坊
这一章将通过一个简单的php应用的开发来讲解使用 php进行以太坊应用开发的最简流程,通过这一部分的学习,你就可以在自己 的php应用中引入基本的以太坊支持了。

第三章 账户管理
这一章将详细介绍以太坊的账户管理接口。如果你 对开发中心化钱包应用感兴趣,或者需要在自己的网站中动态创建账户(例如,你 希望为网站增加对以太坊支付的支持),那么这部分内容会有很大的帮助。

第四章 理解状态与交易
这一章主要讲解以太坊的交易操作接口,同时也介绍一些 重要的概念,例如状态、裸交易、gas等。这部分内容将帮助你理清php 应用与以太坊交互的大多数问题。

第五章 智能合约的开发、部署与交互
这一章将通过一个ERC20代币合约的开发、编译、代码生成、部署与交互 的完整流程,讲解使用php操作solitiy合约的方法。如果你希望为自己的 网站增加代币支持,这一部分的内容是必须的。

第六章 过滤器与事件
这一章主要讲解以太坊的通知机制以及如何在php中使用过滤器来监视 块和交易的生成与合约事件的触发。

课程为每个知识点都提供了相应的预置代码,你可以在实验环境的~/repo 目录下查看。

课内php的小例子

使用php获取节点版本信息。

我们在php代码中发送http请求包就可以了。你可以使用任何一个你喜欢的http库例如curl、guzzle等, 甚至直接使用socket来调用以太坊的JSON RPC API。

例如,下面的代码使用guzzle库:

<?php
$client = new GuzzleHttp\Client();
$opts = ['json' => ['jsonrpc' => '2.0','method' => 'web3_clientVersion','params' => [],'id' => time()]
];
$rsp = $client->post('http://localhost:8545',$opts);
echo $rsp->getBody() . PHP_EOL;
?>

把上面的内容保存为raw-test.php,然后执行:

~$ php rpc-guzzle.php

你应当就可以看到结果了。

大家可以访问这里php以太坊,本教程详细讲解如何使用Php开发语言为网站增加以太坊区块链支持,课程内容即涉及以太坊中的核心概念,例如账户管理、状态与交易、智能合约开发与交互、过滤器和事件等,同时也详细说明如何使用Php与以太坊进行交互,是Php工程师学习以太坊应用开发的不二选择。

另外推荐几个教程:
- web3j教程,主要是针对java和android程序员进行区块链以太坊开发的web3j开发详解。
- 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。
- 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。

php工程师进行以太坊开发的教程相关推荐

  1. Web程序员如何入门以太坊开发

    我经常构建使用以太坊的Web应用程序,我理所当然地认为每天都使用的是神奇的工具集.我们的生态系统正在迅速发展,我认为很多新人都感到不知所措.以太坊是一项了不起的技术,但它也是新生的,而且根本没有足够的 ...

  2. 在MacOS上构建以太坊开发环境

    以太坊是流行的区块链去中心化平台.作为本文的一部分,你将了解如何在MacOS平台上设置以太坊. 首先需要对区块链和以太坊有基本理解,即什么是以太坊之类的? 工具集 以太坊开发生态系统包括以下工具列表. ...

  3. 在以太坊开发自己的ERC-20代币及如何ICO

    今天我将向你展示如何在以太坊区块链上开发你自己的加密货币并将其出售!我将向你展示如何使用以太坊智能合约逐步创建自己的ERC-20代币和众筹销售,如何测试智能合约,如何将智能合约部署到以太坊区块链,以及 ...

  4. 视频教程-区块链项目:基于以太坊开发拍卖系统DApp教程(含资料)-区块链

    区块链项目:基于以太坊开发拍卖系统DApp教程(含资料) 张长志技术全才.擅长领域:区块链.大数据.Java等.10余年软件研发及企业培训经验,曾为多家大型企业提供企业内训如中石化,中国联通,中国移动 ...

  5. 区块链教程之以太坊开发连接主网和测试网

    目录 第一章 以太坊开发连接主网和测试网 前言 前端开发以太坊在没有后台支持的情况下,可以采用第三方的接口以及web3这个库,就可以开发一个类似小狐狸(metaMask)那样的以太坊钱包. 提示:以下 ...

  6. linux以太坊开发环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> 如果你希望马上开始学习以太坊DApp开发,可以访问汇智网提供的出色的在线互动教程: 以太坊DApp实战入门教程 以太坊去中心化 ...

  7. python 节点_python在以太坊开发中节点和网络如何选择?

    以太坊节点 为什么我需要连接到一个节点? 以太坊协议定义了一种方法,用于人们通过网络与智能合约相互作用.为了获得关于合约.账户余额和新交易状态等最新的信息,协议需要与网络上的节点进行连接.这些节点不断 ...

  8. 以太坊开发语言solidity简介

    2019独角兽企业重金招聘Python工程师标准>>> 以太坊的应用被称为去中心化应用(DApp),DApp的开发主要包括两大部分: 智能合约的开发 用户界面的开发 在本文中,我们将 ...

  9. 以太坊开发入门,完整入门篇(小白可以看看,高手看看自己有没有遗漏的

    2019独角兽企业重金招聘Python工程师标准>>> 翻译自:https://medium.com/@mattcondon/getting-up-to-speed-on-ether ...

最新文章

  1. 机器学习笔记 时间序列预测(最基本的方法【benchmark】)
  2. MATLAB Simulink中如何实现锁相环
  3. 错误: 非法的表达式开始_虽然这两个C语言宏定义很简单,但是能在程序运行前找到错误代码...
  4. css两张图片怎么合在一起_web前端入门到实战:纯CSS实现两个球相交的粘粘效果...
  5. django中ForeignKey指向自身的方法
  6. WebView 指南
  7. WebRTC + JsSIP + freeSWITCH一对一视频聊天
  8. RadSegNet: 一个稳定的雷达摄像头融合方法(2022最新)
  9. 从0开始——CAD与Tekla开发入门
  10. c语言今天星期几问题,C语言输入今天星期几
  11. android swap 大小,android 手机内存SWAP经验
  12. python编写程序解方程_第2章 Python初步 课后题
  13. 记一次稀里糊涂的面试
  14. mysql查询使用qq邮箱注册_Spring Boot实现qq邮箱验证码注册和登录验证功能
  15. FINN(二)CNN,BNN及其硬件实现的背景知识
  16. NUC972触摸屏驱动移植过程分析(三)
  17. 算法篇-2-分治思想-棋盘覆盖归并排序Strasssen矩阵乘法循环赛安排
  18. CTF(二)DES中的S盒
  19. 报表软件解决报表需求
  20. LEARN_前端进阶_深浅拷贝原理

热门文章

  1. 【评测】TaqMan️探针和IDT PrimeTime️ 双淬灭探针的对比
  2. 三层代码讲解--第二课 DATE :2004-05-25
  3. 展锐平台PIN码输错三次后提醒PUK输入
  4. 期盼小豆发芽(2008.7.20)
  5. 高中计算机专业班主任工作总结,中等专业学校计算机班主任年工作总结
  6. NDK at ...Android\Sdk\ndk\21.1.6528147 did not have a source.properties file
  7. 为什么会对电视剧上瘾?
  8. 常用测试用例模板大全
  9. 渗透测试笔记下载YYDS
  10. 服务IP(VIP)的作用