Upgrade to Pro — share decks privately, control downloads, hide ads and more …

セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表

セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表

Yuto Takamune

August 11, 2023
Tweet

More Decks by Yuto Takamune

Other Decks in Programming

Transcript

  1. リーダー選挙のフロー • リーダー検出 ◦ リーダーは定期的に FollowerにHeartbeatを送信している ◦ Followerは、一定時間HeartBeatが送られてこなかった場合に自身を Candidateとしてリーダー選 挙に立候補する

    • リーダー決定 ◦ Candidateは全てのノードに対して投票リクエストを送り、受け取ったノードは Leaderとして受け入 れるか否かを回答する ◦ 過半数以上の賛成を得れた場合はそのノードが Leaderとなる
  2. Client {Log: [hoge]} を追加 node 01 node 02 node 03

    node 04 node 05 node01: Leader node02~05: Follower Logをレプリケーション {Log: [hoge]} node01 gya, fuga node02 gya node03 gya, fuga node04 gya, fuga node05 gya, fuga
  3. node 01 node 02 node 03 node 04 node 05

    node01: Leader node02~05: Follower node01 gya, fuga, hoge node02 gya node03 gya, fuga, hoge node04 gya, fuga, hoge node05 gya, fuga, hoge
  4. node 01 node 02 node 03 node 04 node 05

    node01: Leader node02~05: Follower node01 gya, fuga, hoge node02 gya node03 gya, fuga, hoge node04 gya, fuga, hoge node05 gya, fuga, hoge 再送 {Log: [fuga, hoge]}
  5. node 01 node 02 node 03 node 04 node 05

    node01: Leader node02~05: Follower node01 gya, fuga, hoge node02 gya, fuga, hoge node03 gya, fuga, hoge node04 gya, fuga, hoge node05 gya, fuga, hoge