⇒ hyperledger-fabricにブロックチェーンを学ぶ(1/9)ブロックチェーンとは
hyperledger-fabricにブロックチェーンを学ぶ(2/9)サンプルを動かす
[hyperledger-fabricにブロックチェーンを学ぶ(3/9)ブロックを見る]
(https://qiita.com/ctrlzr/items/487e4055151aab9a5591)
hyperledger-fabricにブロックチェーンを学ぶ(4/9)kafkaを入れる
hyperledger-fabricにブロックチェーンを学ぶ(5/9)可視化する
ブロックチェーンネットワークは、オープン、コンソーシアム、プライベートの3タイプに分けられる。ブロックチェーン比較
オープン:誰でもアクセス可能
コンソーシアム:認証された人のみアクセス可能
プライベート:一人だけアクセス可能
hyperledger-fabricはコンソーシアムになる。
何を言っているのか分からねーと思うので
システム構成
1組織の最小構成は以下のようになる。
※1枠が一つのサーバで、dockerで構築する。peerとDBで最小構成とするのは現実とかけ離れ過ぎる気がしてやめた。
- caはCertificate Authorityの略で、peerにアクセスするための認証を担う。
- peerはブロックチェーンを持っている。すべてのpeerで同じブロックチェーンを持つ。チェーンコードは検証に参加する場合に必要。
- DBは標準でstatedbがバンドルされている。CouchDB、BerkeleyDBが選択できる。CouchDBはdocker image。BerkeleyDBはOracle製品。
DBには何が入っているのか?
ブロックチェーンは実行したメソッドと引数しか保持していない。つまり、
ポルナレフからイギーに10円送金するメソッドをsend(ポルナレフ,イギー,10)とすると、ブロックチェーンが保持しているのはsend(ポルナレフ,イギー,10)だけで、ポルナレフとイギーがいくら持っているかは、ブロックチェーンでは分からない。
ポルナレフの所持金を見るには、DBからポルナレフをキーに取得する必要がある。
チェーンコードは何をするのか?
ポルナレフからイギーに10円送金するとき、手数料をとられるケースを考える。
送金額の1%を手数料とすると、send(ポルナレフ,イギー,10)では、ポルナレフの所持金から10.1円を引き、元締めに0.1円足し、イギーに10円を足す。
この一連の処理を行うのがチェーンコードだ。
チェーンコードが実行されるとブロック生成される。つまり、
ブロックがチェーン状に連なる。
ブロックチェーンで知ったかぶりをする
DBに保持されているのは現在の値、ブロックチェーンに保持されているのは履歴
これさえ言えれば、いかにも知った風は装えるだろう。
チェーンコードについては上記だけでは足りないので、知ったかぶりをするときに触れてはいけない。
つづく(システム構築の予定)