java-sdk-demo 调用添加证书报错 tx verify failed, verify tx authentation failed
java-sdk-demo报了个错,麻烦大佬帮看下是不是配置有啥毛病
版本v2.3.2
本地虚拟机起了4个节点,demo的crypto-config是在节点启动后的crypto-config直接覆盖的,启动用的证书模式
报错信息: 2025-01-11 15:29:16.945 INFO [main]: GrpcClientFactory.create:119 create a new grpc client:org.chainmaker.sdk.RpcServiceClient@b339a08.... org.chainmaker.sdk.ChainClientException: tx verify failed, verify tx authentation failed, authentication error: authentication failed, [refine endorsements failed, all endorsers have failed verification], txId:181992d048fdd61cca492658cd881c496e8d67ee60584eb59b3a307855f7d90b, sender:2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d494943617a434341684b674177494241674944437631504d416f4743437147534d343942414d434d4947454d517377435159445651514745774a44546a45510a4d4134474131554543424d48516d5670616d6c755a7a45514d4134474131554542784d48516d5670616d6c755a7a45634d426f474131554543684d5465586f740a62334a6e4d533535656d4e6f59576c754c6d39795a7a45534d4241474131554543784d4a636d39766443316a5a584a304d523877485159445651514445785a6a0a5953353565693176636d63784c6e6c36593268686157347562334a6e4d423458445449314d4445774e7a41334d7a67784e466f5844544d774d4445774e6a41330a4d7a67784e466f7767597378437a414a42674e5642415954416b4e4f4d5241774467594456515149457764435a576c716157356e4d52417744675944565151480a457764435a576c716157356e4d527777476759445651514b45784e3565693176636d63784c6e6c36593268686157347562334a6e4d513877445159445651514c0a45775a6a62476c6c626e51784b54416e42674e5642414d5449474e73615756756444457563326c6e6269353565693176636d63784c6e6c3659326868615734750a62334a6e4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a304441516344516741454a69454b50634154464363746f306837324e3863686a4f6d0a636936574538357249633933376276737762317a35623843353171335738466f765774786676424e33736e36694f37443471336c6d32754370424c6677364e710a4d47677744675944565230504151482f42415144416762414d436b474131556444675169424344476a79746a5067766c567966752b4a477879766f6e4b7832760a62336c4e666f4b424f537076794470594944417242674e5648534d454a444169674344455a41363038796b745558625471344650434930586c6c504a2f57484c0a586b4e72674c3262514b32752b54414b42676771686b6a4f5051514441674e48414442454169426b4851573277544751726b436272706b794f4b476c6a4f79610a7272764a7063674b364476332b77552f6851496750724d555a586a6647675672784e596a5341464957354c347a635449356c49594378354f786355742b4c6b3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a at org.chainmaker.sdk.ChainClient.checkProposalRequestResp(ChainClient.java:3368) at org.chainmaker.sdk.ChainClient.getChainConfig(ChainClient.java:1106) at org.chainmaker.sdk.ChainClient.getCertHash(ChainClient.java:320) at org.chainmaker.sdk.ChainClient.addCert(ChainClient.java:1566) at org.chainmaker.sdk.TestCertManage.testAddCert(TestCertManage.java:23) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
java.lang.AssertionError: tx verify failed, verify tx authentation failed, authentication error: authentication failed, [refine endorsements failed, all endorsers have failed verification], txId:181992d048fdd61cca492658cd881c496e8d67ee60584eb59b3a307855f7d90b, sender:2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d494943617a434341684b674177494241674944437631504d416f4743437147534d343942414d434d4947454d517377435159445651514745774a44546a45510a4d4134474131554543424d48516d5670616d6c755a7a45514d4134474131554542784d48516d5670616d6c755a7a45634d426f474131554543684d5465586f740a62334a6e4d533535656d4e6f59576c754c6d39795a7a45534d4241474131554543784d4a636d39766443316a5a584a304d523877485159445651514445785a6a0a5953353565693176636d63784c6e6c36593268686157347562334a6e4d423458445449314d4445774e7a41334d7a67784e466f5844544d774d4445774e6a41330a4d7a67784e466f7767597378437a414a42674e5642415954416b4e4f4d5241774467594456515149457764435a576c716157356e4d52417744675944565151480a457764435a576c716157356e4d527777476759445651514b45784e3565693176636d63784c6e6c36593268686157347562334a6e4d513877445159445651514c0a45775a6a62476c6c626e51784b54416e42674e5642414d5449474e73615756756444457563326c6e6269353565693176636d63784c6e6c3659326868615734750a62334a6e4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a304441516344516741454a69454b50634154464363746f306837324e3863686a4f6d0a636936574538357249633933376276737762317a35623843353171335738466f765774786676424e33736e36694f37443471336c6d32754370424c6677364e710a4d47677744675944565230504151482f42415144416762414d436b474131556444675169424344476a79746a5067766c567966752b4a477879766f6e4b7832760a62336c4e666f4b424f537076794470594944417242674e5648534d454a444169674344455a41363038796b745558625471344650434930586c6c504a2f57484c0a586b4e72674c3262514b32752b54414b42676771686b6a4f5051514441674e48414442454169426b4851573277544751726b436272706b794f4b476c6a4f79610a7272764a7063674b364476332b77552f6851496750724d555a586a6647675672784e596a5341464957354c347a635449356c49594378354f786355742b4c6b3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a
at org.junit.Assert.fail(Assert.java:89)
at org.chainmaker.sdk.TestCertManage.testAddCert(TestCertManage.java:26)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Disconnected from the target VM, address: '127.0.0.1:63884', transport: 'socket'
sdk_config配置 chain_client:
链ID
chain_id: "chain1"
组织ID
org_id: "wx-org1.chainmaker.org"
客户端用户私钥路径
user_key_file_path: "src/test/resources/crypto-config/wx-org1.chainmaker.org/user/client1/client1.tls.key"
客户端用户证书路径
user_crt_file_path: "src/test/resources/crypto-config/wx-org1.chainmaker.org/user/client1/client1.tls.crt"
客户端用户交易签名私钥路径
user_sign_key_file_path: "src/test/resources/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.key"
客户端用户交易签名证书路径
user_sign_crt_file_path: "src/test/resources/crypto-config/wx-org1.chainmaker.org/user/client1/client1.sign.crt"
同步交易结果模式下,轮训获取交易结果时的最大轮训次数,删除此项或设为<=0则使用默认值 10
retry_limit: 10
同步交易结果模式下,每次轮训交易结果时的等待时间,单位:ms 删除此项或设为<=0则使用默认值 500
retry_interval: 500
当前签名证书的别名。当设置此配置项时,chain client 对象将自动检查链上是否已添加此别名,如果没有则自动上链此证书别名,
并且后续所有交易都会使用别名,别名可降低交易体大小。若为空则不启用。
alias: mycert5
nodes: - # 节点地址,格式为:IP:端口:连接数 node_addr: "192.168.203.128:12301" # RPC连接是否启用双向TLS认证 enable_tls: true # 信任证书池路径 trust_root_paths: - "src/test/resources/crypto-config/wx-org1.chainmaker.org/ca" - "src/test/resources/crypto-config/wx-org2.chainmaker.org/ca" # TLS hostname tls_host_name: "chainmaker.org" - # 节点地址,格式为:IP:端口:连接数 node_addr: "192.168.203.128:12302" # RPC连接是否启用双向TLS认证 enable_tls: true # 信任证书池路径 trust_root_paths: - "src/test/resources/crypto-config/wx-org1.chainmaker.org/ca" - "src/test/resources/crypto-config/wx-org2.chainmaker.org/ca" # TLS hostname tls_host_name: "chainmaker.org" archive: # mysql archivecenter 归档中心 数据归档链外存储相关配置 type: "mysql" dest: "root:123456:localhost:3306" secret_key: xxx
如果为true且归档中心配置打开,那么查询数据优先从归档中心查询
如果是false,则不访问归档中心,只访问链数据
archive_center_query_first: false
归档中心
archive_center_config: chain_genesis_hash: a23a0c6fd402010efbc31741b2a868c9e6558471fda1e8d1f16673ef683e06db archive_center_http_url: http://127.0.0.1:13119 request_second_limit: 10 rpc_address: 127.0.0.1:13120 tls_enable: false tls: server_name: archiveserver1.tls.wx-org.chainmaker.org priv_key_file: archivecenter/archiveclient1.tls.key cert_file: archivecenter/archiveclient1.tls.crt trust_ca_list: - archivecenter/ca max_send_msg_size: 200 max_recv_msg_size: 200
rpc_client: # grpc客户端最大接受/发送容量(MB) max_receive_message_size: 100
pkcs11: enabled: false # pkcs11 is not used by default
交易结果是否订阅获取
enable_tx_result_dispatcher: false
##连接池配置 connPool: # 最大连接数 maxTotal: 100 # 最少空闲连接 minIdle: 5 #最大空闲连接 maxIdle: 20 #连接空闲最小保活时间,默认即为-1,单位:ms #当空闲的时间大于这个值时,强制移除该空闲对象 minEvictableIdleTime: -1 #连接空闲最小保活时间,默认即为30分钟(1800000),单位:ms #当对象的空闲时间超过这个值,并且当前空闲对象的数量大于最小空闲数量(minIdle)时,执行移除操作 softMinEvictableIdleTime: 1800000 #回收空闲线程的执行周期,单位毫秒。默认值5分钟(300000) ,-1 表示不启用线程回收资源,单位:ms timeBetweenEvictionRuns: 300000 #没有空闲连接时,获取连接是否阻塞 blockWhenExhausted: true #当没有空闲连接时,获取连接阻塞等待时间,单位:ms maxWaitMillis: 11000