-
Notifications
You must be signed in to change notification settings - Fork 699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用同一组私钥地址,在多个群组中部署同一份合约,只有最先部署的可以正常使用 #4310
Comments
交易中包含群组信息,至针对特定群组有效。可以检查一下这个交易的群组id,是不是发送到另一个群组上了? |
@JimmyShi22 群组ID没有设置错误。同样的交易,换成新部署的合约地址就能执行成功 |
谢谢反馈!控制台用的是哪个版本? |
可以把节点配置和控制台配置发出来一起看一下。看看控制台连接了哪些节点,每个节点属于哪些群组? 😄 |
@JimmyShi22 不好意思最近没有上来跟进问题。我们所有的操作都是调用JSON-RPC接口完成的,没有用控制台。今天看到回复后,让运维用控制台(v2.9.0)部署执行合约没有出现上述问题。过程中发现用控制台部署合约需要传一个版本号,而我们调用JSON-RPC接口部署合约过程中没有用到什么版本号。是不是跟这个有关系?如果有关系的话,调用JSON-RPC接口部署合约该怎么用上版本号? |
交易的数据结构里面包含groupID的字段,从报错来看,是因为交易二进制和发送到的群组未对应上 |
可以检查一下生成交易的逻辑,是不是设置的是固定的groupID? |
@JimmyShi22 我们使用群组ID的方式肯定没有问题,如果群组ID弄错了,不管再部署多少次合约也一样会报错的。但实际情况是多部署几次合约就没问题了 |
环境
实体机 vmware esxi 6.7.0
虚拟机 ubuntu-20.04.3
Docker version 20.10.16
官方提供的镜像 fiscoorg/fiscobcos v2.9.0
在同一个虚拟机中用docker镜像起了5个bcos节点
复现过程
(以下调用JSON-RPC接口都是访问的节点1)
调用JSON-RPC接口generateGroup和startGroup,创建并启用3个群组(每个群组都包含节点1,其他节点任选)
调用JSON-RPC接口sendRawTransaction,在每个群组中部署合约(用的同一组私钥地址,部署的是同一份合约)
发现在3个群组中部署合约得到的合约地址相同,只有最先部署的合约可以正常使用,后2个群组部署的合约使用都报错。
INTERNAL_ERROR: : INTERNAL_ERROR: : /FISCO-BCOS/libtxpool/TxPool.cpp(185): Throw in function virtual std::pair<h256, Address> dev::txpool::TxPool::submitTransactions(dev::eth::Transaction::Ptr) Dynamic exception type: boost::exception_detail::clone_impl<dev::eth::TransactionRefused> std::exception::what: std::exception [dev::tag_comment*] = InvalidGroupId, txHash=31d6e1da...
再次调用JSON-RPC接口sendRawTransaction,在后2个群组中再次部署合约(用的还是同之前一样的私钥地址,部署的也还是同一份合约)
发现这一轮部署得到的合约地址也相同,但与第一轮部署的合约地址不同。这一轮还是先部署的合约(群组2)可以正常使用,之后部署的合约(群组3)使用报错(错误信息同上)。
最后调用JSON-RPC接口sendRawTransaction,在第3个群组中再次部署合约,得到了一个新的合约地址,与前两轮的合约地址不同,至此第3个群组也可以正常使用合约了。
期望
使用同一组私钥地址,在多个群组中部署同一份合约。期望每个群组首次部署的合约都可以正常使用。
The text was updated successfully, but these errors were encountered: