Tapyrus Core v0.7.0リリース
Tapyrus Core v0.7.0をリリースしました。
このリリースは、すべての依存関係とツールのアップグレード、およびいくつかのバグ修正を含むメジャーアップデートです。
主な変更点
C++20サポート
Tapyrus v0.7.0のコードベースはC++20標準をサポートするようになりました。 これにより、より新しいC++の機能を活用した開発が可能になります。
CMakeビルドシステムへの移行
ビルドシステムがAutotoolsからCMakeに完全に移行しました(#331、#335、#336、#337)。
- Linux、macOS、Windowsの各プラットフォームでCMakeビルドをサポート
- Dockerコンテナ(
tapyrusd、tapyrus-builder)もCMakeを使用 - dependsディレクトリ内のすべての依存関係もCMake対応
Qt6へのアップグレード
tapyrus-qtのGUIフレームワークがQt5からQt6にアップグレードされました(#368、#381、#382)。
- CMakeとNinjaを使用したビルド
- macOSおよびWindowsでのGUIの問題を修正(#386)
GUIXビルドシステムの導入
リリースディストリビューションの生成にGUIXビルドが使用されるようになりました(#366)。 これにより、再現可能なビルドが可能になり、リリースバイナリの信頼性が向上します。
セキュリティ修正
Bitcoin Coreから継承された以下の脆弱性に対応しました:
- CVE-2024-52919 - addrメッセージスパムによるリモートクラッシュの修正(#353)
- reindex時のブロックファイルサイズ計算の誤りを修正(#356)
バグ修正
gettransactionRPCで手数料が正しく出力されない問題の修正(#328)- ネットワークでXField最大ブロックサイズが変更された場合のreindex失敗を修正(#357)
- ワーカースレッドが作業を完了したことをマスタースレッドが認識できないチェックキューのデッドロックを修正(#349)
- ウォレットインポート時のタイムゾーン変換を修正(#363)
- ロケール依存関数の使用を削除(#365)
- getblocktxn脆弱性修正時に導入されたクラッシュを修正(#369)
テストの改善
- CMake CIにスケジュールされたデイリーテストとコミットごとのスモークテストを追加(#342)
- CChainState、CChain、CBlockIndexクラスの包括的なエッジケーステストを追加(#372)
- 機能テストのタイムアウト間隔を標準化(#334)
アップグレード方法
既存のノードを最新リリースにアップグレードすることを推奨します。
- Testnetノード: getting_startedの手順に従って新しいv0.7.0ノードを起動してください
- プライベートネットワーク: 古いノードをシャットダウンし、完全に停止したことを確認してから新しいノードを起動してください
互換性
- v0.5.0、v0.5.1、v0.5.2、v0.6.1で作成されたブロックチェーンはv0.7.0と互換性があります
- v0.5.0より前のバージョンで作成されたブロックチェーンは、ブロックヘッダーにxfieldがないため互換性がありません
- サポートプラットフォーム: Linux、macOS、Windows(x86_64およびarm64/aarch64)
ダウングレードについて
v0.7.0からv0.6.1へのダウングレードは問題ありません。ただし、v0.5.*へのダウングレードは、ネットワークでxfieldの変更が行われていない場合に限り可能です。
すべての変更点については、リリースノートを参照ください。