Witnessサーバ
(XChainBridge Amendment が必要です)
Witnessサーバは、ロックチェーンと発行チェーン間のトランザクションの中立的な監視人として機能します。このサーバはブリッジの両側のドアアカウントをリッスンし、トランザクションが発生したことを確認する証明書に署名します。サーバは基本的に、送金元アカウントで価値がロックまたはバーンされたことを"証明"するオラクルとして機能し、これにより受取人は送金先アカウントで同等の資金を(作成またはロック解除によって)請求することができます。
ロックチェーンと発行チェーンの間のブリッジは、その設定に以下の情報を含みます。
- ブリッジ上のトランザクションを監視するWitnessサーバ。Witnessサーバは1つ以上選択できます。
- Witnessサーバのサービス料金。
誰でもWitnessサーバを運用することができます。しかし、Witnessサーバの信頼性を評価する責任は発行チェーンの参加者にあります。Witnessサーバを実行する場合、rippled
ノードも実行し、Witnessサーバがアクセスする必要があるチェーンと同期させる必要があります。
注記
発行チェーンは、最初は1台のWitnessサーバだけでブリッジを構成し、Witnessサーバ自体を実行することを選択できます。この戦略は、発行チェーンがまだマーケットで地位を確立していない初期に役立ちます。
Witnessサーバの設定
Witnessサーバはコマンドライン引数--conf
で指定されたJSON設定ファイルを受け取ります。
設定JSONの例
{ "LockingChain": { "Endpoint": { "Host": "127.0.0.1", "Port": 6005 }, "TxnSubmit": { "ShouldSubmit": true, "SigningKeySeed": "shUe3eSgGK4e6xMFuCakZnxsMN1uk", "SigningKeyType": "ed25519", "SubmittingAccount": "rpFp36UHW6FpEcZjZqq5jSJWY6UCj3k4Es" }, "RewardAccount": "rpFp36UHW6FpEcZjZqq5jSJWY6UCj3k4Es" }, "IssuingChain": { "Endpoint": { "Host": "127.0.0.1", "Port": 6007 }, "TxnSubmit": { "ShouldSubmit": true, "SigningKeySeed": "shUe3eSgGK4e6xMFuCakZnxsMN1uk", "SigningKeyType": "ed25519", "SubmittingAccount": "rpFp36UHW6FpEcZjZqq5jSJWY6UCj3k4Es" }, "RewardAccount": "rpFp36UHW6FpEcZjZqq5jSJWY6UCj3k4Es" }, "RPCEndpoint": { "Host": "127.0.0.1", "Port": 6010 }, "DBDir": "/var/lib/witness/witness01/db", "LogFile": "/var/log/witness/witness01.log", "SigningKeySeed": "spkHEwDKeChm8PAFApLkF1E2sDs6t", "SigningKeyType": "ed25519", "XChainBridge": { "LockingChainDoor": "r3nCVTbZGGYoWvZ58BcxDmiMUU7ChMa1eC", "LockingChainIssue": { "currency": "XRP" }, "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "IssuingChainIssue": { "currency": "XRP" } }, "Admin": { "Username": "username01", "Password": "password01" } }
設定のフィールド
フィールド名 | JSONの型 | 必須? | 説明 |
---|---|---|---|
Admin | オブジェクト | いいえ | Witnessサーバへの特権リクエスト用のUsername フィールドとPassword フィールド (文字列)。注記: adminフィールドは両方に設定、またはどちらも設定されていない必要があります。 |
IssuingChain | オブジェクト | はい | 発行チェーンと通信するためのパラメータ。 |
LockingChain | オブジェクト | はい | ロックチェーンと通信するためのパラメータ。 |
RPCEndpoint | オブジェクト | はい | WitnessサーバへのRPCリクエストのエンドポイント。 |
LogFile | 文字列 | はい | ログファイルの保存場所。 |
LogLevel | 文字列 | はい | ログファイルに保存するログのレベル。All 、Trace 、Debug 、Info 、Warning 、Error 、Fatal 、Disabled 、None のいずれかを指定します。 |
DBDir | 文字列 | はい | データベースが保存されているディレクトリの場所。 |
SigningKeySeed | 文字列 | はい | Witnessサーバが証明書に署名する際に使用するシード。 |
SigningKeyType | 文字列 | はい | SigningKeySeed のエンコードに使用するアルゴリズム。secp256k1 とed25519 のいずれかを指定します。 |
XChainBridge | XChainBridge | はい | Witnessサーバが監視しているブリッジ。 |
IssuingChainとLockingChainのフィールド
フィールド名 | JSONの型 | 必須? | 説明 |
---|---|---|---|
Endpoint | オブジェクト | はい | チェーンと同期したrippled ノードのWebSocketエンドポイント。注記: rippled ノードとWitnessサーバは同じ人が操作する必要があります。 |
TxnSubmit | オブジェクト | はい | チェーン上でトランザクションを送信するためのパラメータ。 |
RewardAccount | 文字列 | はい | チェーン上でSignatureReward の報酬の分配を受け取るアカウント。 |
Endpointのフィールド
フィールド名 | JSONの型 | 必須? | 説明 |
---|---|---|---|
Host | 文字列 | はい | rippled ノードのIPアドレス。注記: IPv4アドレスかURLを指定します。 |
Port | 文字列 | はい | WebSocketエンドポイントのポート。 |
RPCEndpointのフィールド
フィールド名 | JSONの型 | 必須? | 説明 |
---|---|---|---|
Host | 文字列 | はい | rippled ノードのIPアドレス。注記: IPv4アドレスかURLを指定します。 |
Port | 文字列 | はい | WebSocketエンドポイントのポート。 |
TxnSubmitのフィールド
フィールド名 | JSONの型 | 必須? | 説明 |
---|---|---|---|
ShouldSubmit | 真偽値 | はい | Witnessサーバがロックチェーン上でトランザクションを提出すべきかどうかを示す真偽値。 |
SigningKeySeed | 文字列 | いいえ | Witnessサーバがロックチェーン上のトランザクションに署名する際に使用するシード。これはShouldSubmit がtrue の場合に必要です。 |
SigningKeyType | 文字列 | いいえ | SigningKeySeed のエンコードに使用するアルゴリズム。secp256k1 とed25519 のいずれかを指定します。これはShouldSubmit がtrue の場合に必要です。 |
SubmittingAccount | 文字列 | いいえ | XChainAddClaimAttestation とXChainAddAccountCreateAttestation トランザクションを送信するアカウント。これはShouldSubmit がtrue の場合に必要です。 |
XChainBridgeのフィールド
フィールド | JSONの型 | 内部の型 | 必須? | 説明 |
---|---|---|---|---|
IssuingChainDoor | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 |
IssuingChainIssue | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 |
LockingChainDoor | 文字列 | Account | はい | ロックチェーンのドアアカウント。 |
LockingChainIssue | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 |