見出し画像

Ethereumのgethコマンドをjavascriptから動かしてみよう!

前提

この記事を実践するには下記の環境ができている必要があります。
RemixとEthereumの準備が必要です。

前提のハードルが高くなってきていますかね?
ここまでの記事をこつこつこなせばできるはずなので頑張りましょう!コメント等くれれば相談のりますよ!

Ethereumを下準備

$ cd /home/ubuntu/eth_private_net

$ geth --networkid 15 --datadir . --nodiscover --rpc --rpccorsdomain "*" --rpcport 8545 --rpcaddr "0.0.0.0" --rpcapi "web3,eth,net,personal" console 2>> err.log
Welcome to the Geth JavaScript console!

instance: Geth/v1.8.7-stable-66432f38/linux-amd64/go1.10
coinbase: 0x45dfb16e0e04d4063bd512ec7448744c7d5c5f2c
at block: 2920 (Mon, 14 May 2018 12:49:28 JST)
 datadir: /home/ubuntu/eth_private_net
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> 

web3.jsを使ってJavaScript でEthereumを動かす準備をしましょう

web3.jsとはEthereum JavaScript APIのことであり、イーサリアムノードとやりとり出来るJavaScriptライブラリのことです。これを入れてあげるとJavaScriptからEthereumに命令を出せます。

//最初のディレクトリに移動
cd

//web3準備
mkdir web3
cd web3
sudo apt-get install npm
npm install web3@0.20.0

ソースを書いてJavaScriptからEthereumと動かそう!

同じ階層に新しいアカウントを作成するgethコマンドを打たせるJavascriptを書きましょう。

//場所はここ!
cd /home/ubuntu/web3

//javascriptファイルを作成して編集しましょう
touch create_account.js
vim create_account.js
//コピペして貼り付けてください
//web3を定義
var Web3 = require('web3');
var web3 = new Web3();

//どこのportに向けて実行するのか指定
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

//新たなユーザーを作成するコマンドを記載
var _account = web3.personal.newAccount("test");
console.log(_account)

準備ができましたね!これで実行してみると・・・

node create_account.js
0x97de30698eaa8625d75264a6736827bc62200c2f

新しくAccountが生成されているっぽい!でもこれだけだと本当に作成されているかわかりません。というわけでAccountが増えているか確認できるJavaScriptを書いてみましょう。

//account_confirm.jsを作成
touch account_confirm.js
vim account_confirm.js
var Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

//accountのリストを表示するコマンドを記載
var _confirm = web3.eth.accounts;
console.log(_confirm)
//いざ実行!
node account_confirm.js
[ '0x97de30698eaa8625d75264a6736827bc62200c2f']

//もう一度Account作成を実行
node create_account.js
0x6c0cdbb0a6d54f689f5d30f14d8eb0578285e68a

//もう一度Account確認を実行してみましょう!
node account_confirm.js
[ '0x97de30698eaa8625d75264a6736827bc62200c2f',
  '0x6c0cdbb0a6d54f689f5d30f14d8eb0578285e68a' ]

Accountが増えていることが確認できましたね!
これでJavaScriptを使ってEthereumを動かすことができました。簡単ですね!画面からボタンを押した際にこのJavaScriptを読み込ませればコマンドを打たなくても画面からEthereumに命令を出せますね!

次の記事ではデプロイしたコントラクトを実行させてみましょう!そこまでできればEthereumのサービスを作成するときに詰まる部分はなくなるはず(´ー`)

この記事が気に入ったらサポートをしてみませんか?