问题标签 [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.
substrate - 私人交易
在观看了Gavin在 Q&A 中提到私人交易的谈话后,我开始研究这是否与 Substrate 相关。我发现这篇 Parity Ethereum wiki 文章描述了类似的东西。目前这在 Substrate 上可行吗?
编辑:我想创建只有选定数量的对等方可以查看的加密交易。对于每个事务,此集合可能会更改。
substrate - 我的配置存储的 GenesisConfig 条目在哪里?
在扩展 Sudo 模块之前,我试图重建它的根键行为。在GenesisConfig 上的v1 文档之后,我的config()
存储变量中有一个decl_storage
:
(现在在节点模板 template.rs 中)
然而,如果我查看宏扩展的输出,我template
在 GenesisConfig 结构中没有任何项目,并且我无法在 chain_spec 的 testnet_genesis 函数中输入如下条目
因为我对两者都有抱怨template
,TemplateConfig
即使两者都应该由宏扩展构造。
编辑:具体来说,如果它在use runtime::{}
列表中添加了上面的 TemplateConfig 项目,我会被告知:
我也没有在存储下的 polkadot.js 中看到任何模板项,而我确实看到了 sudo 的key()
.
我错过了什么明显的东西?
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
在运行时模块中
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
substrate - 链下工作者的角色
我正在尝试建立一个关于链下工人在基质中的作用的心智模型。更大的图景似乎是他们在底层节点内移动逻辑,否则由预言机完成,触发预定义的交易。我特别考虑了两个用例:
1:验证文件格式:传入的交易提出一个可以通过url或ipfs hash访问的文件,它的格式需要验证。链下工作人员获取文件,声明格式(大小、编码、内容等),如果正确,则提交另一笔交易,说明它是有效的。
2:密钥生成:假设有一个单独的服务与底层节点一起分发,它管理每个实例的密钥。节点 A 通过参与者 A、B 和 C 之间的外部服务运行密钥共享算法(如 Shamir 的秘密共享),然后在链上创建一个组(A、B、C)的交易。此交易触发该组中的所有节点运行链下工作人员,调用其本地密钥存储以验证是否拥有密钥。之后他们都可以在链上标记它。
据我正确理解,在区块执行后,每个节点都会触发链下工作人员。在前一个用例中,这将导致大量事务仅验证一个文件,并且无法保证这些事务的正确性。就文件的有效性达成共识的好方法是什么?如果没有像质押这样的经济激励措施,这也可能吗?如果代币在网络中没有价值,例如在企业环境中,这将是一个问题。对于链下工作者来说,这甚至是正确的用例吗?第二个例子应该不会遇到这样的问题,我们只需要各方验证拥有密钥。
上面的思考过程哪里出错了,为什么?
blockchain - 重新派遣功能的费用
Substrate 允许您“重新调度”外部变量,例如在调用sudo
sudo 模块中的函数时,我们有:
在这个模型中,被执行的底层proposal
外部sudo
函数proposal
(
在这个例子中这可能是合理的(因为 sudo 帐户是特殊的并且可以被认为是受信任的),但在其他情况下(例如,使用重新发送提议交易的多重签名),情况似乎并非如此。
有没有办法通过 SignedExtension 流程将提案传回,以便TakeFee
可以对基础交易进行评估?
blockchain - 如何在同一运行时内多次重复使用 Substrate 托盘?
我想在同一个运行时有多种货币。默认节点模板中Balances
插入了托盘,但如果我做对了,它只能处理一种货币。
如何多次重复使用托盘?
substrate - 如何将呼叫数据编码到合同中
通读墨迹源代码(此处),我的理解是合约调用是与函数的任何参数连接的选择器。
在 Substrate 运行时模块测试中,我使用了 CallData 构建器,它按照描述进行操作
然后通过contracts frame模块进行调用
对一个合约函数签名
这将返回一个成功的执行 ( Ok(())
) 但不调用合约函数。
值得一提的是,测试正在使用type AccountId = u64
,并且 ink 使用 a struct AccountId([u8;32])
,但我尝试将其作为 32 个字节传递,但并没有什么不同。
我已经验证了周围的测试代码应该可以通过调用一个用 wat here编写的 wasm 程序来工作,该程序能够在不传递任何参数的情况下调用导出的“调用”。
blockchain - 如何激活 Substrate GRANDPA 定稿?
我想用 Babe/Grandpa 共识启动一个链。我可以Toolbox->RPC->author->insertKey()
在 UI 中开始块生产。但我不知道如何开始区块终结。
我试过像我坐在宝贝钥匙一样设置爷爷钥匙Toolbox->RPC->author->insertKey()
:
- 密钥类型:
gran
- 苏里:
//Alice
- publicKey:(
0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee
我也试过sr25519
版本0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d
)
它没有帮助。
在这里,您可以看到块编号正确增加,而最终计数器保持为 #0:
substrate - 如何绑定到 0.0.0.0 而不是 localhost 以用于 Docker 目的
我目前正在尝试将整个节点包装在 Docker 容器中。但是,当我运行它时,基板在本地主机上运行。我似乎找不到将其绑定到 0.0.0.0 的方法,因为由于 VM 的性质是许多环境的中介,因此 Docker 对 localhost 的绑定并不太好。