【发布时间】:2021-03-05 11:11:36
【问题描述】:
我想将所有区块链数据存储在链下数据库中。 rpc 有一个名为EXPERIMENTAL_changes 的函数,有人告诉我可以通过此方法的http 轮询来做到这一点,但我不知道如何使用它。
http post https://rpc.testnet.near.org jsonrpc=2.0 id=dontcare method=EXPERIMENTAL_changes \ params:='{ "changes_type": "data_changes", "account_ids": ["guest-book.testnet"], "key_prefix_base64": "", "block_id": 19450732 }'
例如这里给出的结果:
"change": { "account_id": "guest-book.testnet", "key_base64": "bTo6Mzk=", "value_base64": "eyJwcmVtaXVtIjpmYWxzZSwic2VuZGVyIjoiZmhyLnRlc3RuZXQiLCJ0ZXh0IjoiSGkifQ==" }
什么是 key_base64?
将其解码为字符串给出 m::39
什么是 m::39?
比如我在rust结构中有如下状态数据。
pub struct Demo {
user_profile_map: TreeMap<u128, User>,
user_products_map: TreeMap<u128, UnorderedSet<u128>>, // (user_id, set<product_id>)
product_reviews_map: TreeMap<u128, UnorderedSet<u128>>, // (product_id, set<review_id>)
product_check_bounty: LookupMap<u128, Vector<u64>>
}
如何知道这些变量有什么变化?
我是否必须检查合约部署点的每个区块 ID,才能知道哪里有变化?
【问题讨论】:
标签: nearprotocol