メインコンテンツまでスキップ

ノード

ノードはブロックチェーン・ネットワーク内の一つのEthereumノードを指し、Linuxで構成されたEC2 ServerにGethソフトウェア(Ethereumノード構成用ソフトウェア)をインストールしたものです。GethはDockerイメージとしてインストールされています。

ネットワーク内において最初に起動したノードは、起動後すぐにブロックの生成をはじめ、ブロックチェーンを作り出します。同じネットワーク内で2台目以降に起動したノードは、先に起動していたノードにAddPearリクエストを送り、成功した場合データのシンクが始まり最終的には同じブロックチェーンデータを共有します。

ノードには2種類のノードがあり、各ブロックの内容を検証してシール(承認して署名する)事ができるSignerノードと、同じブロックチェーンデータを共有しているがシールする事はできないTransactionノードとが存在します。Validatorノードは信頼できるノードであり、PoAによりコンセンサスを取りながら、順番がきたらブロックに署名(シール)する役割を持っています。つまりこのValidatorノードが信頼できない場合、そのブロックチェーン・データのそのValidatorが担当したブロックの信頼性には、疑問符がつくことになります。

Gethが採用するCliqueによるPoAアルゴリズムでは、1台でも信頼できないノードがあると、不正なトランザクションが成功したように見えてしまう恐れがあります。1/3未満のノードが乗っ取られてもビザンチン耐性を持った、より安全なコンセンサス・アルゴリズムであるIBFTなどをを採用した別のHyperleder Basuなどにも将来的には対応予定です。

Transactionノードは、コンセンサスには参加しないノード(ブロックに署名をする権利を持たない)ですが、トランザクションプールのデータは共有されています。ただし、データを返したり、ユーザからのリクエストを受け付けたりすることは可能で、おもに参照用ノードとして利用されることを想定していまする。リクエストを受けた場合にはそのリクエストはValidatorノードへ転送されます。