以下に書いてあることが、長すぎるので、サクッと理解した人向けに箇条書きでまとめ中。
諸事情あって、執筆途中で投稿してます。
The Ripple Ledger Consensus Process | Ripple
2つのノード
トラッキング・ノード (tracking node)
主な機能
* トランザクションの分配
* 元帳に関するクエリへの返答
検証ノード (validating node)
- トラッキングノードと同じ機能を実行し、それに加え、元帳の配列を進める
トランザクションの動き
- クライアントアプリからのトランザクションを承認する際に、各トラッキングノードは最後に検証された元帳を開始地点として使用
- 承認されたトランザクションは、候補になる
- ノードは、これらのトランザクション候補をピアに中継する
- 理想としては、各トランザクション候補が全ノードに広まり、それぞれが最後に検証された元帳へ同一トランザクションのセットとして適応されること
- ですが、トランザクションが広まるのに時間がかかるため、ノードは常に同一のトランザクション候補のセット扱っているわけではない
- Rippleネットワークは、「コンセンサス」というプロセスで、同一のトランザクションとして処理され、検証された元帳がネットワーク全体で同一のものとなるようにする
コンセンサス
- ノードは、トランザクション候補の情報を共有
- 「コンセンサス」のプロセスを通じて、検証ノードは特定のサブセットのトランザクション候補が、次の元帳に入れることの検討に合意する
- 「コンセンサス」は、反復プロセスである
- このプロセスで、ノードがプロポーザル(トランザクション候補のセット)を中継する
-
ノードは、圧倒的多数のピアが、同じセットのトランザクション候補に合意するまで、プロポーザルの通信と更新を行う
-
コンセンサスの際、各ノードは「選ばれた検証者」と呼ばれる特性のセットのピアによるプロポーザルを評価する
- 選ばれた検証者は、