2023-03-25
Ubuntu Server 21.10でイーサリアムブロックチェーン【その1】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その2】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その3】
続きです。今回はgethを外部から使う用の様々な立ち上げかたをメモしてみます。
1、最初からアカウントのアンロックがされた状態で起動する
毎回personal.unlockAccountするのが面倒な場合有用です。
パスワードファイルの作成
任意のファイルに1行1パスワードな形で書いて保存しておきます。ここではeth_test/.gethpassとします。
vi eth_test/.gethpass hoge1 hoge2
1行目がアカウント1のパスワード、2行目がアカウント2のパスワードです。
本人のみ読み取り可にします。
cat eth_test/.gethpass hoge1 hoge2 chmod go-rwx eth_test/.gethpass
対応アカウントとパスワードファイルを指定して起動
geth --networkid "15" --nodiscover --rpc.allow-unprotected-txs --allow-insecure-unlock --unlock 0,1 --password "/home/hogeuser/eth_test/.gethpass" --datadir "/home/hogeuser/eth_test" console 2>> /home/hogeuser/eth_test/geth_err.log
2、デーモンプロセスとしてバックグラウンド起動しコンソールは別途接続
サーバープロセスとしてバックグラウンド実行するには、consoleを外して&をつけ、cacheを指定し起動する。SSH接続が切れても継続するようにnohupをつけている。
nohup geth --networkid "15" --nodiscover --rpc.allow-unprotected-txs --cache 2048 --datadir "/home/hogeuser/eth_test" 2>> /home/hogeuser/eth_test/geth_err.log &
別途コンソール接続
eth_test/geth.ipcというUNIXドメインソケットファイルがあるので、それを指定して接続。
geth --datadir "/home/hogeuser/eth_test" attach ipc:/home/hogeuser/eth_test/geth.ipc
なお、デーモンプロセスを終了するには
ps aux | grep hogeuser
などとして、gethのプロセス群を発見してひたすらkillする必要がある。
3、HTTP/Web API接続可能にして起動する
ポート番号は自分で決める。ここでは8575。
geth --http --http.addr "0.0.0.0" --http.port 8575 --http.api "web3,eth,net,personal" --http.corsdomain "*" --rpc.allow-unprotected-txs --datadir "/home/hogeuser/eth_test" --nodiscover --networkid 15 console 2>> /home/hogeuser/eth_test/geth_err.log
外部からWeb API経由で接続テストをする
curlでバージョン情報取得APIを打ってみる。
curl -X POST http://127.0.0.1:8575/ --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}' -H "Content-Type: application/json" {"jsonrpc":"2.0","id":1,"result":"Geth/v1.10.17-unstable-2352c722/linux-amd64/go1.17.5"}
4、マイニングを開始した状態で起動する
※マイニングにはPCの大量の電力を消費します。自己責任注意※
geth --mine --miner.threads 4 --identity "sampleNode" --rpc.allow-unprotected-txs --datadir "/home/hogeuser/eth_test" --nodiscover --networkid 15 console 2>> /home/hogeuser/eth_test/geth_err.log
eth.mining true miner.stop() null
5、まとめの一括起動
1~4すべてを組み合わせたバックグラウンド起動は以下のようになる。
nohup geth --mine --miner.threads 4 --identity "sampleNode" --http --http.addr "0.0.0.0" --http.port 8575 --http.api "web3,eth,net,personal" --http.corsdomain "*" --networkid "15" --nodiscover --rpc.allow-unprotected-txs --cache 2048 --allow-insecure-unlock --unlock 0,1 --password "/home/hogeuser/eth_test/.gethpass" --datadir "/home/hogeuser/eth_test" 2>> /home/hogeuser/eth_test/geth_err.log &
次回はブロックチェーン上でプログラムを実行できるスマートコントラクトを作成してみます。
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Windows版Google Driveが使用中と言われアンインストールできない場合
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【Apache】サーバーに同時接続可能なクライアント数を調整する
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Linux】iconv/libiconvをソースコードからインストール
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】