Camarilla: los nuevos firmantes agregados no aparecerán en otros nodos y la extracción de nuevos bloques se detuvo

He seguido la siguiente respuesta sobre ¿Cómo agregar un nuevo Sellador en Geth 1.6 Prueba de autoridad? .

Actualmente tengo una cuenta de firmante 0x4e4a0750350796164d8defc442a712b7557bf282. Con un firmante la minería funcionaba sin ningún problema. Mi cuenta de firmante propuso una nueva cuenta de firmante usando propose()la función.

clique.propose("0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd", true) 

En mi nodo de firmante y otros nodos, puedo ver la nueva dirección en mi lista de firmantes ( clique.getSigners()),

clique.getSigners()
["0x4e4a0750350796164d8defc442a712b7557bf282", "0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd"]

Que en mi otro nodo que tiene 0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd, desbloqueé esa cuenta y ejecuté el miner.start()comando, pero no tuve ayuda para extraer nuevos bloques en la red. Así que la red deja de minar nuevos bloques :(

Además, la cuenta del nuevo firmante no aparece en mi otro nodo conectado, que tiene la cuenta del nuevo firmante agregado.

Ahora, tampoco puedo eliminar el firmante recién agregado usando:

clique.propose("0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd", false)

Tenga en cuenta que ambos firmantes están desbloqueados y miner.start()activos.

[P] ¿Cómo podría solucionar este problema?

Quiero decir, en lugar de "0x", hay una dirección ethereum original. Y otro nodo esa dirección está desbloqueado y ejecuto el comando miner.start () pero aún se detiene la extracción de nuevos bloques. @ivicaa
¿Es "0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd" también eth.coinbase? No estoy 100% seguro, pero recuerdo tener problemas cuando la cuenta del sellador no es eth.coinbase.
No, no es; déjame hacerlo coinbasey ver si habrá algún cambio. @ivicaa
Ah, me siento como un estúpido, eth.coinbase apuntaba a otra dirección, cuando actualicé con "0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd" se resolvió. @ivicaa
¿Cómo podría eliminar el nuevo firmante agregado? @ivicaa
Ambas cuentas tienen que enviar clique.propose(..., false). Siempre necesita 50% + 1 voto, que es 2 para 2 cuentas.
No funcionó :( antes de eliminar un firmante, nuevamente, cada cuenta debe asignarse a coinbase, ¿otra vez? ¿O hay alguna cuenta predeterminada para la camarilla también? @ivicaa
¡Funcionó! Pero no aparece de inmediato en clique.getSigners() @ivicaa
Supongo que tiene que ser eth.coinbase. Nuevamente, no estoy 100% seguro, pero puede tomar algunos bloques hasta que se procese la solicitud. De lo que estoy 100% seguro es que ambos tienen que votar falso por la dirección que se quiere quitar.
Tienes razón, creo que se necesitan alrededor de 10 cuadras para aparecer en el clique.getSigners()@iviaa
Sí. Lo llamarán instantáneas más o menos, pero no conozco la lógica de diseño detrás de esto.
Si hay 10 cuentas de firmantes en el mismo nodo y todas están desbloqueadas. ¿Cómo puede cada uno puede proponer? Puedo preguntar esto en una pregunta diferente. @ivicaa

Respuestas (1)

eth.coinbasetiene que apuntar a la cuenta de sellado.

Si desea eliminar nuevamente la segunda cuenta, ambas cuentas deberán proponer la eliminación. Siempre necesita 50% + 1 voto, que es 2 para 2 cuentas.