Bitcoin Cashのノードを立てる方法




環境

  • AWS Amazon linux t2.medium
  • NVM v0.33.8
  • Node.js v4.8.7

クライアント

Bitcoin Cashクライアントは/bitcoreを使っています。これはBitpayのBitcoreをフォークしてBitcon Cash用に修正を加えたものみたいです。

ちなみにsatoshilabsのbitcoreはTREZORで使われているとのことなので本当なら問題ないかと思います。

Node.jsとgitのインストール

Node.jsとgitのインストールは下記にまとめていますので参考にしてください。

参考記事:EC2にNode.jsとGitをインストールする最小手順

クライアントのインストール

インストールはgithubからリポジトリをクローンし、npm installします。ブランチはbcashというのがあるのでこれに切り替えます。

ノードの起動と同期

起動と同期は下記コマンド実行するだけです。

しかし、実行するとこんなエラーが。。。

このエラーはフォーク元のISSUEでも上がっていたので同じ対処すると解消します。ISSUEはこちら

しかし、今度は別のところで同じエラーが出ます。

再度returnを追記します。

すると今度はうまくいってノードが起動し、同期が始まります。かなり少しずつですがブロック高が積み上がっているのがわかります。

bitcoindのバージョン確認

実際にノードの裏側で起動しているbitcoindを確認します。bitcoinabcが起動していることが確認でき、期待通りの動作をしてくれていることが確認できます。

 

ネットワークの変更

接続先ネットワークを変更するには下記bitcore-node.jsonのnetworkを変更します。本番ネットワークはlivenet、テストネットワークはtestnetを指定するとそのネットワークのブロックを取得できます。

Insight APIを叩く

ノードを立てることができたので今度はブロック情報を取得できるAPIを叩いてみます。Insight APIのドキュメントはこちらです。

まず初めはジェネシスブロックを取得してみました。ブロックハッシュが取得できたのでBlock Explorerなどで確認できます。

次はUTXOを取得してみます。ブロック高1にあるアドレスを指定してみました。かなり多くのUTXOが取得できたので前半部分のみ記載しています。

UTXOの各項目はこのようになっています。

まとめ

Bitcoin Cashのノードの起動からInsight APIを使ったブロックチェーン内の情報取得を行いましたが意外と簡単にできました。

ノードを立てていじるだけでもかなりの勉強になったのでぜひ試してみてください。

追記

サーバをUbuntuで再度試してみたところ起動時のエラーが出なかったです。詳しい方がいましたらアドバイス頂けたらと思います。

最後に

最後にブロックチェーンエンジニアって何?どうやったらなれるの?という人向けに書いた下の記事も読んでみてください。

>>ブロックチェーンエンジニアになるには何をすべきか

おすすめ書籍

ビットコインとブロックチェーンの詳細をしっかりと学びたい方にはこちらの書籍が非常におすすめです。ウォレットの仕組み、楕円曲線暗号、P2Pプロトコル、公開鍵暗号などビットコインを支える技術について詳細に解説されています。また、サンプルコードを通して実際に手を動かして学べるので非常に濃い内容となっています。

こちらはブロックチェーンの初学者向けになります。ブロックチェーンの応用例の紹介から基礎的な理論まで分かりやすく図解で解説されています。また、ビットコインやEthereum、HyperLdger Fabricを実際に稼働させてみて動作を理解するためのサンプルコードの解説もあります。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です