スナップショットを監査する

パラメーター

登録期限: 2024 年 1 月 15 日 21:45:00 UTC

最小投票権: 450 ADA。

必要なツール

dbSync

インストール手順については、こちらを参照してください。

dbSync と PostgreSQL データベースが実行されていること、およびデータベースが 2024 年 1 月 20 日の 21:45:00 UTC 以降に同期されていることを確認します。

注: dbSync がこの日付以降に同期されていない場合、スナップショットの実行結果は不正確になります。これは、ブロックチェーン上のロールバックがスナップショット データに影響を与えることが不可能なときにスナップショットが取得されるため、完全に再現可能で安定しているためです。これは、登録期限と最終スナップショットが取得できる最も早い時間の間に 1 つの完全なエポックを配置することで保証されます。

Catalyst スナップショット ツール

スナップショットツールはここから入手できます。リポジトリのクローンを作成し、必要なツールをビルドします。

ツールの構築

スナップショットツール:

 cargo build -r -p voting_tools_rs

触媒ツールボックス:

cargo build -r -p catalyst-toolbox

スナップショットの再現

スナップショットの監査は、ブロックチェーン データから直接スナップショットを複製し、公式に公開されたスナップショット データと比較するだけです。

登録期限スロット番号の取得

登録期限に合わせてslot_no取得します。

次のコマンドを使用して dbSync データベースにクエリを実行します。


select slot_no, time from block
    where slot_no is not null and time <= '2024-01-15 21:45:00'
    order by slot_no desc limit 1 ;

結果は次のようになります。


113788796,2024-01-15 21:44:30.000000

したがって、スナップショットがターゲットにする必要があるslot#のとおりです: 113788796

Raw スナップショットの実行

スナップショットの最初の部分では、生の登録情報とステーキングされた ADA 情報が蓄積され、 CIP-15およびCIP-36に従って検証されます。

注: CIP-36 で指定されている複数の委任はサポートされていません。これらは無効な登録として検出されます。単一の投票キーを含む登録のみがサポートされ、有効になります。

実行します (必要に応じて資格情報を置き換えます)。


export USERNAME=<Your dbSync postgresql Username>
export PASSWORD=<Your dbSync postgresql Password>
export DBSYNC_POSTGRES="localhost:5432"
./target/release/snapshot_tool --db cexplorer --db-user $USERNAME --db-pass $password --db-host $DBSYNC_POSTGRES --out-file ./cexplorer-113788796.json --min-slot 0 --max-slot 113788796 --network-id mainnet

これにより、次の 3 つのファイルが生成されます。

  • cexplorer-113788796.json <- 生のスナップショット データ
  • cexplorer-113788796.unregistered.json <- 未登録ですがステークされた ADA。
  • cexplorer-113788796.errors.json <- エラーまたは古い登録。

Fund 11 パラメータを使用したスナップショットの処理

これにより、許可される最小投票権に基づいて登録がフィルタリングされます。

走る:


./target/release/catalyst-toolbox snapshot --snapshot cexplorer-113788796.json --min-stake-threshold 450000000 --slot-no 113788796 cexplorer-113788796.final.json

これにより、最終スナップショットが生成されます: cexplorer-113788796.summary.json