Problemas para ejecutar transacciones en una red PoA privada con tiempo de bloqueo establecido en 0

Estoy tratando de ejecutar una red privada PoA (Prueba de autoridad) con blockTime (clique.period en el bloque gensis) establecido en 0.

Estoy probando un contrato de trufas en esta red, y cuando ejecuto los comandos de trufas (tanto migrar trufas como probar trufas [de un contrato simple]), las operaciones parecen bloquearse con el registro de instancias de geth y la red muestra cero transacciones pendientes Block sealing failed err="waiting for transactions". .

He probado los comandos contra testrpc y la misma red privada con blockTime establecido en 1 y se ejecuta bien cada vez. Si hay algo simple que me estoy perdiendo o si pudiera indicarme la dirección correcta, se lo agradecería mucho.

La red privada ejecuta tres nodos (todos los firmantes)

Respuestas (1)

Yo tuve el mismo problema. Truffle parece incapaz de trabajar con blocktime = 0.

Encontré tres soluciones:

  • conéctese a sus nodos y detenga el proceso de minería ( miner.stop()), inicie la migración de trufas, reinicie el proceso de minería en los nodos ( miner.start()). Esta solución no siempre es un éxito, no la recomiendo.

  • pruebe su contrato inteligente en otra red (lo más similar posible a su red real como rinkeby).

  • cambiar el tiempo de bloqueo de su cadena privada.

Oh, ya veo, eso es muy extraño. Sí, he podido ejecutar las transacciones bien en otras redes o con un tiempo de bloqueo diferente. ¿Ha podido confirmar que este problema es solo con la trufa y no con otro método para crear una transacción?
Encontré un problema de github que se rastrea internamente en Truffle para cualquier persona que tropiece con esto más tarde: github.com/trufflesuite/truffle/issues/624