Operar un nodo
Un nodo de ZooBC es el software de ZooBC ejecutándose en un ordenador. Guarda una copia de la cadena, comprueba cada bloque y cada transacción con las mismas reglas que todos los demás nodos y sirve una API HTTP pública. Cualquiera puede ejecutar uno, y un nodo que solo sigue la cadena ya permite a su dueño comprobarlo todo sin confiar en nadie. Producir bloques es un paso aparte: un nodo solo lo hace cuando tiene una plaza en el registro de nodos.
Qué ejecuta un nodo
Un nodo es un solo proceso, que se arranca con zoobc-node --start node.conf, con una sola base de datos SQLite. Escucha en tres puertos:
| Puerto | Uso | |
|---|---|---|
| 8001 | la red entre pares | |
| 8080 | la API HTTP, que también sirve la [[web-wallet | billetera web]] |
| 8545 | el adaptador RPC al estilo de Ethereum que usa [[metamask | MetaMask]], por defecto solo en la propia máquina del nodo (loopback) |
Un nodo nunca construye un bloque génesis. El bloque 0 ya debe estar en su base de datos, y el hash de ese bloque es la identidad de la cadena (véase bloque génesis). Si un nodo se encuentra atrapado en una rama de la que no puede salir («atascado»), descarta su cadena y se reconstruye a partir de las instantáneas ancladas en la cadena spine, porque el ajuste auto_resync está activado por defecto. Una versión también puede incluir un pin de versión, un bloque de la spine conocido con el que debe coincidir la spine del propio nodo. Las versiones nuevas llegan a través de un actualizador que se ejecuta junto al nodo y que controla el propietario (versiones y actualizaciones).
De encendido a producir bloques
- El operador crea dos claves: una clave de nodo para la máquina y una clave de propietario en una billetera (claves de un nodo).
- El propietario envía un registro que bloquea un stake y lleva una prueba de que las dos claves van juntas (registrar un nodo).
- El nodo espera en una cola pública ordenada por el stake multiplicado por el tiempo de espera (cola).
- Un temporizador de admisión deja entrar a un nodo cada vez, al ritmo lento que fija el protocolo (ritmo de admisión).
- Una vez admitido, el nodo es sorteado para producir bloques (sorteo), retransmite bloques y transacciones a sus pares asignados (recibos y la topología de la red) y, tras una breve maduración, participa en las recompensas (madurez e ingresos).
Cada cadena empieza con 11 plazas génesis en manos de la ZooBC Foundation. Todos los demás entran a través de la cola, y nadie elige quién entra. Ninguna plaza se concede a mano, y ninguna puede ganarse con potencia de cálculo como en Proof of Work.
Seguir en el registro
Una plaza se conserva haciendo el trabajo. Un nodo registrado que se salta un turno para el que fue sorteado, por cualquier motivo, queda ausente hasta que produce su siguiente bloque propio. Mientras está ausente no gana nada, y su puntuación de participación baja 5 puntos (sobre 100) por unidad de puntuación, que son 12 horas en una red de menos de 2880 nodos. Los recibos que firma y los pings no ponen fin a ese estado; solo lo hace su siguiente bloque propio.
Al cuarto turno perdido seguido el nodo queda además suspendido: sale del sorteo de productores pero conserva su plaza. Cuando vuelve a estar en línea, su software envía un ping, una pequeña transacción sin comisión que solo puede enviar un nodo suspendido, que lo devuelve al sorteo a prueba. Si la puntuación llega a cero, el nodo es expulsado. Los detalles están en turnos perdidos, suspensión y expulsión; todas las formas en que puede terminar una plaza, en salir del registro, y todas las cifras, en parámetros de los nodos en mainnet.
Véase también
Artículos de este tema
- El registro de nodos y sus plazas
La lista en la cadena de los nodos autorizados a producir bloques: qué registra cada plaza, por qué deciden las plazas y no las monedas quién produce los bloques, y cómo cualquiera puede leerla. - El ritmo de admisión
Por qué ZooBC admite a los recién llegados en su registro de uno en uno y despacio, la fórmula que fija el retraso entre admisiones y el calendario que da en mainnet. - La cola
Cómo esperan una plaza los recién llegados registrados: el orden por el stake multiplicado por el tiempo de espera, la comprobación diaria de asistencia y lo que cuesta salir de la cola. - Las claves de un nodo
La clave de nodo que firma el trabajo de un nodo y la clave de propietario que controla su plaza y su stake: dónde vive cada una, qué firma cada una y cómo quedan vinculadas. - Madurez e ingresos
Qué gana un nodo registrado, cómo la lotería coinbase reparte las recompensas de cada bloque según la puntuación de participación y por qué un nodo nuevo debe madurar antes de ganar nada. - Parámetros de los nodos en mainnet
Tabla de referencia de los valores de mainnet que rigen el registro de nodos, la cola, la admisión, la actividad, los ingresos, la salida, las actualizaciones y el proceso del nodo, uno por línea. - Registrar un nodo
Cómo registra un propietario un nodo: la transacción NodeRegistration, la prueba de propiedad que vincula la clave de nodo con el propietario y el stake mínimo que acepta la cola. - Salir del registro
Las formas en que termina una plaza (la retirada por el propietario, la expulsión con la puntuación a cero, una reclamación con la clave de nodo) y cuándo el propietario recupera todo el stake o pierde una décima parte. - Versiones y actualizaciones
Cómo se anuncian en la cadena las nuevas versiones del nodo, cómo las instala de forma segura el actualizador que acompaña a cada nodo y cómo se activa un paquete de nuevas reglas de consenso.