Tapyrus Core v0.6.1リリース

less than 1 minute read

Tapyrus Core v0.6.1をリリースしました。

主な変更点

ブロックサイズの動的な変更をサポート

このリリースでは、ブロックサイズを動的に変更する機能が導入されました。 これまではブロックサイズの上限は1MBに固定されていました。 ブロックサイズの変更は、ブロックヘッダー内のxfiedxfieldType = 0x02)を使用して行われます。 チェーンを運用するフェデレーションが、xfiedで新しいブロックサイズを指定すると、 そのサイズがそれ以降作成されるブロックの最大サイズになります。 ブロックサイズの変更をトリガーできるのは、ブロックを生成するフェデレーションのみです。

  • 注意: この機能を利用してブロックサイズを変更する場合、ネットワーク内のすべてのノードがv0.6.1以降を使用する必要があります。 旧バージョンを使用するノードは、認識している最大ブロックサイズを超えるブロックを受け取るとそれを無効なブロックとして判断します。 フェデレーションが後続のブロックを作成しても、ブロックサイズの変更を検知できない旧ノードは、後続のチェーンを認識できなくなります。

RPC

ノードのUTXOセットをダンプするdumptxoutsetRPCが追加されました。 将来、loadtxoset RPCが導入されると、スナップショットベースの同期が可能になる予定です。

USDTのトレースポイントを導入

開発、デバッグ、レビューおよび実稼働環境において、より詳細なモニタリングを可能にするために USDT(User Statically-Defined Tracing)のトレースポイントを導入しました (#280#281)。 これらのトレースポイントを使用することで内部のデータにアクセスできるようになります。 現在、提供されているトレースポイントについては、こちらで確認できます。

ビルド

  • 依存ライブラリの更新:
    • leveldbを1.23にアップグレード(#272
    • boostを1.81にアップグレード(#250
    • 不要になった依存ライブラリを削除(#249

その他の変更

  • スレッドの同期とmutexの安定性の向上(#276
  • tapyrus-genesisコマンドで非圧縮公開鍵が指定された場合にエラーを返すようになりました(#262
  • ブロック高の型を32 bitに統一(#286
  • CIの環境をUbuntu 22.04にアップグレードし、機能テストのRIPEMD160の実装を移植(#301

セキュリティFix

Tapyrus CoreはBitcoin Coreのコードベースを元にしていますが、昨年開示された以下のBitcoin Coreの脆弱性の内、 Tapyrusにも関連する以下の脆弱性の対応を行っています。

バグ修正

  • -reloadxfieldオプションを使用して再起動した場合にクラッシュする不具合の修正(#275
  • gettransaction RPCで手数料が正しく計算されない不具合の修正(#328

すべての変更点については、リリースノートを参照ください。

Updated: