背景 我的一个作业是部署一个具有三个结点的以太坊私有链,采用的共识算法是Clique,并且上述的三个结点也是负责签名的验证者。我利用GCE创建了三个虚拟实例,并且利用Geth创建了三个结点,利用Clef管理结点的密码。这三个结点的地址被记录在了genesis.json中,被任命为验证者并且发放了一定数额的代币。
但是我在创建第二个结点的时候犯了一个错误,导致我丢失了第二个结点的密码。因此第二个结点无法完成它的签名工作。
问题 1.在我只有两个签名者的情况下,我是否可以继续完成区块的封装? (这一点我做过了尝试,似乎并不行,结点1和结点3都告知我它们需要等待别的结点。我的理解是,基于Clique算法,需要至少3个结点才能开始封装新的区块)
2.我能否创建一个新的结点,并且通过clique.propose(address, auth)给与新的结点签名的权限,这样就可以让区块链正常的封装新的区块了吗? (我在尝试将新的结点添加到上述具有两个结点的链时,遇到了如下的问题)
WARN [11-12|21:04:40.719] Post-merge network, but no beacon client seen. Please launch one to follow the chain!
3.这是一个不相关的问题,但是您能回答的话我会很感激。在我阅览文档的时候发现了如下的命令
geth --datadir ./ddir --signer ./clef/clef.ipc --mine
如果直接执行的话我会获得如下的报错
ERROR[11-12|21:11:34.675] Cannot start mining without etherbase err="etherbase must be explicitly specified"
Fatal: Failed to start mining: etherbase missing: etherbase must be explicitly specified
这一点让我感到疑惑,因为POA算法并不需要挖矿,那么我应该添加etherbase还是直接删除--mine,这两者又会有什么区别呢?