关于以太坊POA私有链的验证者以及共识算法Clique

背景 我的一个作业是部署一个具有三个结点的以太坊私有链,采用的共识算法是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,这两者又会有什么区别呢?

请先 登录 后评论

最佳答案 2023-11-18 16:30

你在提议新节点的时候, 也需要打包出块, 因此也需要 3 个节点签名。

etherbase 应该只指指定接受奖励地址。

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,1276 浏览
  • 摸鱼一号 提出于 2023-11-13 05:13