Solana 拉取与给定地址相关的质押(通货膨胀)奖励历史
Posted
技术标签:
【中文标题】Solana 拉取与给定地址相关的质押(通货膨胀)奖励历史【英文标题】:Solana pull history of staking (inflation) rewards associated with given address 【发布时间】:2021-10-15 02:01:07 【问题描述】:我可以使用以下方法提取与特定 Solana 地址相关的质押奖励(通货膨胀奖励):
import requests
import json
url = "https://api.mainnet-beta.solana.com"
payload =
"jsonrpc": "2.0",
"id": 1,
"method": "getInflationReward",
"params": [
[my_staking_address], "epoch": 231
]
response = requests.post(url, json=payload).json()
print(response)
这个问题是我必须指定时代。是否可以在单个请求中获得与该地址相关的所有质押奖励的列表?遍历每个 epoch 需要一段时间。
我只是希望有一种更好的方法来获取通货膨胀奖励的历史,而不是为每个时期创建一个新请求。
【问题讨论】:
【参考方案1】:不幸的是,目前这是不可能的,因此您必须遍历这些时期才能知道给定帐户的奖励。如果有什么安慰的话,通货膨胀仅在主网上的插槽 64800004,纪元 150 中启用,因此对于撰写本文时的当前纪元 (235),它是可行的。我们需要向 RPC 调用添加更多功能以完全支持您的要求。
另一种可能的选择是根据来自getVoteAccounts
https://docs.solana.com/developing/clients/jsonrpc-api#getvoteaccounts 的投票帐户计算奖励,但我相信您仍然需要每个时期的通货膨胀调节器来获得灯中的实际奖励金额,从而使
【讨论】:
这很不幸,但可行。我在 Discord 中听说我使用的端点 (api.mainnet-beta.solana.com) 可能只允许我查询最近的时期,可能是几周前。这是真的?我没有足够长的时间使用我的 Solana 地址来查询旧时代并查看交易是否丢失。 你真的很幸运——api.mainnet-beta.solana.com 有完整的交易历史可以追溯到创世记,所以它应该有你需要的东西,只要你尊重它的速率限制:-)以上是关于Solana 拉取与给定地址相关的质押(通货膨胀)奖励历史的主要内容,如果未能解决你的问题,请参考以下文章
Solana Rust 程序 HashMap<string, u64>