Ethereumプライベートネット(Geth)とRemix (Browser-Solidity)をつなぐ

2018年1月13日

EthereumのプライベートネットとRemix (Browser-Solidity)を接続し、Contractをデプロイしてみます。

 

開発環境
macOS High Sierra バージョン10.13.2
Geth 1.7.3-stable

 

プライベートネットに関しては下記の関連ページをご参照下さい。

 

関連ページ

Gethをインストールしてプライベートネットにつなぐ[Mac]

 

 

Gethの起動


 

Contractをプライベートネットへデプロイするには、Gethを起動しマイニングしている状態(miner.start())が必要となります。

 

まずGethを起動させます。下記コマンドを実行すると、–unlockで指定したアドレスのアカウントのPassphraseが聞かれるのであらかじめ設定していたワードを入力して下さい(関連ページではhoge1と入力)。

 

 

主なコマンドオプションの説明

 

–networkid
ネットワーク識別子。1、2、3以外を指定します。

 

–datadir
ご自身の環境を適切に設定して下さい。詳しくは関連ページをご参照下さい。

 

–unlock
上記コマンドではアドレスそのものを指定しましたが、アカウントのインデックスを指定することもできます。関連ページの説明の流れではeth.accounts[0]と同じであるため –unlock 0 のように指定することも可能です。

 

–rpc
GethのJSON-RPCサーバとしての機能を有効化します。ブラウザからHTTP通信ができるようになります。

 

–prcaddr
JSON-RPCサーバのアドレス。つまりGethを実行しているマシンのIPアドレスを設定します。デフォルトではlocalhostが設定されます。

 

–rpcport
JSON-RPCサーバのポート番号。

 

–rpccorsdomain
クロスドメインを許可するIPアドレスを設定します。今回は全て(*)に指定しています。

 

 

 

Remix (Browser-Solidity)


 

次にRemix での作業となります。今回Remixはダウンロードせずにネットワーク上のを利用しますが、その場合URLに注意して下さい。httpsではなくhttpでアクセスして下さい。JSON-RPCでのアクセスの際にAjaxが利用されていますが、httpsからhttpへのAjax通信がブロックされてしまうためです。

 

http://remix.ethereum.org/

 

Remixに関しては下記の関連ページもご参照下さい。

Remix (Browser-Solidity)を利用する[Hello World]

 

 

まず「Environment」項目の「Web3 Provider」を選択します。

 

 

 

下記のようなウィンドウが表示されたら「Web3 Provider Endpoint」に「http://localhost:8545」が設定されているのを確認し「OK」をクリックします。Gethを起動させた際のオプションである「–prcaddr(IPアドレス)」と「–rpcport(ポート番号)」に合わせる必要があります。

 

 

 

次に下記のsolidityコードを入力します。このコントラクト(HelloAddress)の送信者アカウントのアドレスを取得するだけのコードです。

 

 

5行目
アドレス型の状態変数を宣言しています。

 

9行目
msg.senderは、このコントラクトの送信者(coinbaseアカウント)のアドレスを取得することのできる予約語(グローバル変数)です。

 

 

 

「Create」をクリックしコントラクトをデプロイします。「getOwnerAddress」ボタンが表示されたら、そのボタンをクリックしアドレスを表示させてみます。Gethを起動した際に–unlockオプションで指定したアカウントのアドレスが表示されるはずです。

 

 

 

 

参照書籍


 

 

 

LINEで送る
Pocket

Copyright © 2018 思考の葉 All Rights Reserved.  プライバシーポリシー