`

使用php如何进行以太坊开发的教程

PHP 
阅读更多

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

chain

智能合约平台

以太坊是第一个实现了虚拟机的区块链,因此为智能合约 - 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封装库,这些库封装了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;
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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

~$ php rpc-guzzle.php
  • 1

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

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

分享到:
评论

相关推荐

    web3.php操作以太坊

    在本文中,我们将深入探讨如何使用`web3.php`库来操作以太坊私链,特别是在PHP环境中。`web3.php`是Web3.js的PHP版本,它为以太坊区块链提供了一个完整的API,使开发者能够与以太坊网络进行交互。 首先,`web3.php`...

    php web3操作以太坊

    在本文中,我们将深入探讨如何使用PHP Web3库来与以太坊区块链进行交互。以太坊是一个开源、公共的区块链平台,它支持智能合约功能,而Web3.js是JavaScript库,为以太坊提供了丰富的API接口。在PHP中,我们可以使用...

    以太坊开发环境搭建

    以太坊开发环境搭建

    PHP与以太坊交互详解

    而PHP作为广泛应用的服务器端脚本语言,可以用来与以太坊进行交互,实现对以太坊网络的操作。这篇文章将深入探讨如何利用PHP与以太坊进行通信。 1. **开发环境搭建** 要在PHP环境中与以太坊交互,首先需要设置一个...

    10个优化以太坊智能合约gas利用的solidity代码模式

    本文将介绍在使用Solidity开发以太坊智能合约时常用的一些Gas优化模式。 以太坊教程链接: Dapp入门 | 电商Dapp实战 | Token实战 | Php对接 | Java对接 | Python对接 | C#对接 | Dart对接 1、使用短路模式排序...

    PHP环境下php-web3-使用手册PHPWeb3连接以太坊网络

    PHP Web3 是一种在PHP环境下使用Ethereum区块链开发智能合约和与以太坊网络进行交互的工具库。它提供了方便易用的API接口,使开发人员可以快速地构建和部署智能合约以及进行区块链操作。本文将介绍如何使用PHP Web3...

    PHP网站开发案例教程

    《PHP网站开发案例教程》是赵增敏撰写的一本专为初学者和进阶者设计的书籍,旨在帮助读者掌握使用PHP开发Web应用程序和动态网站的技术。PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域,它以其灵活性、高效性...

    PHP Web应用开发教程.rar

    【PHP Web应用开发教程】 PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源脚本语言,尤其在Web开发领域中占有重要地位。本教程针对的是那些希望通过学习PHP来构建动态、交互式网站的学生或初学...

    PHP高级开发教程

    **PHP高级开发教程** 在IT领域,PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发中占据着重要地位。本教程将引导你深入PHP的高级特性,让你从初学者快速成长为熟练开发者。PHP(Hypertext Preprocessor)以其...

    《PHP网站开发实例教程》源代码.zip

    《PHP网站开发实例教程》是一本深入浅出的教材,旨在教授读者如何使用PHP语言进行网站开发。源代码是本书教学内容的实践部分,通过分析和运行这些代码,读者能够更直观地理解PHP编程原理和实际应用。在这个压缩包中...

    php十大项目php开发教程

    "PHP十大项目php开发教程"是一个专为学习者设计的资源包,它涵盖了PHP编程的多个重要应用场景,旨在帮助开发者提升技能并将其应用于实际工作之中。通过这个教程,你将有机会深入理解PHP的核心概念,并通过实践项目来...

    PHP动态网站开发项目教程-源代码

    在本教程中,我们将深入探讨如何使用PHP进行动态网站开发,通过实际的项目代码来学习和理解PHP的核心概念和技术。这个教程旨在帮助开发者提升在PHP领域的技能,掌握动态网站的构建过程。 首先,PHP(Hypertext ...

    php高级开发教程 精华版

    《PHP高级开发教程》精华版是一本专注于提升PHP开发者技能的专业教程。这本教程深入探讨了PHP编程语言的高级概念和技术,旨在帮助已有基础的PHP程序员进一步提升他们的技术水平,掌握更复杂的项目构建和优化策略。 ...

    PHP+Mysql网站开发案例教程

    【PHP+Mysql网站开发案例教程】是一门深入浅出的教学资源,主要针对那些希望学习如何使用PHP编程语言和MySQL数据库来构建动态网站的初学者。本教程采用PPT的形式,使得教学内容更加直观易懂。 PHP(Hypertext ...

    PHP网站开发项目式教程(微课版)-源代码.zip

    6. **表单处理与验证**:网站开发常常涉及用户交互,学习者将学习如何使用PHP接收、验证表单数据,并进行错误处理。 7. **会话管理**:了解如何使用PHP的session功能跟踪用户状态,实现登录、注册等功能。 8. **...

    《PHP程序设计案例教程 第2版》课件—09PHP网站开发2.pdf

    《PHP程序设计案例教程 第2版》课件—09PHP网站开发2.pdf《PHP程序设计案例教程 第2版》课件—09PHP网站开发2.pdf《PHP程序设计案例教程 第2版》课件—09PHP网站开发2.pdf《PHP程序设计案例教程 第2版》课件—09PHP...

    PHP v4 动态网站开发实用教程

    《PHP v4 动态网站开发实用教程》是一本针对初学者和中级开发者设计的教程,旨在帮助读者掌握使用PHP v4进行动态网站开发的核心技术和实践方法。这本教程覆盖了PHP的基础语法、数据库交互、表单处理、session与...

    php开发教程

    "PHP 开发教程" PHP 开发教程是初级教程,旨在帮助初学者学习 PHP 开发的基础知识。本教程共分为 10 章,从配置 PHP 开发环境到会员管理系统设计,每章都详细介绍了 PHP 开发中的重要概念和技术。 配置 PHP 开发...

    PHP动态网站开发实例教程(第2版_钱兆楼+刘万辉)资源48368

    《PHP动态网站开发实例教程(第2版)》是由钱兆楼和刘万辉两位专家共同编著的一本深入浅出的PHP学习书籍。这本书针对Web开发初学者和有一定基础的开发者,旨在通过实例教学,帮助读者掌握PHP动态网站开发的核心技术...

Global site tag (gtag.js) - Google Analytics