- Developers(開発者ガイド)概要
- 開発の事前準備
- 必須となるRust Crate(クレート)
- Writing On-Chain Code
- Getting Started with Rust
- Getting Started with AssemblyScript
- 基本的なスマートコントラクトをRustで書く方法
- スマートコントラクトのテスト
- スマートコントラクトのアップグレードとメンテナンス
- スマートコントラクトの呼び出し
- コントラクトとセッションコード
- セッションコードの書き方
- セッションコードのテスト
- コントラクトによるイベント発行を有効に
- コントラクトハッシュとパッケージハッシュの使い分け
- Casperスマートコントラクトのベストプラクティス
- Casper JSON-RPC API
- DAppsのビルド
- SDKクライアントライブラリ
- dApp Technology Stack
- ReactのFront-endテンプレート
- URefのアクセス権限とセキュリティへの考慮
- トランザクションへの署名
- スペキュラティブ(推測的)実行によるガス・コストの見積もり
- NCTLを使ったローカルネットワーク設定
- NCTLを使ったスマートコントラクトのテスト
- イベントの監視と消費
- CLIを使ったBlockchainとのやり取り
プルーフ・オブ・ステーク 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_version | String | RPC API バージョン |
| auction_state | Object | オークションの状態 |
-
▶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_version | String | RPC API バージョン |
| changes | Object | バリデーターの状態変更 |
-
▶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_identifier | Object | ブロック識別子 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_version | String | RPC API バージョン |
| era_summary | Object | 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" } } } }