ホームページ  >  記事  >  バックエンド開発  >  PHP は、JSON-RPC を介して Ethereum と対話するためのコンテンツ解析を実装します。

PHP は、JSON-RPC を介して Ethereum と対話するためのコンテンツ解析を実装します。

不言
不言オリジナル
2018-08-23 10:03:063013ブラウズ

この記事の内容は、JSON-RPC を介して Ethereum と対話する PHP のコンテンツ分析に関するものであり、一定の参考価値があります。必要な友人は参考にしていただければ幸いです。

昨年よりブロックチェーン(Blockchain)ビジネスを展開しております。最近イーサリアムを使用し、PHP を使用したので、このトピックについてお話しようと思いました。

ここには前提があります:

  • 1. ブロックチェーンを理解する

  • 2. プログラミング言語を理解する

本文:

1. 開発環境

Ubuntu 14.04 LTS を使用します。 OSのインストール後、所定のコマンドを入力します。

$ sudo apt-get update
$ sudo apt-get upgrade

その後、SSH、iptables、ntpなどの設定を行いました。

次に、Apache PHP が登場します。 PHPのバージョンは5.5になります。

$ sudo apt - get install php 5 libapache 2 - mod - php 5 php 5 - curl

2.イーサリアムの紹介

今回はGO言語で作られたイーサリアムノードgo-ethereum通称gethを使用します。

最初にリポジトリを追加しましょう。

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository -y ppa:ethereum / ethereum
$ sudo add-apt-repository -y ppa:ethereum / ethereum-dev

あとはインストールするだけです。

$ sudo apt-get update
$ sudo apt-get install ethereum

インストールが完了したら、すぐに geth を起動します。
まず、データディレクトリを作成し、最初のブロック(ジェネシスブロック)の設定を記述します。

$ mkdir~ / eth_private_net
$ vim~ / eth_private_net / my_genesis.json

{
“nonce”:“0x0000000000000042”,
“timestamp”:“0x0”,
“parentHash”:“0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”,
“extraData”:“0x0”,
“gasLimit”:“0xffffffff”,
“难度”:“0x4000”,
“mixhash”:“0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”,
“coinbase”:“0x3333333333333333333333333333333333333333”,
“alloc”:{}
}

次に、Genesis ブロックを作成し、geth を開始します。

$ geth --datadir "/home/yoshida/eth_private_net" init /home/yoshida/eth_private_net/my_genesis.json
$ geth --networkid 57598955 --port 8955 --nodiscover --datadir "/home/yoshida/eth_private_net" console 2>> /home/yoshida/eth_private_net/geth_err.log

コンソール モードの場合、起動は成功します。

いくつかのオプションを指定します。説明は以下にまとめられています。

  • ネットワーク ID、パブリック ノードに接続します。

  • ポート、スタンバイ用に使用されるポートです。 4桁に変更しました。

  • nodiscover、これはノードが自動的に表示されないように設定します。

  • datadir は、ブロックチェーンがデータを保存するディレクトリを指定します。

  • コンソール、同時にコンソールを起動します。

さて、次の PHP 呼び出しの準備をしましょう。その前に、ゲス側でもう少し準備をしましょう。

3. JSON-RPC 呼び出しの準備

PHP から JSON-RPC 経由でアクセスします。ここで近傍を設定していきます。

まず、現在のアカウント情報を取得します。最後に起動した geth コンソールも使用します。

> eth.accounts
[]

まだアカウントを作成していないので、作成する必要があります。

> personal.newAccount("password")
"0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b"
> eth.accounts
["0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b"]

アカウントが作成されました。マイニングすると報酬が得られるように設定しました。

> miner.setEtherbase(eth.accounts [0])

次に、現在のノードでは RPC 呼び出しが許可されていないため、オプションを追加して再起動します。まず、geth をまとめましょう。

> exit

オプションを追加して再起動しましょう

$ geth --networkid 57598955 --port 8955 --nodiscover --rpc --rpcaddr "0.0.0.0" --rpcport "8956" --rpccorsdomain "*" --rpcapi "eth,net,web3,personal" --datadir "/home/yoshida/eth_private_net" console 2>> /home/yoshida/eth_private_net/geth_err.log

rpc のオプションをいくつか追加しました。説明は以下の通り。

  • rpc、RPC バックアップを可能にします。

  • rpcaddr、RPC バックアップ IP アドレスに使用されます。

  • rpcport、RPC をリッスンするために使用されるポート。ポート番号を4桁に下げました。

  • rpccorsdomain、RPC へのアクセスを許可するドメイン。ノードを公開する場合、「*」の場合はすべてが許可されることに注意してください。

#これでノード側の準備が整いました。次にPHPからの呼び出しです。

4. PHP からのアクセス

最後に、PHP からアクセスする理由ですが、コードを書くときにこれを使用するのは非常に難しいためです。

README にあるように、必要なのはクラスを作成することだけです。

テストスクリプトと同じディレクトリに置いて使ってみましょう。

$ cd /home/yoshida/php-eth/
$ ls -l
ethereum.php json-rpc.php
$ vim test.php
<?php

require_once &#39;ethereum.php&#39;;
$ethereum = new Ethereum(&#39;localhost&#39;, &#39;8956&#39;);
print_r($ethereum->eth_accounts());
このスクリプトを実行すると、次のようなアカウントのリストが表示されるはずです。

$ php test.php
Array
(
[0] => 0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b
)
接続できない場合はポート設定等を確認してください。

ここまで簡単に説明してきましたが、PHPでの開発は意外と簡単に感じられませんか?

関連する推奨事項:

ブラウザが Bitcoin Core クライアントの JSON-RPC インターフェイスを通じて関連データを取得する方法

php

で実装された単純な json rpc フレームワークの例

以上がPHP は、JSON-RPC を介して Ethereum と対話するためのコンテンツ解析を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。