コンセンサスアルゴリズム
合意形成がなされた状態に至るにはすべてのノードがまったく同じ取引データを保有する必要がある
有効なトランザクションだけをほかのノードに転送する
無駄なトランザクションを送りつける攻撃を防げる
ohbarye.icon ブロック単位でなくトランザクション単位で検証して伝播するかどうか決めるのか?だとするとブロックの中身を書き換えないといけないはず
検証とは?
トランザクションの構文やデータ構造に誤りがないか
インプット・アウトプットが空でないか、有効な値か
各インプットが有効かつすでに使用されるものが含まれていないか
署名が有効か
マイナーが定める一定の条件に従って優先順位を決め、新しいブロックに追加する
そのまま無事マイニングに成功すれば、ノードはピアノードにブロックを転送する ブロックチェーンの選択
ノードの持つもっとも長いチェーン
受け取ったブロックが有効であればもっとも長いメインチェーンに追加される
ただし受け取ったブロックの親ブロックがメインチェーンでなければ枝分かれしたチェーンに接続する
既存のチェーンに親ブロックが存在しなければオーファンブロックとして親が見つかるまで保存しておく