Tezos RPCから特定のサイクルの委任者の住所と委任された資金を取得するにはどうすればよいですか?
1 回答
- 投票
最初に、サイクルXに使用されたスナップショットを確認する必要があります.(cycle#*blocksPerCycle + 1)を使用して、そのサイクルの最初のブロックのハッシュを取得します.次に、クエリを実行できます:
"/chains/main/blocks/"+blockHash+"/context/raw/json/cycle/"+cycle#
これにより、このサイクルのスナップショットに関する情報が取得されます.この情報から、RollSnapShot値を取得します.これにより、このサイクル中に取得されたいくつかのスナップショットのどれが計算に使用されたかがわかります.
そのスナップショットのブロックハッシュを計算します.
((cycle - PreservedCycles - 2) * BlocksPerCycle) + (RollSnapShot + 1) * 256
これでハッシュができたので、パン屋にバランスをとらせることができます.
"/chains/main/blocks/"+hash+"/context/delegates/"+bakerAddr+"/staking_balance"
そして各代表者のバランス:
"/chains/main/blocks/"hash+"/context/raw/json/contracts/index/"+delegateKT1+ "/frozen_balance/"+cycle+"/"
Goに精通している場合は、次のライブラリを確認してください. https://github.com/DefinitelyNotAGoat/go-tezos
First you have to find out which snapshot was used for cycle X. Use (cycle# * blocksPerCycle + 1) to get the hash of the first block of that cycle. Then you can query:
"/chains/main/blocks/"+blockHash+"/context/raw/json/cycle/"+cycle#
This gets you information about the snapshots for this cycle. From this info, grab the RollSnapShot value. This tells you which of the several snapshots taken during this cycle was used for calculations.
Calculate the block hash for that snapshot:
((cycle - PreservedCycles - 2) * BlocksPerCycle) + (RollSnapShot + 1) * 256
Now that you have that hash, you can get bakers staking balance:
"/chains/main/blocks/"+hash+"/context/delegates/"+bakerAddr+"/staking_balance"
And each delegate's balance:
"/chains/main/blocks/"hash+"/context/raw/json/contracts/index/"+delegateKT1+ "/frozen_balance/"+cycle+"/"
If you are familiar with Go, check out this library: https://github.com/DefinitelyNotAGoat/go-tezos
パン屋として、私に委任しているアドレス(委任者)に支払う報酬を計算したいと思います.
このためには、指定されたサイクルでのベーキング/承認の権利に対する、代表者からの効果的な貢献が必要です.
Tezos Node RPC APIからこの情報を取得するにはどうすればよいですか?