チェインの停止の解決 ~原因、影響、結論~

2020年12月19日、Filecoinネットワークはチェインの停止を経験しました。つまり、一定期間、新しいブロックの生成はできましたが、マイナーは結果の状態についてコンセンサスに達することができず、各マイナーは異なる値を計算していました。コミュニティメンバー、マイナー、開発者の迅速な対応のおかげで、4時間以内に修正プログラムがリリースされ、ネットワークは7時間以内に完全に復旧しました。この記事では、発生した問題、停止の影響、迅速な対応、そして今後について説明します。

原因

根本的な問題は、ストレージマイナアクターの実装において、オブジェクトのマップを反復処理する潜在的な非決定性でした。アクターはGoで実装されています。Goマップの反復処理は非決定性であることが知られており、アクターは使用する前に反復処理の結果を常にソートするパターンを実装していました(静的解析の強制力があります)。残念ながら、このような2つのマップをソートする際に使用された比較関数のエラーにより、ソートが無効になりました(#1335を参照)。そのため、異なるノードが異なる順序でマップエントリを処理し、結果が分岐してガスを消費することになりました。

このコードパスは、(a)複数のセクターを一度に終了することを宣言するマイナー、または(b)複数のパーティションにまたがるフォルトを一度に回復するマイナーによってのみ実用的に到達することができました。他に2つのコードパスがありますが、実際には非常に考えにくいです。これらのパスはいずれも、この時点までは、複数のセクター/パーティションをデータとして使用して、非決定性を明らかにすることはメインネットでは行われていませんでした。停止は、複数のセクターの同時終了によって引き起こされました。

Filecoinアクターのテストは問題のコードをカバーしていますが、異なるテスト実行間の決定論的実行を検証するメカニズムは含まれていません。Lotusノード実装の統合テストでは、複数のセクターの終了をカバーしていませんでした。

停止の影響

何よりも強調しておきたいのは、停止中にデータが失われることはなかったということです。新しいブロックを生成することができなかったため、ネットワーク上の取引が一時的に阻害されましたが、ネットワークの運用が再開されれば、ストレージプロバイダーに保存されているすべてのデータは安全であり、すぐに利用できる状態になっていました。さらに、Filecoinプロトコルの仕様では、チェインが停止した場合でもデータを取得できるようになっている点にも注意が必要です。このため、イベントが発生している間はチェイン上では不可能でしたが、Filecoinネットワークのコア機能はそのまま残っていました。その代わりに、ネットワークの回復を優先するために、コンセンサススラッシングが一時的に中断されました。

迅速な対応

根本的な問題が最初に検出され、特定され、修正され、展開されたスピードも注目に値します。

・イベントが発生してから15分以内に、自動化されたモニタリングによりアラート

・30分以内にマイナーと実装開発者が集合

・4 時間以内に、開発者等が問題を特定し、修正版をリリース

・7時間以内に、十分なノードが多数派のコンセンサスパワーのしきい値を通過するための修正を採用し、ネットワークは回復

これは、若い分散型ネットワークにしては信じられないほどの迅速な対応です。確立されたブロックチェーンでさえ、時々チェインの停止やフォークを経験しますが、今回のインシデントの解決までの時間は、数年前から運用されているチェインに匹敵します。コミュニティ全体は、この事件が処理されたスピードに誇りを持つべきです。

この復旧は、世界中の複数のグループが一致団結して取り組んだ努力によってのみ可能となりました。マイナーが問題を検出して報告し、開発者に注意を喚起し、エンジニアリングチームは、根本的な問題に対するピアレビュー済みのパッチを開発してリリースするために調整し、この修正の状況をコミュニティのチャンネルを介して伝えました。このような緊急性を必要とするイベントは繰り返し行われるものではありませんが、これはFilecoinエコシステムの関心と対応力を示す非常に印象的なケースです。

次に向けて

ブロックチェーンの構築は宇宙ロケットのデジタル版のようなもので、非常に複雑な技術の塊であり、最初の試みですべてを正しく行うことは難しいです。本物のロケットと同じように、予期せぬ事で物事がうまくいかないことがあります。そのような事態が起きたときには、できるだけ早く問題に対処し、その影響を最小限に抑え、再発の可能性を減らすためのインフラストラクチャを整備することが重要です。

この目的のために、複数のチームが事後検討の作成と実行に取り組みました。この事後検討では、将来のインシデントを軽減するために、アクター/ロータス全体のテスト範囲と、ネットワークインフラ/通信全体の警告と問題のエスカレーションのさらなる改善点を特定しています。Filecoinコミュニティの忍耐と努力、そして投資のおかげで、この新しいテクノロジーの問題は解決し続けています。問題が特定され、解決されるたびに、ネットワークは安定した、信頼性の高い、飛行実証済みのプラットフォームへとさらに成熟していきます。

※配信元

https://filecoin.io/blog/resolving-the-chain-halt/

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Pick up

  1. Filecoinは、ストレージと関連サービスのグローバルマーケットプレイスであり、安全な分散型クラ…
  2. 今回はFilecoinについてマイニングからストレージ、アプリケーション開発までのシラバス(講義要…
  3. 下記を御覧ください。 1.核となるプロトコルの機能 8月には、メインネットの「プルーフ…

Recommend

  1. 2020-10-26

    リフトオフ週間を振り返って

    ■リフトオフ週間を振り返って 先週のリフトオフ週間では講演、デモ、ワークショップなどが盛りだ…
  2. 2020-10-16

    Slingshotとその先

    ■Filecoinでデータを保存するためには ~Slingshotとその先にあるもの~ …
  3. 2020-10-14

    マイナー向けガイド

    ■マイナー向けリフトオフガイドについて メインネットリフトオフまで24時間を切っています。S…
ページ上部へ戻る