Geth firma se detiene después de un período de tiempo

Tengo 5 clientes configurados (1 arranque, 1 geth, 3 firmantes que usan Clique): la mayoría de las veces funcionan sin problemas y comienza la minería, a veces la minería simplemente se detiene sin advertencia ni mensaje de problema/error.

En otra ocasión, noté que después de llegar a un consenso sobre un firmante externo adicional, la minería también se detendrá: he tratado de encontrar información sobre el orden en que los firmantes se turnan y qué puede evitar que la minería suceda, mirando el código parece que los firmantes se eligen más por tiempo que al azar, pero ¿puede un firmante que pierde su "turno" por cualquier motivo paralizar o evitar que los otros nodos firmen/validen bloques? Me arriesgaría a adivinar que este no es el caso, pero parece que no puedo resolver el problema y está haciendo que mi red de desarrollo sea inútil. Sé que no estoy dando mucho para continuar, pero no hay errores como los habituales, como "como un bloque mal propagado".

por lo que vale, estoy ejecutando mis firmantes con esto

    ```
    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"
    ```

y este es el resultado de la firma cuando se detiene

    ```
    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
    ```

Respuestas (1)

Cuando tienes 3 firmantes, al menos 2 tienen que estar en línea y tener la eth.coinbasecuenta desbloqueada para poder seguir sellando nuevos bloques. De lo contrario, el proceso de sellado se detiene con "Firmado recientemente, debe esperar a otros".

Si está seguro de que sus selladores están en línea, entonces la única explicación lógica es que el desbloqueo de su cuenta se ha agotado (el valor predeterminado en geth es 5 minutos) y la cuenta del sellador está bloqueada nuevamente. Por favor, compruebe eso. Puedes desbloquear por tiempo ilimitado conpersonal.unlockAccount(eth.coinbase, "pwd", 0)

Consulte también " ¿Cómo desbloquear cuentas mediante programación después de que se haya iniciado el nodo? "