Twitter Link with Icon

XRP Ledgerバージョン3.0.0公開!

  •    2025年12月9日   2025年12月9日
post-thumb

本記事は2025年12月9日投稿のXRPL公式ブログ"Introducing XRP Ledger version 3.0.0“の和訳です。


XRP Ledgerプロトコルの基本サーバー実装であるrippledのバージョン3.0.0がリリースされました。 このリリースでは、新しいアメンドメントとバグ修正が導入されています。

対応が必要な変更

XRP Ledgerサーバーを運用されている場合は、サービスの継続を確実にするため、できるだけ早くバージョン3.0.0へのアップグレードをお願いします。

インストール/アップグレード

サポートされているプラットフォームで、rippledのインストールまたはアップデートに関する指示を参照してください。

Package SHA-256
RPM for Red Hat / CentOS (x86-64) 2e181c8e966e043e10e32f3b0e30184014b88c2b5b9513d07c0e13c605edf050
DEB for Ubuntu / Debian (x86-64) efbce53f39e2d94d74c3cfdb049758f8826aa5e0a2a246cd9b19e9246e7b4172

他のプラットフォームについては、ソースコードからビルドしてください。 HEADが、バージョン設定を変更するコミットであることを必ず確認してください。

commit 7527e35379a78901320b17a9a26c618e4384b1f6
Author: Ed Hennis <ed@ripple.com>
Date:   Tue Dec 9 12:11:16 2025 -0500

    Set version to 3.0.0

変更履歴

アメンドメント

  • fixTokenEscrowV1 MPTのエスクローにおける会計上の不整合を修正します。具体的には、転送手数料(transfer fee)を持つMPTがエスクローからアンロックされる際に、本来は手数料を差し引いた純額(net amount)で減算されるべきMPT発行者のロック中残高が、誤って手数料込みの総額(gross amount)で減算されてしまう問題があります。これによりトークンの総供給量の会計に不整合が生じる可能性があります。 #5571
  • fixIncludeKeyletFields 以下のレジャーエントリに不足していたkeyletフィールドを追加します:
    • Escrow および PayChannel への Sequence
    • SignerList への Owner
    • Oracle への OracleDocumentID #5646
  • fixPriceOracleOrder プライスオラクルが作成されたときと更新されたときとで、資産ペアデータの順序が異なってしまう問題を修正します。 #5485
  • fixAMMClawbackRounding AMMClawbackトランザクションを実行した際に、AMMのLPTokenBalanceに発生し得る丸め誤差を修正します。 #5750
  • fixMPTDeliveredAmount MPTを直接送付するPaymentトランザクションのメタデータに、これまで欠けていたDeliveredAmountおよびdelivered_amountフィールドを追加します。 #5569

