我正在运行一个由 3 个组织组成的超级账本网络(1.3)。在所有组件(对等节点也是如此)上启用了 TLS。
我正在使用 fabric-go-sdk 来触发事务。
在 fabric sdk 的日志文件中,我经常收到以下错误:[...]certificate signed by unknown authority[...]
当 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证书?他们真的被发现了吗?还是我必须手动提供?