Hyperledger Fabric Orderer - TLS 握手错误证书问题

Hyperledger Fabric Orderer - TLS Handshake Bad Certificate Issue

我正在开发一个利用超级账本结构网络的保险应用程序项目。我目前遇到一个问题,我的排序节点在崩溃前不会在线超过 10 秒。检查日志,有大量错误消息表明 TLS 证书不一致。错误消息似乎没有具体说明哪些证书是有问题的错误证书,但是日志的更上方是一个错误,指出它无法将预期的证书与它找到的证书相匹配 (Shown in this screenshot)。虽然这个错误也很模糊,但我推断它实际上是在将排序者的 public 密钥证书与本地存储的创世块中的证书进行比较。检查排序节点中的创世块,确实是一个完全不同的证书。我注意到,即使在从 Docker 破坏整个网络并重新构建网络之后,存储在排序节点中的创世块中的证书始终保持完全相同。

就我的网络布局而言,我有 2 个组织。一份给我的订购者,一份给我的同行。我还有 4 个 CA 服务器(用于订购者组织和对等组织的 CA 和 TLS CA 服务器)。 我有 3 个对等节点和 3 个排序节点。

下面包括 orderer1 节点崩溃前的日志 pastebin,以及 GitHub 存储库

orderer1 logs - ``https://pastebin.com/AYcpAKHn

repo - ``https://github.com/Ewan99/InsurApp/tree/remake

注意:当 运行 应用程序时,首先 运行 ./destroy.sh,然后 ./build.sh

我试过重命名证书,以防它们在创建时被彼此覆盖。 我尝试将订购者从 3 个减少到 1 个,看看是否有任何不同。 当然,从3个orderer到1个orderer我从RAFT改成solo,还是遇到了同样的问题

我查看了 docker-compose.yaml 文件,其中有些内容应该会导致失败。每个对等定义使用相同的端口,例如

CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.iapeer.com:7051
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer2.iapeer.com:7051
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer3.iapeer.com:7051

在我看来,当 运行 在单个服务器上时这不可能工作,但也许我遗漏了什么。

根据david_k's

Looks like you are using persistent volumes in docker, so do you prune these volumes when you start again from scatch if you don't then you can pick up data that doesn't match newly created crypto material

我不得不修剪我的旧 docker 卷,因为它们存在冲突并为新构建的容器提供旧证书