Corda V3启动Cordapp遇MissingContractAttachments错误的解决咨询
解决Corda V3中
MissingContractAttachments错误的方法 在Corda V3里确实没有setExtraCordappPackagesToScan这个方法,我来给你几个靠谱的解决思路,帮你搞定这个MissingContractAttachments错误:
通过节点配置文件指定扫描包
找到你IDE启动节点对应的node.conf配置文件,添加cordappScanningPackageNames参数,把你的合同所在包填进去:cordappScanningPackageNames = [ "com.example.contract" ]这个配置会让节点在启动时主动扫描指定包下的所有Cordapp组件,包括你的
IBuildContract合同。在节点启动代码中手动加载Cordapp
如果是通过自定义代码启动节点(比如IDE里的测试启动类),可以直接在节点参数中指定要加载的合同Cordapp:// 示例Java代码 NodeParameters nodeParams = new NodeParameters() .withCordapps(Arrays.asList( new CordappImpl( getClass().getClassLoader(), new File("build/libs/your-contract-module.jar") ) )); // 用这个参数启动节点 Node node = driver.startNode(nodeParams).get();注意要先把你的合同模块打包成Cordapp Jar,路径要对应实际生成的Jar位置。
检查模块依赖与构建配置
确保发起交易的Flow模块已经正确依赖了合同模块,在Flow模块的build.gradle里添加依赖:dependencies { compile project(':your-contract-module') }同时,合同模块的
build.gradle要正确配置为Cordapp:cordapp { targetPlatformVersion 3 contract { name "com.example.contract.IBuildContract" versionId 1 } }这样构建时才会把合同打包成符合Corda要求的Cordapp组件。
另外要注意:参与这笔交易的所有节点都必须部署这个合同Cordapp,不然交易验证时还是会出现找不到附件的错误。
内容的提问来源于stack exchange,提问作者Pe4eN
相关产品推荐
相关产品推荐

