Hyperledger Fabric Service Discovery - 如何获取对等 tls 证书?



我正在运行一个由3个组织组成的超级账本网络(1.3(。TLS 在所有组件上启用(对等节点也是如此(。

我正在使用 fabric-go-sdk 来触发事务。

在结构 sdk 的日志文件中,我经常收到以下错误: [...]由未知机构签署的证书[...]

当 sdk(为我自己组织的对等方初始化(尝试联系网络上不知道正确 tls 证书的其他节点时,似乎会发生这种情况。

我还了解到,sdk 启动发现服务并尝试发现其他对等方(例如通道的对等方(。

但是,我的 sdk 如何检索这些对等方的 tls ca 证书以便能够联系它们?

到目前为止,我发现,在 sdk 的发现服务中,有一个函数可以通过调用 PeerConfig(( 方法将发现的对等节点转换为 PeerConfig

func asPeer(ctx contextAPI.Client, endpoint *discclient.Peer){
// ....
peerConfig, found := ctx.EndpointConfig().PeerConfig(url)
// ....
}

但是 PeerConfig函数也不知道发现的对等方的 tls ca 证书是什么,因此无法仅通过查看提供的 url 来创建正确的 PeerConfig 对象。

配置我的 sdk 以便能够与其他对等方交谈的正确方法是什么? SDK 从哪里获取其他组织的 tls ca 证书?他们被发现了吗?还是我必须手动提供它们?

@Subby 不要与所有的东西混淆

组织1 - 组织1CA

组织2 - org2CA

如果go-sdk的配置文件包含两个组织,那么您必须提及相应组织同行的tlsca证书

您有责任提及正确的 tlsca 证书与服务发现无关

a certificate signed by unknown authority >>> means wrong certificate which is signed by an untrusted certificate authority

您需要做的就是提及适当组织的适当对等方的tlsca证书

来到服务发现

The rule of thumb is you must need at least one peer to discover other peers, so the application will use this peer to discover other peers

注意:您必须配置

- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051

检查示例发现结果 http://ideone.com/UmM0cK

最新更新