新機能

  • simulate APIメソッドのメタデータフィールドに、delivered_amountnftoken_idnftoken_idsoffer_id、およびmpt_issuance_id を追加しました。 (#5754)
  • 負の32ビット整数フィールドをサポートするため、新しいSTypeとしてSTInt32を追加しました。 (#5788)

破壊的変更

  • ledger_entry APIメソッドを更新し、複数のエントリを指定した場合は invalidParams エラーを返すようにしました。これまでは、ランダムに選ばれた1つのエントリの情報のみが返されていました。本変更により、リクエストごとに単一のエントリ参照のみが許容されるようになります。 (#5237)

バグ修正

  • コンセンサスのstall(停滞)検出が、早すぎるタイミングでフラグを立てないよう修正しました。 (#5658)
  • ピア接続が拒否された理由を区別できるよう、追加のロギングを実装しました。 (#5690)
  • コードカバレッジのエラーを修正しました。 (#5765)
  • UNLマニフェストを処理する際に、想定外の鍵や不正な鍵が出現した場合のログレベルを INFO から WARN に引き上げました。 また、不正なUNLマニフェストフォーマットの内部エラーコードを untrusted から invalid に変更しました。 (#5804)
  • GCC 15.2でのリリースビルドエラーを修正しました。 (#5864)
  • STNumberおよびSTAmountのJSONパースで、負の整数の扱いに関する問題を修正しました。 (#5990)
  • HttpClient.cppにおけるHTTPヘッダーの大文字小文字の扱いに関する問題を修正しました。 (#5767)
  • トランザクションの署名チェック関数が、PreclaimContext全体ではなく必要なパラメータのみを受け取るよう修正しました。 (#5829)
  • 自己発行のクレデンシャルに対して CredentialCreate トランザクションが sfSubjectNode を設定しない問題を修正しました。 (#5936)
  • ノードの起動時にドメインオーダーブックが構築されない問題を修正しました。 (#5998)

リファクタリング

  • netモジュールをxrpldから切り離し、RPC関連のクラスをrpcフォルダーへ移動しました。 (#5477)
  • モジュール化の取り組みの一環として、ledgerコンポーネントをlibxrplへ移動しました。 (#5493)
  • LendingProtocol 導入に向けた事前準備として、コードをリファクタリングしました。 (#5590)
  • parseLeafをリファクタリングし、STI_UINT16STI_UINT32のハンドラーを別々のヘルパー関数に分離しました。 (#5591)
  • 派生クラスのpreflight実装に含まれていたボイラープレートを取り除くため、Transactor::preflightの構造を再編しました。 (#5592)
  • Transactor の署名チェックコードを再構築し、トランザクション全体または別のトランザクションを含むフィールドのいずれであっても扱える sigObject をサポートするようにしました。 (#5594)
  • 新しいDockerイメージを活用し、テストの自動化を改善するためCIワークフローを刷新しました。 (#5661)
  • 可読性と保守性向上のため、CTID.hのコードを整理しました。 (#5681)
  • 追加のトランザクション署名検証のサポートを追加しました。 (#5851)
  • テストを簡潔にし読みやすくするため、JSONのLastLedgerSequencelast_ledger_seqに置き換えました。 (#5884)
  • テスト内のboost::lexical_cast<std::string>to_stringに置き換えました。 (#5883)
  • Json::Valueライブラリを使う代わりにJSONを文字列として書き出すテストを置き換えました。 (#5886)
  • TestHelpersおよび実装ファイルにpaychan名前空間を追加し、構造の明瞭性を高めました。 (#5840)
  • txsetの取り扱いを改善・リファクタリングしました。 (#5951)

ドキュメント

  • README.md内の古いリンクや記述を更新しました。 (#4701)
  • std::counting_semaphore の使用に対するコンパイラ警告を追加しました。 (#5595)
  • コードコメント内の重複した単語を削除しました。 (#5752)
  • conan lock create コマンドにremoteを追加しました。 (#5770)
  • JSON writerドキュメントの誤字を修正しました。 (#5881)
  • コードベース全体のスペルミスを修正しました。 (#6002)
  • コードコメントの誤字を修正しました。 (#6040)
  • NetworkOps_test.cppに誤って入っていた著作権表示を削除しました。 (#6066)

テスト

  • JSONのユニットテストをdoctestフレームワークへ移行しました。 (#5533)
  • STInteger および STParsedJSON の基本的なテストを追加しました。 (#5726)
  • env.meta内で、未検証トランザクションのnullメタデータをテストフレームワークが扱えるように修正しました。 (#5715)
  • FeeVoteモジュールに対してより包括的なテストを追加しました。 (#5746)
  • simulate RPCのメタデータに対する追加テストを追加しました。 (#5827)
  • クラッシュしたテストを失敗としてカウントするよう、ユニットテストのサマリーを更新しました。 (#5924)
  • CIがすべてのテストバイナリをアップロードするよう修正しました。 (#5932)

CI/Build

こちらは中略しています。 XRPL.orgの元記事でご確認ください。

クレジット

このリリースに貢献してくれたGitHubユーザーの皆さん:

  • RippleX Engineering
  • RippleX Docs
  • RippleX Product
  • @dangell7
  • @tequdev
  • @tzchenxixi
  • @wojake

バグバウンティと開示について

私たちはrippledコードのレビューを歓迎します。 リサーチャーの皆さんには、発見された問題を責任を持って開示してくださるようお願いしています。 バグを報告される場合は、詳細なレポートを次のアドレスへお送りください: bugs@xrpl.org