Wiki de ZooBC
Operar un nodo

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:

PuertoUso
8001la red entre pares
8080la API HTTP, que también sirve la [[web-walletbilletera web]]
8545el adaptador RPC al estilo de Ethereum que usa [[metamaskMetaMask]], 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

  1. 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).
  2. El propietario envía un registro que bloquea un stake y lleva una prueba de que las dos claves van juntas (registrar un nodo).
  3. El nodo espera en una cola pública ordenada por el stake multiplicado por el tiempo de espera (cola).
  4. Un temporizador de admisión deja entrar a un nodo cada vez, al ritmo lento que fija el protocolo (ritmo de admisión).
  5. 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