问题标签 [substrate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
68 浏览

blockchain - 每个块有多少存储迁移时间?

作为运行时升级的一部分,我试图提出一些实际的限制,即一个人有时间在一个块中完成多少存储迁移。

所以假设

  • 在 Substrate 设置中有 N 个验证器运行当前的共识系统,而不是作为平行链
  • 节点在体面的民用工作站上运行
  • 迁移代码主要是执行数据库读/写对的序列,以及正常的关联编码/解码逻辑
  • 每个读/写对中的数据大小相当稳定,平均为 M 字节

令 f(N, M) 为当没有其他外部处理时,您将能够在单个块中安全地执行的读取、写入对的数量。

对 f(N,M) 的样子有什么好的猜测?只是对 N(例如 40)和 M(例如 32、1024)的流行值的一些不错的答案。

我问,因为围绕此的约束必须告知如何构建模块。

0 投票
2 回答
349 浏览

substrate - 在基板运行时使用时间戳:未找到 set_timestamp

我正在尝试加快时间为自定义运行时模块做一些测试。我已经查看了该线程的答案并按照使用 Timestamp 的答案进行操作,但是,我无法访问 set_timestamp 方法。

设置:

错误如下:

0 投票
2 回答
421 浏览

blockchain - 如何为 Polkadot 或 Kusama 等 Substrate 链生成销毁地址?

我想生成一个没有密钥的地址,以便它可以用作刻录地址 - 一个可以发送令牌并且永远不会从中检索到的地址。如何生成一个?

0 投票
1 回答
120 浏览

substrate - 无法使用 polkadotjs 密钥环验证子密钥签名,反之亦然

我想了解为什么无法使用 polkadotJs 密钥环验证子密钥签名。

当它使用密钥环签名时,一切都很好:

但是,当我尝试使用相同的 Alice 帐户对其子密钥进行签名时,验证返回 false:

任何人都可以帮忙吗?谢谢!

0 投票
1 回答
348 浏览

python - Polkadot:如何在 python 中签署 Extrinsics?

多亏了py-substrate-interface我可以用类似的东西创建外部:

然后我还可以在他们的文档rpc_request中看到and ,我假设我可以用它来广播签名的外部。ws_request

缺少的步骤是签署外部. 有谁知道如何在python中做到这一点?

0 投票
1 回答
80 浏览

rust - Substrate Kitties:模块未显示为外部

我正在关注 Substrate Kitties 教程。我添加了一张地图并编译了。没有错误。但是当我在外部应用程序中查找模块时,我看不到它。我正在运行 build.sh,然后是 cargo build release,然后在使用 purge--chain 标志后启动节点。

有任何想法吗 ?

0 投票
1 回答
215 浏览

rust - 如何在 Substrate 中拥有不可变的键值映射?

我正在写一个key: value StorageMapin substrate。我想让它不可变,以便在不存在但存在时写入密钥:

i)如果值与存储的值相同,好的 ii)使交易无效。

我写了以下runtime代码:

官方教程讨论了以以下方式改变密钥:

那么,如何使我的key:value不可变?我应该自己写StorageMap吗?如果是,我应该在哪里放置该代码?

注意:我对基材和生锈都不熟悉。

0 投票
0 回答
154 浏览

substrate - 我尝试安装子键但得到空安装错误

我想安装子密钥来处理我的旧 Edgeware 帐户,但我遇到了这个问题:

0 投票
1 回答
48 浏览

rust - 为什么即使更改了底层链的源代码,存储值的可变性行为也没有变化?

阅读了可变性,我在我的底层链中实现了以下代码:

然后将代码更改为:

如您所见,在第二个代码中,可以更改/覆盖该值。我的目的是了解源代码的变化。我正在运行演示基板链,令我惊讶的是,基板链的行为根本没有改变。

在官方文档中提到:

智能合约必须有意识地实现可升级性,而平行链将能够完全通过根命令或通过治理托盘交换其代码。

我没有清除现有的链,而是使用以下命令对其进行了重建:

换句话说,即使我更改了代码并在不清除现有链的情况下重建了它,我的底物链也没有改变它的行为(我无法覆盖该值)。

初始代码:存储值中的不可变键值对最终代码:存储值中的可变键值对

初始链:不可变键值 最终链:不可变键值

这是预期的吗?如果是,那么引用(前面提到的关于平行链的文档)是关于什么的?如果不是,我如何在不清除底物链的情况下改变它的行为?

0 投票
1 回答
160 浏览

rust - 如何导入substrate_primitives 以使用sr25519?

我的Cargo.toml文件中有以下依赖项:

我不确定dependenciessection 和dependencies.primitivessection 之间的区别,但包substrate-primitives包含在原语部分中。

已经看到有我需要使用substrate_primitives的模块,但是当我尝试在我的代码中导入它时:sr25519

我收到以下错误:

如何导入 sr25519 以便可以在代码中使用以下行?