Подписание Geth останавливается через некоторое время

У меня настроено 5 клиентов (1 загрузчик, 1 гет, 3 подписанта, использующие Clique) — большую часть времени они работают без проблем, и майнинг начинается, иногда майнинг просто останавливается без предупреждения или сообщения о проблеме / ошибке.

В другой раз я заметил, что после достижения консенсуса по дополнительному внешнему подписчику майнинг также остановится - я пытался найти информацию о порядке, в котором подписчики меняются, и что может остановить майнинг, глядя на код, кажется, что подписывающие выбираются в большей степени по времени, чем случайным образом, но может ли подписывающий, который по какой-либо причине пропускает свой «ход», повредить или помешать другим узлам подписывать / проверять блоки? Рискну предположить, что это не так, но я не могу решить проблему, и это делает мою сеть разработчиков бесполезной. Я знаю, что не даю многого, чтобы продолжить, но ошибок, как обычно, таких как «плохой распространенный блок», нет, все, что происходит, это остановка подписки, и все находятся на «недавно подписано, ожидая, чтобы подписать снова»

для чего это стоит, я управляю своими подписчиками с этим

    ```
    geth --datadir ~/test-net/data --mine --cache=1024 --syncmode 'full' --bootnodes="enode://enodeurlgoeshere@ipgoeshere:port" --networkid 47592 --rpc --rpcapi admin,db,eth,debug,miner,net,txpool,personal,web3 --rpcport "8545" --rpcaddr "0.0.0.0" --rpccorsdomain "*" --unlock 914be90b2a0dd6a5b0789c2cee5836dd1f1c030 --password <(echo "password") console --nat "extip:pubIPgoeshere"
    ```

и это результат подписания, когда он останавливается

    ```
    INFO [03-28|18:15:34] Commit new mining work                   number=21271 txs=0 uncles=2 elapsed=315.821µs
    INFO [03-28|18:15:34] Successfully sealed new block            number=21271 hash=0e4d19…b0854b
    INFO [03-28|18:15:34] 🔨 mined potential block                  number=21271 hash=0e4d19…b0854b
    INFO [03-28|18:15:34] Commit new mining work                   number=21272 txs=0 uncles=2 elapsed=434.638µs
    INFO [03-28|18:15:34] Signed recently, must wait for others 
    INFO [03-28|18:23:07] Regenerated local transaction journal    transactions=0 accounts=0
    INFO [03-28|19:23:07] Regenerated local transaction journal    transactions=0 accounts=0
    INFO [03-28|20:23:07] Regenerated local transaction journal    transactions=0 accounts=0
    INFO [03-28|21:23:07] Regenerated local transaction journal    transactions=0 accounts=0
    ```

Ответы (1)

Когда у вас есть 3 подписывающих лица, по крайней мере 2 из них должны быть в сети и иметь eth.coinbaseразблокированную учетную запись, чтобы иметь возможность продолжать запечатывать новые блоки. В противном случае процесс запечатывания останавливается с сообщением «Подписано недавно, необходимо дождаться других».

Если вы уверены, что ваши силеры в сети, то единственное логическое объяснение состоит в том, что время разблокировки вашей учетной записи истекло (по умолчанию в geth — 5 минут), и учетная запись силера снова заблокирована. Пожалуйста, проверьте это. Вы можете разблокировать на неограниченное время с помощьюpersonal.unlockAccount(eth.coinbase, "pwd", 0)

См. также " Как программно разблокировать аккаунты после запуска ноды? "