cryptofoundry

cryptofoundry へのお問い合わせ

構築または自動化したい内容をお聞かせください。

adamant

ADAMANT Node v0.10.2

al-onyxprotocol鋳造所から ↗

ADAMANT blockchain node v0.10.2は、ノードオペレーター、デリゲート、エクスプローラー、メッセンジャー、サービス開発者向けの信頼性、リカバリー、およびAPI機能のリリースです。ノードの同期停止やシャットダウン中断からのリカバリーを支援し、より充実したRESTおよびSocket.IOデータアクセスを追加し、デリゲートAPIのリグレッションを修正し、大規模データベースクエリを改善し、依存関係とオペレーター向けガイダンスを更新します。信頼性、リカバリー時間、セキュリティメンテナンス、およびAPI機能の向上のためアップグレードを推奨しますが、ネットワーク互換性のために必須ではありません。本リリースではコンセンサスフォークは導入されず、ブロックやトランザクションのシリアライゼーション、署名、デリゲートの順序、報酬、手数料、アクティベーションハイト、スロットタイミング、決定論的リプレイに変更はありません。

APIの更新には、決定論的順序付け、ページネーション、isDelegateフィルタリング、レスポンスメタデータ、およびカウントのみのリクエストに対応した新しいトップアカウントAPIが含まれます。デリゲートランクの正確性が復元され、デリゲート投票者APIは全アカウントへのフォールスルーを防ぐように修正され、アドレスリストフィルタリングが追加されました。コンセンサスの可視性は、効果的なコンセンサスアクティベーションスケジュールと完全なブロック報酬マイルストーンスケジュールをステータスAPIを通じて公開することで改善されました。デリゲートのフォージ量がレスポンスに追加され、次のフォージャーの予測がラウンド境界で安定化され、ブロックフィルタリングはトランザクションがゼロのクエリを正しくサポートするようになりました。

クライアントWebSocket APIには、オプトインのコンパクトなnewBlockイベント、およびbalance、unconfirmedBalance、またはその両方のためのbalances/changeイベントが追加されました。ブロック、トランザクション、およびバランスのサブスクリプションは、無関係なクライアントのスキャンを防ぐためにインデックス化されるようになりました。影響を受けるアカウントの読み取りはブロックの適用・ロールバック周りでバッチ処理され、配信の失敗はコンセンサス状態の変更から分離されます。配信はベストエフォート型で非永続的なため、クライアントは再接続後にサブスクリプションを復元し、RESTを通じて重要な状態を整合させる必要があります。

プロトコルおよびコンセンサスルールは変更されませんが、効果的なアクティベーションスケジュールとアクティブなコンセンサスコードネームがパブリックステータスAPIを通じて観測可能になりました。次のフォージャーの修正は、ラウンド境界での以前に不正確だったパブリックAPIの予測のみを修正するものです。コンセンサスルール、アクティベーションハイト、トランザクションやブロックのバイト、ID、署名、報酬、手数料、ラウンドの決済、またはリプレイの動作は本リリースで変更されません。

信頼性とリカバリーの改善には、5分間ブロックハイトの進行がない同期実行を検出し、停止した実行を安全に中断して自動リカバリーを可能にする同期ウォッチドッグが含まれます。PostgreSQLの拒否は、コールバックチェーンをサイレントに駐車するのではなく、ブロックの検証とローディングを通じて伝播されるようになりました。派生状態のために、3つのローテーティングするSHA-256検証済みスロットを持つ永続化されたメモリテーブルチェックポイントが追加されました。リカバリーはフェイルクローズ型で、すべてのチェックに合格したチェックポイントのみを復元し、検証に失敗した場合は完全な決定論的リビルドにフォールバックします。正規のブロックと決定論的リプレイが信頼できる情報源として維持されます。

セキュリティの更新には、現在のメジャーバージョン内での依存関係の更新と、未使用の直接的なnpmランタイム依存関係の削除が含まれます。互換性のあるgruntからjs-yamlへのナローなオーバーライドが追加され、監査対象の依存関係グラフから中程度、高、または重大な発見をゼロに削減しました。署名、ニーモニック、トランザクションの検証、ピアハンドシェイク、または暗号プロトコルの動作に変更は導入されていません。

ネットワーク、データベース、およびパフォーマンスの改善には、決定論的なトップアカウントクエリのための部分的なバランスインデックスが含まれます。blocks generator hashインデックスは、未知のジェネレーターに対するフルテーブルスキャンを回避するために複合B-treeインデックスに置き換えられました。インデックス化されたSocket.IOサブスクリプションとバッチ処理された最終状態の読み取りにより、不要なクライアントスキャンとアカウントクエリが削減され、ローテーティングチェックポイントストレージにより一貫性のない派生状態からのより高速なリカバリーが可能になります。

ノード運用とツールに関しては、永続化されたメモリ状態チェックポイントがデフォルトで有効になり、無効または古いチェックポイントに対するフルリビルドのフォールバックが維持されます。グレースフルシャットダウンが明確化され、再起動前にアクティブな処理のドレインを待機し、「Cleaned up successfully」メッセージを確認する必要があります。ネイティブのpg-nativeおよびlibpq Node ABIリビルドパスが文書化され、Node.jsの要件は22.13.0以降のままです。

開発者体験の改善により、同期リカバリー、チェックポイント、アカウント、デリゲート、ブロック、ステータスAPI、およびSocket.IOフローのテストカバレッジが拡大されました。READMEが再編成され、更新されたAPIに合わせて関連ドキュメントとOpenAPIの変更が整合されました。

本リリースにアップグレードするオペレーターは、Node.js 22.13.0以降を使用し、データベースをバックアップする必要があります。ノードをグレースフルに停止し、v0.10.2をデプロイする前に「Cleaned up successfully」メッセージを待機してください。初回起動時には、すべてのマイグレーションを完了し、チェックポイントストレージを作成し、新しいインデックスを構築するために追加の時間とディスク容量が必要です。起動後、ノードのステータス、同期の進行状況、ライブブロック処理、およびサービスで使用しているRESTまたはSocket.IO機能を確認してください。

破壊的変更

v0.10.2には、プロトコル、コンセンサス、ワイヤーフォーマット、またはAPI契約の破壊的変更はありません。新しいRESTフィールドとSocket.IOサブスクリプションは追加であり、後方互換性があります。レガシーなtopAccounts設定スイッチは削除され、GET /api/accounts/topエンドポイントがすべてのノードで一貫して登録されるようになりました。本リリースは前方のみのデータベースマイグレーションを追加するため、アップグレード後の初回起動にはチェックポイントストレージとアカウント・ブロックインデックスの作成に追加の時間とディスク容量が必要になる場合があります。