新合同错误

时间:2018-10-23 02:27:25

标签: corda

我正在尝试实施现有合同的新版本,但遇到一些问题。合同的更新不是修复错误,而是以向后兼容的方式实现的。当前的工作流程为:

1-更新状态/合同

2-确保它们按预期工作

3-为v2创建jar文件

4-从所有节点上删除v1 jar并将v2 jar分发到所有节点。

5-重新启动网络上的所有节点

执行此操作时,出现以下错误:

E 02:21:57+0000 [main] cordapp.CordappProviderImpl.verifyInstalledCordapps - Contract com.p.contracts.CampContract found in attachment 916D0DE76A4CC4DEEEB200DA5A49303ACEE3F3006B45036912714CA29C02325B is not whitelisted in the network parameters. If this is a production node contact your zone operator. See https://docs.corda.net/network-map.html {}

我尝试分发更新的网络参数,但是认为我做错了。我只是在本地运行gradlew clean deployNodes任务,然后将生成的网络参数文件上传到所有节点。当我这样做并重新启动时,它会正常启动。但是然后,如果我尝试执行流,则会收到此错误:

input state requires notary "O=Notary, L=New York, C=US" which does not match the transaction notary "O=Notary, L=New York, C=US"

不赞成在这里做什么。除了公证员,我还有其他7个节点正在运行。还有另一种更新网络参数的方法吗?或者我没有采用正确的方法吗?

谢谢

2 个答案:

答案 0 :(得分:0)

您需要按照https://docs.corda.net/head/network-bootstrapper.html#updating-the-contract-whitelist-for-bootstrapped-networks使用引导程序工具在网络参数CZ白名单中注册新的Contract V2 JAR文件

答案 1 :(得分:0)

我认为这里发生的是,当您执行“ clean deployNodes”操作时,您重置了所有密钥,因此网络参数文件现在正在谈论使用不同的pubkey新建的公证人-Corda确实在乎pubkey,即使它经常使用用户界面中的X.500名称,因此出现奇怪/混乱的错误消息。

对于在 non 自举网络中重新签名网络参数文件,不幸的是,在Corda 3中,我们没有提供开箱即用的工具,因为其目的是将自举网络用于测试和测试网或主要的Corda网络用于部署。但是,仅需编写几行代码,就可以在这里了解如何做到这一点:

https://github.com/corda/corda/blob/master/node-api/src/main/kotlin/net/corda/nodeapi/internal/network/NetworkParametersCopier.kt

希望这足以使您使用自定义设置更新拥有的params文件。