この記事の内容は、JSON-RPC を介して Ethereum と対話する PHP のコンテンツ分析に関するものであり、一定の参考価値があります。必要な友人は参考にしていただければ幸いです。
昨年よりブロックチェーン(Blockchain)ビジネスを展開しております。最近イーサリアムを使用し、PHP を使用したので、このトピックについてお話しようと思いました。
ここには前提があります:
1. ブロックチェーンを理解する
2. プログラミング言語を理解する
本文:
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
今回は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 呼び出しの準備をしましょう。その前に、ゲス側でもう少し準備をしましょう。
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 へのアクセスを許可するドメイン。ノードを公開する場合、「*」の場合はすべてが許可されることに注意してください。
$ cd /home/yoshida/php-eth/ $ ls -l ethereum.php json-rpc.php $ vim test.php <?php require_once 'ethereum.php'; $ethereum = new Ethereum('localhost', '8956'); print_r($ethereum->eth_accounts());このスクリプトを実行すると、次のようなアカウントのリストが表示されるはずです。
$ php test.php Array ( [0] => 0xb83fa0d1c6b34a42f900cca5a32400c3b6f69f4b )接続できない場合はポート設定等を確認してください。 ここまで簡単に説明してきましたが、PHPでの開発は意外と簡単に感じられませんか? 関連する推奨事項:
ブラウザが Bitcoin Core クライアントの JSON-RPC インターフェイスを通じて関連データを取得する方法
で実装された単純な json rpc フレームワークの例
以上がPHP は、JSON-RPC を介して Ethereum と対話するためのコンテンツ解析を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。