php以太坊JSON-RPC API接口库

介绍一个php以太坊JSON-RPC API接口库,全面实现了web3可支持php7.x —— ethereum-php

作者digitaldonkey,使用ethereum-php需要先添加库到composer.json文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"minimum-stability":"dev",
"autoload": {
"psr-4": {
"Ethereum\\": "src/"
}
},
"repositories": [
{
"type": "git",
"url": "https://github.com/digitaldonkey/ethereum-php.git"
}
],
"require": {
"digitaldonkey/ethereum-php": "dev-master"
}
}

用法:

1
composer require digitaldonkey/ethereum-php

这个库也是在Drupal以太坊模块composer.json中重要的组成部分。该模块旨在成为一组微型模块,提供各种方法来连接Drupal和以太坊区块链。

1
2
3
4
5
6
7
8
9
10
11
12
require __DIR__ . '/vendor/autoload.php';
use Ethereum\Ethereum;

try {
// Connect to Ganache
$eth = new Ethereum('http://127.0.0.1:7545');
// Should return Int 63
echo $eth->eth_protocolVersion()->val();
}
catch (\Exception $exception) {
die ("Unable to connect.");
}

调用智能合约

你可以轻松地调用智能合约中的函数。

其中JSON文件“$fileName”是使用Truffle编译合约时所得到的。

1
2
3
4
5
6
7
8
9
$ContractMeta = json_decode(file_get_contents($fileName));
$contract = new SmartContract(
$ContractMeta->abi,
$ContractMeta->networks->{NETWORK_ID}->address,
new Ethereum(SERVER_URL)
);
$someBytes = new EthBytes('34537ce3a455db6b')
$x = $contract->myContractMethod();
echo $x->val()

你还可以在智能合约中运行测试,check out EthTestClient

限制与结构

目前支持所有数据类型的数据,未来期望支持数组和列表。

这个库现在是只读的。这意味着你可以查询存储在以太坊区块链中的信息。

要写入区块链,需要用目前还不支持的私钥来签署交易。

参考文档

可用的API文档:ethereum-php.org.

可以参考以太坊RPC文档和数据编码参考Ethereum Wiki中的RLP dcumentation

或者去以太坊前沿指南

  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和事件等。
  • web3j教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。

汇智网原创翻译,转载请标明出处。这里是原文