社区问答精选——长安链开发知多少?(6月)

此次整理的内容为5-6月社群内的问答供更多开发者参考(社群中部分优质问题连贯性不足未能收录,欢迎点击公众号菜单栏加入社群共同交流)。有更多问答在社区issue中描述更为细致,开发者提问前可以先按照关键词进行搜索。欢迎各位开发者按照问答template提交issue,也欢迎有意愿的开发者参与到社区issue版块维护中。

issue问答合集链接:

https://git.chainmaker.org.cn/chainmaker/issue/-/issues?scope=all&utf8=%E2%9C%93&state=all

社群问答精选

安装配置

扫描二维码关注公众号,回复: 15515426 查看本文章

1. Q:请教一下,长安链部署链对于服务器有没有要求,可不可以用虚拟机?

A:可以的,例如使用centos7。

2. Q:想问这个是啥问题?我这个是开放测试网络。

A:使用长安链插件钱包发送上链信息失败。

(1)此前长安链开放测试网络升级过相关链信息,如果您的插件版本低于V1.5.0,请尽快升级到V1.5.0及以上;

(2)如果您是订阅的自己的链且连接超时,请检查如下信息。

- 长安链插件是部署在公网的,请确保您的链网络支持公网访问。

- 如果您的链网络是部署在局域网环境的测试用的,请将插件系统设置内的网络代理更换到您自行部署的代理服务上。如何部署代理服务请参考长安链插件使用文档。

- 您所要访问的链的相关信息是否填写正确,如chainid,节点信息、链账户信息,以及节点是否还正常运行。

3. Q:管理平台可以修复合约升级权限的吗, 在管理平台投票后修改失败?

A:(1)长安链管理台目前支持修改链配置和链的账户权限,在列表上罗列出:更新区块配置,部署合约、升级合约、冻结合约、解冻合约、注销合约等常用的几个权限的入口。同时也可以通过修改更多权限按钮,修改更多权限。

如果您通过列表修改权限失败,可尝试通过修改更多权限按钮修改。

长安链的权限资源请参考文档:https://docs.chainmaker.org.cn/tech/%E8%BA%AB%E4%BB%BD%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86.html#permissionedwithcert

(2)如果两者都修改失败,请检查您的链是否还正常运行。

4. Q:请问数据迁移工具目前支持到哪个版本?说明里面是2.2.1。

A:后续的长安链版本兼容2.2.1的数据。

Q:2.3.x版本支持吗?

A:支持的;只需要备份数据之后,更换可执行程序即可。

5. Q:请问链的日志级别在链搭建成功后,可以再次对日志级别进行修改吗?

A:修改log.yml后重启节点。

Q:节点不重启可以吗?

A:目前不支持。

6. Q:请问多机部署中生成的安装包在Linux和Mac通用吗?

A:不通用。

Q:那如果部署机器有Mac的话如何生成他的安装包呀?

A:在mac上单独生成节点安装包然后加入已有链,证书使用同一套,换下二进制就行。

合约相关

7. Q:你好,我想问一下预言机的合约格式限制是只是这个post 表单功能限制吗。还是全局就只支持编译环境是 go 的合约? 因为我看前面说明使用 cmc 指令的时候一点也没提这个事情,只在这里提了下。

A:只支持go合约。

8. Q:把 docker 合约 vm 启用,启动时候报这个错误是什么原因?

A:docker vm没启动吧?这个错误是连接不上docker vm。

Q:看到存在 没有看到端口映射。docker port VM-GO-xf-org4.xwindlab.com 这个容器没有端口映射出来 是正确的吗?

A:不正确 相对于 你连上 EVM 虚拟机,无法部署合约。

9. Q:第一次执行 cmc 合约部署,sdk.log 会报getSyncResult failed错。但是第二次执行的时候就会变成failed to check contract bin version。(但是删除sdk.log后再执行,会继续报错getSyncResult failed)

https://git.chainmaker.org.cn/chainmaker/chainmaker-go/-/blob/master/test/testdata/ERC20Go.7z  

用 chainmaker-go 的 ERC20 测试。发现现象和合约无关,只要是 go 的合约,上述现象是一样的。

A:1. 区块链节点环境安装了7z,不是本地,是区块链节点;2. 确认所有节点都有7z。

SDK相关

10. Q:各位好,想请教一下java-SDK、以及出块的问题:

版本:2.3.1;

链配置:出块间隔-10s,区块容量-100;

问题:SDK发起上链,只有一笔交易就打包出块了,怎么才能一次打包多笔交易,是配置有问题吗?

A:举个例子:公交车来了,站台只有一个人,那就不等了直接拉着开走。站台有 200 人等待,一趟车就拉 100 人,那就俩次拉完。

Q:这个能理解,但是我的疑问点也在这,测试的时候,单个节点发起一次调用(调用invokeContract方法),然后就等待了,出块间隔到了就出块;

我想问的是:单个节点的多笔交易是通过一次调用完成的,还是说多笔交易需要多次调用才可以?

