问题标签 [hyperledger-fabric-sdk-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hyperledger-fabric - 使用fabric-sdk-go连接网关失败
当我使用 fabric-sdk-go 连接我的本地网络时,它不起作用,因为对等 peer1.org1.adbc.com 的 tls.certificate 不存在或为空。在我使用shell的时候,一切都可以正常运行,并且可以在各个节点上调用invoke命令。这个网络是基于2.3版本的fabric示例。在此基础上,我在每个组织中添加了一个节点。这是错误信息。
这是 docker-compose.yaml
这是连接配置
这是我的代码:
模块是
如何像示例一样使用 fabric-sdk-go 连接我的网络?
hyperledger-fabric - Hyperledger Go SDK 客户端错误连接处于 TRANSIENT_FAILURE 远程错误:tls: bad certificate
我知道有几个像这样的错误,但我看到其中大部分都与测试网络有关,使用本地环境,我的情况不同。
我有一个使用 k8s 运行的区块链,它曾经在 V1.4 中运行,我们将其迁移到 V2.3,因此证书是在没有 SAN 的情况下生成的,但是为了使它们与新版本一起使用,我们使用了GODEBUG="x509ignoreCN=0"
我可以连接的 env 变量使用控制台客户端对通道和配置进行更改,我可以连接节点 js 客户端并执行合同,我想使用 Go 客户端连接不同的应用程序,但配置有问题。
我TRANSIENT_FAILURE
在 Go 客户端和对等方中遇到错误,tls: bad certificate
但证书与其他环境相同,我正在使用的 config.yaml 基于我在测试网络中的配置,该配置也有效。
奇怪的是,configPath 似乎不起作用,我需要单独添加用户以使其运行。
所以这是我的 config.yaml
这些是我的证书路径:
这些是来自客户端的日志:
这些是来自对等方的日志:
- 一些奇怪的事情:我需要将用户添加到组织中,一些它无法从 configPath 中提取用户并且我得到一个错误
user not found
。 - 它正在寻找 msp/keystore 文件夹中的 tls 私钥,当然它不存在
- 我尝试添加
GODEBUG="x509ignoreCN=0"
但它不会改变结果 - 我为客户端生成了一个额外的 TLS 证书,将 SAN 作为“email:admin-tls@mycompany.com”添加到它们,并将其映射到具有相同结果的配置。
- 我尝试添加和删除具有相同结果的 entityMatchers。
我还在它的服务器上做了一个 tcp 转储,它回答了Client hello
with Server hello
,然后失败并出现 400bad request
错误。
我的想法不多了,我的配置对吗?为什么我需要强制客户端并且 configPath 不起作用?为什么要在 msp 密钥库中寻找 tls 密钥?但大多数情况下,如果证书很好并且通过了openssl verify
对 ca.pem 的审核,为什么我会得到一个错误的证书?
谢谢
更新
这是我使用的证书信息openssl x509 -in certificate.pem -text -noout