プルーフ・オブ・ステーク JSON-RPC メソッド

下記のメソッドは、Casper Networkのプルーフ・オブ・ステーク機能に属しています。それらは、オークションやビット(入札)、そしてバリデーターに関連する情報を返します。これは、ノード運用と検証を行っているユーザーには必要な情報です。

state_get_auction_info

このメソッドは、(Height or ハッシュにて)指定したブロックのビット(入札)バリデーターを返します。block_identifierを提供していない場合は、state_get_auction_infoが直近のブロックから情報を返します。

パラメーター タイプ 概要
 block_identifier Object ブロック識別子 

  • ▶Example state_get_auction_info リクエスト
    
    {
      "id": 1,
      "jsonrpc": "2.0",
      "method": "state_get_auction_info",
      "params": [
        {
          "name": "block_identifier",
          "value": {
            "Hash": "0707070707070707070707070707070707070707070707070707070707070707"
          }
        }
      ]
    }

state_get_auction_info_result

 パラメーター  タイプ 概要
api_versionString RPC API バージョン 
auction_stateObject オークションの状態 

  • ▶Example state_get_auction_info 結果
    
    {
      "id": 1,
      "jsonrpc": "2.0",
      "result": {
        "name": "state_get_auction_info_result",
        "value": {
          "api_version": "2.0.0",
          "auction_state": {
            "state_root_hash": "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
            "block_height": 10,
            "era_validators": [
              {
                "era_id": 10,
                "validator_weights": [
                  {
                    "public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61",
                    "weight": "10"
                  }
                ]
              }
            ],
            "bids": [
              {
                "public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61",
                "bid": {
                  "validator_public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61",
                  "bonding_purse": "uref-fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa-007",
                  "staked_amount": "20",
                  "delegation_rate": 0,
                  "vesting_schedule": null,
                  "delegators": [
                    {
                      "delegator_public_key": "014508a07aa941707f3eb2db94c8897a80b2c1197476b6de213ac273df7d86c4ff",
                      "delegator": {
                        "delegator_public_key": "014508a07aa941707f3eb2db94c8897a80b2c1197476b6de213ac273df7d86c4ff",
                        "staked_amount": "10",
                        "bonding_purse": "uref-fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb-007",
                        "validator_public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61",
                        "vesting_schedule": null
                      }
                    }
                  ],
                  "inactive": false
                }
              }
            ]
          }
        }
      }
    }

info_get_validator_changes

このメソッドは、アクティブなバリデーターの状態変化を返します。レスポンス自体に含まれるEraIdで起こった変更をリストアップします。バリデーターは、1つのera内で1回以上の変更となることもあります。

起こり得る変更タイプ:

 変更タイプ 概要
 Added バリデーターセットへの追加
 Removed バリデーターセットからの除外
 Banned 現在のeraからのバリデーター排除
 CannotPropose  バリデーターによるブロック提案が不可な状態
 SeenAsFaulty バリデーターによる不可解な動き
  • ▶Example info_get_validator_changes リクエスト
    
    {
      "id": 1,
      "jsonrpc": "2.0",
      "method": "info_get_validator_changes",
      "params": []
    }


info_get_validator_changes_result

現在のeraにて何も変更がなかった場合、info_get_validator_changesは空の状態で返します。

 パラメーター  タイプ 概要
api_versionStringRPC API バージョン
changesObject バリデーターの状態変更 

  • ▶Example info_get_validator_changes 結果
    
    {
      "id": 1,
      "jsonrpc": "2.0",
      "result": {
        "name": "info_get_validator_changes_result",
        "value": {
          "api_version": "2.0.0",
          "changes": [
            {
              "public_key": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
              "status_changes": [
                {
                  "era_id": 1,
                  "validator_change": "Added"
                }
              ]
            }
          ]
        }
      }
    }


chain_get_era_info_by_switch_block

このメソッドは、ネットワークからEraInfoを返します。スイッチブロックと言われるeraの最後のブロックのみが、era_summaryを持っています。

 パラメーター  タイプ 概要
block_identifierObject ブロック識別子
block_identifierを提供しない場合は、直近のブロック情報が返されます。(オプション) 
  • ▶Example chain_get_era_info_by_switch_block リクエスト
    
    {
      "id": 1,
      "jsonrpc": "2.0",
      "method": "chain_get_era_info_by_switch_block",
      "params": [
        {
          "name": "block_identifier",
          "value": {
            "Hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42"
          }
        }
      ]
    }


chain_get_era_info_by_switch_block_result

 パラメーター  タイプ 概要
api_versionStringRPC API バージョン
era_summaryObject eraのサマリ (見つかった場合) 
  • ▶Example chain_get_era_info_by_switch_block 結果
    
    {
      "id": 1,
      "jsonrpc": "2.0",
      "result": {
        "name": "chain_get_era_info_by_switch_block_result",
        "value": {
          "api_version": "2.0.0",
          "era_summary": {
            "block_hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42",
            "era_id": 42,
            "stored_value": {
              "EraInfo": {
                "seigniorage_allocations": [
                  {
                    "Delegator": {
                      "delegator_public_key": "01e1b46a25baa8a5c28beb3c9cfb79b572effa04076f00befa57eb70b016153f18",
                      "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876",
                      "amount": "1000"
                    }
                  },
                  {
                    "Validator": {
                      "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876",
                      "amount": "2000"
                    }
                  }
                ]
              }
            },
            "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808",
            "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3"
          }
        }
      }
    }