A:多线程或者说发送时采用异步方式,不要同步等待结果。

11. Q:问一下 怎么设置go-sdk中日志模块,比如输出等级、日志文件位置等,WithChainClientLogger这一个貌似不够啊?

A:可以参考这个:

交易相关

9. Q:如果要修改运行时的交易池大小,能通过执行系统合约修改吗?

A:交易池配置在chainmaker.yml里面,属于节点配置,不是链配置。不支持动态修改。

Q:那就是修改配置文件然后重启对吧?

A:对的,修改chainmaker.yml里面的配置,都这么做。

10. Q:长安链有根据时间范围查询交易的接口吗?

A:没有,可以考虑转换成时间范围内的区块,然后根据区块去取交易。

Q:这个时间范围内的区块需要业务系统自己记录吗?

A:区块里面有时间戳,如果不记录的话,可以用里面的时间戳,然后结合二分查找。但是记录会简单些,需要额外存,可以结合自己的场景选择合适的方案。

11. Q:请问开了batch交易池后会自动打开共识消息压缩吗?

A:会的。

12. Q:如果配了多个chain id,那么chain1和chian2的交易应该不会打在同一个区块里吧?

A:两个chain的区块互不干扰。

存储相关

13. Q:请问大家影响节点运行内存占用大小的因素都主要有什么呢,我在使用默认交易过滤器进行1000笔/s的压力测试时,内存使用量达到700MB,希望能够降低一下。

A:可以用pprof分析一下。

Q:这样看是文件DB占用的多,请问这个可以降低吗?

A:logdb_segment_size: 64,修改这个配置之后重启看看;另外你服务器配置低的话,需要关闭一些缓存配置,enable_rwc: false

disable_state_cache: true。

14. Q:请问长安链的区块结果里面的额外数据的字段是存储什么信息的呢?

A:主要是签名信息。

15. Q:请问节点存储文件下wal存储的是什么内容呢?

A:这个是共识节点存储的一些wal信息,保证共识安全和一致性的。

Q:那请问他的大小是累计增长的吗?

A:会增长,但有上限,会自动删除过期的内容。

证书相关

16. Q:编译证书工具,报这些错误。需要怎么配置才能通过呢?asym这个包没有被包含进去编译。请问下大佬们,cryptogen需要设置一些特殊配置吗?试过了go mod了,直接执行make也是报一样的错误我电脑装了三个版本的go。其他项目我是能随意切换go版本编译的?

A:windows可以试试230的。支持编译。231的暂未适配windows。 

17. Q:请教一下 PermissionWithKey、Public  这2中身份模式区别在哪?都是公私钥。

A:PermissionWithKey 这个还需要注册用户才可以访问合约。Public 完全不用注册 相当于放开权限,像公链一样。

跨链相关

18. Q:请问适配2.3.x版的跨链程序发布了吗?查找了一下spv,发布到了2.1.0版。没看到2.3.0对应的spv版本,另外,cross-chain中集成了spv功能,看到现在的版本支持到v2.1.0。

Q:2.3.x版本的跨链程序暂时还没发布,可以继续关注,目前只支持到2.1.x。

19. Q:长安链支持fabric到fabric的跨链吗?

A:不支持。

共识相关

20. Q:长安链这个tbft就是tendermint么?

A:是的,算法本身是基于tendermint论文的,我们做了一些调整和优化。

Q:他的这个主节点轮换的规则是什么呢?

A:正常情况下就是轮换,一个一个来,如果出现一轮没有出块的时候,等这轮完成后,会重新按照取模的方式来。

21. Q:求问,长安链共识节点优先考虑的是内存,还是硬盘?当数据量大起来时,哪部分会成为瓶颈?

A:都需要考虑吧,看测试的时候卡点在哪里;https://docs.chainmaker.org.cn/manage/%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86.html。存储配置的时候,参照一下这个文档。

其他问题

22. Q:

chainmaker/vm-wasmer/[email protected]/wasmer-go/packaged/include/wasm.h:32: more undefined references to `static_assert' followcollect2: error: ld returned 1 exit status

centos编译报错了 ,wasm的。

A:gcc -v 查看gcc版本,升级到7.3以上。

23. Q:

订阅链失败: send QUERY_CONTRACT failed, all client connections are busy

有谁遇到过这种错误吗?

A:检查一下证书和配置文件是否匹配。

24. Q:请问一下上链成功了,但是里面数据乱码是什么原因呢?

A:浏览器只解析base64,和utf-8。

25. Q:存证合约用的哈希函数是哪种哈希函数?

A:这个由具体的业务来决定哈,长安链的存证合约不计算hash,由业务方根据业务场景来计算就可以~

26. Q:请问在区块头的签名字段和额外数据的签名信息有什么不同呢?

A:区块头是自己签名,其他地方是共识投票签名。

27. Q:public key 模式下,节点之间需要tls证书吗?

A:不需要。

猜你喜欢

转载自blog.csdn.net/weixin_55760491/article/details/131281103