【Ethereum】PHP LaravelからEthereum(Geth)へのRPC接続方法
1.前提
-
Laravelをインストールしている
-
Ethereum(Geth)を起動している
2.環境
- 使用OS
- Ubuntu 16.04.4
- 使用言語
- PHP v7.2.4
- Laravel 5.5.40
- geth v1.8.2
3.ライブラリのダウンロード
- 使用OS
- Ubuntu 16.04.4
- 使用言語
- PHP v7.2.4
- Laravel 5.5.40
- geth v1.8.2
- PHP v7.2.4
3.ライブラリのダウンロード
PHPからEthereumへRPC接続を行うため、今回はethereum-php
というライブラリを使用していきます。
→ https://github.com/btelle/ethereum-php
Laravelのディレクトリから以下のコマンドを叩いていきます。
download
$ cd <laravel project>
$ mkdir app/Libs
$ mkdir app/Libs/Eth
$ cd app/Libs/Eth
# ethereum.php のダウンロード
$ wget -O Ethereum.php https://raw.githubusercontent.com/btelle/ethereum-php/master/ethereum.php
$ vim Ethereum.php
# namespace を記載
# namespace App¥Libs¥Eth
# json-rpc.php のダウンロード
$ wget -O JSON-RPC.php https://raw.githubusercontent.com/btelle/ethereum-php/master/json-rpc.php
$ vim JSON-RPC.php
# namespace App¥Libs¥Eth
4.PHP LaravelからEthereum(Geth)への接続
今回はGethをプライベートネットワークで起動している前提で進めていきます。
.env
### 上記省略 ###
ETH_NODE_HOST=localhost
ETH_NODE_PORT=8545
config/eth.php
<?php
return [
'node_host' => env('ETH_NODE_HOST', 'localhost'),
'node_port' => env('ETH_NODE_PORT', '8545'),
];
routes/web.php
<?php
Route::get('/', 'IndexController@index');
app/Http/Controllers/IndexController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Config;
# 先ほどダウンロードしたライブラリをuseする
use App\Libs\Eth\Ethereum;
class IndexController extends Controller
{
public function index()
{
$eth = new Ethereum(Config::get('eth.node_host'), Config::get('eth.node_port'));
dd($eth->eth_accounts());
}
}
これでPHP側からGethのコマンドを叩くことができるようになりました。
あとはGethのコマンドラインから叩くのと同じような形で使っていけばOKです。
5.参考文献
Author And Source
この問題について(【Ethereum】PHP LaravelからEthereum(Geth)へのRPC接続方法), 我々は、より多くの情報をここで見つけました https://qiita.com/daiki44/items/dfe381c64a03d5ffc2c8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .