问题标签 [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 回答
90 浏览

substrate - 私人交易

在观看了Gavin在 Q&A 中提到私人交易的谈话后,我开始研究这是否与 Substrate 相关。我发现这篇 Parity Ethereum wiki 文章描述了类似的东西。目前这在 Substrate 上可行吗?

编辑:我想创建只有选定数量的对等方可以查看的加密交易。对于每个事务,此集合可能会更改。

0 投票
2 回答
477 浏览

substrate - 我的配置存储的 GenesisConfig 条目在哪里?

在扩展 Sudo 模块之前,我试图重建它的根键行为。在GenesisConfig 上的v1 文档之后,我的config()存储变量中有一个decl_storage

(现在在节点模板 template.rs 中)

然而,如果我查看宏扩展的输出,我template在 GenesisConfig 结构中没有任何项目,并且我无法在 chain_spec 的 testnet_genesis 函数中输入如下条目

因为我对两者都有抱怨templateTemplateConfig即使两者都应该由宏扩展构造。

编辑:具体来说,如果它在use runtime::{}列表中添加了上面的 TemplateConfig 项目,我会被告知:

我也没有在存储下的 polkadot.js 中看到任何模板项,而我确实看到了 sudo 的key().

我错过了什么明显的东西?

0 投票
1 回答
1854 浏览

substrate - 如何解决板条箱'std'中的Substrate`duplicate lang item('myexternalcrate'取决于):'panic_impl'与sr-io冲突

我在我的 Substrate 1.0 运行时模块(基于node-template)中使用了一个 extern crate,它给出了一个编译错误

如果我正确理解了该消息,那么我认为如果开发人员想要包含依赖于std已在 中实现的功能的外部 crate,这可能是一个常见问题sr-io,但我不确定这是否正确。

我在这里看到了这个问题,它似乎已经修复,sr-io但这似乎不是这里的原因。

他们是解决这个问题的另一种方法吗?

编辑:添加对Cargo.toml 我们正在尝试拉入名为 nacl 的板条箱的更改

添加于lib.rs

在运行时模块中

0 投票
1 回答
805 浏览

substrate - Substrate transaction per second performance

Hey guys I have a performance related question. I am running 2 aws instance (t2.2xlarge) with 30GB storage. I am running a v2.0 node (branched from master a few days ago) on each with the default setup and i am testing how many transactions per second i can process.

Sending 495 (just under the default 500) balance transfer transactions averages around 22 transactions per second. Is this expected?

I tried running the same test locally (Dell XPS with 1T storage and I7 processor) with 2 instances (both with node-template and node) and the highest average TPS i have seen is 35. Is there anything i can do to improve this?

Thanks

0 投票
1 回答
395 浏览

substrate - 链下工作者的角色

我正在尝试建立一个关于链下工人在基质中的作用的心智模型。更大的图景似乎是他们在底层节点内移动逻辑,否则由预言机完成,触发预定义的交易。我特别考虑了两个用例:

1:验证文件格式:传入的交易提出一个可以通过url或ipfs hash访问的文件,它的格式需要验证。链下工作人员获取文件,声明格式(大小、编码、内容等),如果正确,则提交另一笔交易,说明它是有效的。

2:密钥生成:假设有一个单独的服务与底层节点一起分发,它管理每个实例的密钥。节点 A 通过参与者 A、B 和 C 之间的外部服务运行密钥共享算法(如 Shamir 的秘密共享),然后在链上创建一个组(A、B、C)的交易。此交易触发该组中的所有节点运行链下工作人员,调用其本地密钥存储以验证是否拥有密钥。之后他们都可以在链上标记它。

据我正确理解,在区块执行后,每个节点都会触发链下工作人员。在前一个用例中,这将导致大量事务仅验证一个文件,并且无法保证这些事务的正确性。就文件的有效性达成共识的好方法是什么?如果没有像质押这样的经济激励措施,这也可能吗?如果代币在网络中没有价值,例如在企业环境中,这将是一个问题。对于链下工作者来说,这甚至是正确的用例吗?第二个例子应该不会遇到这样的问题,我们只需要各方验证拥有密钥。

上面的思考过程哪里出错了,为什么?

0 投票
2 回答
85 浏览

blockchain - 重新派遣功能的费用

Substrate 允许您“重新调度”外部变量,例如在调用sudosudo 模块中的函数时,我们有:

在这个模型中,被执行的底层proposal外部sudo函数proposal

在这个例子中这可能是合理的(因为 sudo 帐户是特殊的并且可以被认为是受信任的),但在其他情况下(例如,使用重新发送提议交易的多重签名),情况似乎并非如此。

有没有办法通过 SignedExtension 流程将提案传回,以便TakeFee可以对基础交易进行评估?

0 投票
2 回答
536 浏览

blockchain - 如何在同一运行时内多次重复使用 Substrate 托盘?

我想在同一个运行时有多种货币。默认节点模板中Balances插入了托盘,但如果我做对了,它只能处理一种货币。

如何多次重复使用托盘?

0 投票
0 回答
289 浏览

substrate - 如何将呼叫数据编码到合同中

通读墨迹源代码(此处),我的理解是合约调用是与函数的任何参数连接的选择器。

在 Substrate 运行时模块测试中,我使用了 CallData 构建器,它按照描述进行操作

然后通过contracts frame模块进行调用

对一个合约函数签名


这将返回一个成功的执行 ( Ok(())) 但不调用合约函数。

值得一提的是,测试正在使用type AccountId = u64,并且 ink 使用 a struct AccountId([u8;32]),但我尝试将其作为 32 个字节传递,但并没有什么不同。

我已经验证了周围的测试代码应该可以通过调用一个用 wat here编写的 wasm 程序来工作,该程序能够在不传递任何参数的情况下调用导出的“调用”。

模块合约的完整存储库也在 github 上。

0 投票
1 回答
706 浏览

blockchain - 如何激活 Substrate GRANDPA 定稿?

我想用 Babe/Grandpa 共识启动一个链。我可以Toolbox->RPC->author->insertKey()在 UI 中开始块生产。但我不知道如何开始区块终结。

我试过像我坐在宝贝钥匙一样设置爷爷钥匙Toolbox->RPC->author->insertKey()

  • 密钥类型:gran
  • 苏里://Alice
  • publicKey:(0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee我也试过sr25519版本0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d

它没有帮助。

在这里,您可以看到块编号正确增加,而最终计数器保持为 #0:

0 投票
3 回答
13738 浏览

substrate - 如何绑定到 0.0.0.0 而不是 localhost 以用于 Docker 目的

我目前正在尝试将整个节点包装在 Docker 容器中。但是,当我运行它时,基板在本地主机上运行。我似乎找不到将其绑定到 0.0.0.0 的方法,因为由于 VM 的性质是许多环境的中介,因此 Docker 对 localhost 的绑定并不太好。