substrate - 之前区块的存储访问:即 storage::get(&key, &block)
问题描述
我的托盘如何在前一个区块访问基材链的存储?
例如: storage_name::get(&key, &block_number);
可能,有文件吗?不可能,我们可以申请这个功能吗?
解决方案
不可能从运行时中查询旧块的存储,也不是一个真正有意义的功能,如您所描述的那样包含它。
每个块应该只依赖于该块中可用的数据,否则您开始对您正在使用的客户端以及他们实际可用的数据做出更大的假设。
解决方案在这里很简单,只需将您需要的任何数据存储到您自己的存储项中,该存储项在块与块之间持续存在。我们对许多需要来自先前区块的信息的存储执行此操作,例如质押托盘中的验证者和提名者信息。
当您不再需要该数据时,您可以对其进行清理。
这是一个例子:https ://github.com/paritytech/substrate/blob/master/frame/staking/src/lib.rs#L969
推荐阅读
- azure - C# Azure AD 和 Anuglar Azure AD - 需要管理员帐户
- php - 尝试创建可下载的制表符表但没有出现
- pepper - PEPPER Robot:如何读入外部数据
- arrays - 通过 Evaluate 直接检索值的一维数组
- java - 添加输入框,用户可以在其中输入从 1 到 6 的数字
- c++ - 用于填充树右侧的 C++ 函数
- reactjs - 材质-UI。无效的挂钩调用
- javascript - Vue:CORS 问题。Vue 第二次加载图像,但使用“no-cors”
- c# - 从不同目录运行时,记录器在 asp.net 应用程序中为空
- python - Python按顺序从列表中替换文件中的出现