如何使用最新的配置块加入与对等设备的通道?
配置块0中的订单者不再存在,dns名称已更改。
当我获取通道的最新配置,并尝试加入该配置时,我得到以下错误:
peer channel fetch config ...
peer channel join ...
Error: proposal failed (err: bad proposal response 500: cannot create ledger from genesis block: Expected block number=0, received block number=11276)
command terminated with exit code 1然而,当我获取配置块0并加入时,它成功了,但是对等体永远不会‘同步’起来,因为它不能连接到订单者(因为他们不再存在于该域下)
peer channel fetch 0 ...
peer channel join ...
...
in logs
Could not connect to any of the endpoints: [{orderer-3.orderers.svc.cluster.local:7050 [...]} {orderer-1.orderers.svc.cluster.local:7050 [...]} {orderer-2.orderers.svc.cluster.local:7050 [...]}]发布于 2020-03-18 22:43:51
尝试使用块0或oldest。由于DNS名称已更改,因此您必须使用一些技巧。
技巧1:覆盖 /etc/hosts.中的名称解析
在您的对等体中(在docker容器本身内部),编辑/etc/hosts。
首先,获取新的域名IP:
# apt update
# apt install dnsutils -y
host new.svc.cluster.local记下IP,假设是X.Y.W.Z。
现在,编辑对端容器内部的/etc/hosts,并将新IP关联到旧域名:
X.Y.W.Z old.svc.cluster.local对每个已更改的域执行此操作。现在你应该可以加入了。即使之前的对等节点,现在它也能够同步。每当您的对等容器被重新定位时,/etc/hosts更改都会丢失,但是同步后它并不介意
另一种技巧是使用iptables,但只有当您的旧域仍然解析为IP时,它才有用。
https://stackoverflow.com/questions/60729410
复制相似问题