最終更新:
編集

コードへの貢献

XRP Ledgerを動かすソフトウェアはオープンソースです。誰でもダウンロードし、変更し、拡張し、調査することができます。もしあなたがコードに貢献したいのであれば、コミュニティと協力してあなたの変更の仕様を定義し、XRP Ledgerのプロトコルとブロックチェーンの一部になる前にコードをテストすることが重要です。

コアサーバのソースコード

XRP Ledgerを動かすソフトウェアはオープンソースです。コミュニティが参加することで、より良いものが生まれます。ドキュメント内の"[Source]"リンクから関連するソースコードに直接ジャンプしたり、GitHubでソースコードを閲覧することができます:

XRP Ledger ソースコード
リポジトリhttps://github.com/XRPLF/rippled
ライセンスMultiple; ISC (permissive)
プログラム言語C++

何から始めたらいいか分からないという方のために、Dev Null Productionsは、XRP Ledgerサーバ(rippled)のコア実装の仕組みや機能を説明した、詳細かつ充実したソースコード・ガイドを提供しています。

XRP Ledgerの規格

rippledに対する変更はXRP Ledger Standard (XLS)、つまり変更の仕様を特定し詳細に記述した文書によって管理されます。開発にコミットする前に、XRPL-Standardsリポジトリで議論を始める必要があります。これにより、コミュニティはあなたの変更に関して議論し、フィードバックを提供する機会を得ることができます。

注記:* バグ修正にはXLSは必要ありませんが、Amendmentが必要になる場合があります。

XLSの作成には独自のプロセスがありますが、簡単にまとめると次のようになります:

  1. ディスカッションを開始し、フィードバックを集めます。
  2. StandardリポジトリにXLSドラフトを作成します。
  3. XLSドラフトを仕様候補として公開します。

詳細については、XLS貢献ガイド をご覧ください。

Amendmentの実装

XLSドラフトを作成した後、その変更にAmendmentが必要かどうかを判断する必要があります。特に次のようなトランザクション処理に影響する変更にはAmendment が必要です。

  • レジャールールを変更し、異なる結果をもたらすもの。
  • トランザクションの追加または削除。
  • コンセンサスへの影響がある変更。

注記
変更にAmendmentが必要ない場合、そのままコーディングとデプロイに進むことができます。

コードをAmendmentとして実装するには、次のファイルにAmendment情報を追加する必要があります。

  • Feature.cpp:

    開発が完了するまで、Supportedパラメータはnoに設定してください。

    バグの修正の場合、DefaultVoteパラメータをyesに設定する必要があります。

  • Feature.h: numFeatures カウンタを増やし、extern uint256 const 変数を宣言します。

コーディングとデプロイ

一般的な開発プロセスは以下の通りです。

  1. コードを開発するためにはまず、rippled リポジトリ をフォークまたはブランチを作成します。

    ヒント
    何から始めたらいいかわからない場合は、Dev Null Productions が詳細かつ充実した rippled ソースコードガイド を提供しています。

  2. 単体テストと統合テストを実行します。独立した環境で作業をテストするにはスタンドアロンモードでサーバを実行するのが良いでしょう。

  3. XRPLF:developにプルリクエストを作成します。

    Amendment向けの注記: Feature.cppSupportedパラメータをyesに更新します。

  4. プルリクエストがXRP Ledgerのメンテナによって承認されると、あなたのコードはdevelopにマージされ、Devnet上で追加のテストを行うことができます。

    Amendment向けの注記:

    • DefaultVoteパラメータはロックされます。
    • もしAmendmentに問題が見つかれば、Amendmentの修正と新しいPRの提出を再度行う必要があります。新しいPRではDefaultVoteを変更することができます。

年に4回、developで承認されたPRからリリース候補がビルドされます。このパッケージはTestnetとMainnet上のいくつかのノードにデプロイされます。リリース候補に問題がなければ、コードはmasterにマージされ、メインネット上のノードはこのビルドにアップグレードできます。

  1. 新しいAmendmentは合意形成プロセスを経て、バリデータがそのAmendmentを有効にするかどうかを投票します。

コードのフローチャート

コードのフローチャート

関連項目