Código fuente
Un solo repositorio, con licencia MIT: el nodo, el monedero, la línea de comandos, los conjuntos de parámetros y los vectores de referencia que definen el protocolo. Todo aquello sobre lo que funciona la red está dentro.
Nada en este sitio vale más que lo que puedes comprobar sin preguntarle a nadie, y la comprobación empieza aquí. Un autor anónimo no puede ofrecerte una reputación; lo que se ofrece en su lugar es un árbol que puedes leer, compilar y comparar con los binarios que te entregaron.
Clónalo#
git clone https://gitlab.com/zycord-group/zycord-node.git
cd zycord-node
O léelo primero en el navegador: gitlab.com/zycord-group/zycord-node.
Las ubicaciones canónicas de este proyecto — esta incluida — están fijadas en la atestación firmada del hilo del anuncio, bajo la clave del proyecto E724 39CE DD85 11F9 D607 550B 87FD 60D5 EB4A 0B29. Un árbol alojado en cualquier otro sitio es una copia: puede ser honesta, puede estar obsoleta, puede ser hostil, y nada en esta página puede decirte cuál. Comprueba la lista firmada antes de fiarte de un espejo, y compila desde una etiqueta cuyo hash hayas verificado tú.
Qué contiene#
| Directorio | Qué contiene |
|---|---|
spec/ | El protocolo. Los conjuntos de parámetros, los vectores de referencia y las imágenes de biblioteca predesplegadas. Una implementación que pasa los vectores es un par, no un fork. |
core/ | Código crítico para el consenso, solo biblioteca estándar: el modelo de celdas, la validez sin estado, el fold, la EVM adaptada a certificados y RandomX tras una etiqueta de compilación. |
node/ | El nodo alrededor de ese núcleo — almacenamiento, mempool, minero, capa de pares, sincronización, RPC de solo lectura, Stratum. |
wallet/ | Gestión de claves y constructores de certificados. Una referencia, no consenso. |
cmd/ | zycordd, el nodo; zcd, la línea de comandos y el monedero. |
sim/ | El simulador y los arneses de fuzzing, un segundo fold deliberadamente ingenuo sometido a fuzzing contra el real, y la prueba de resistencia caótica que ejecuta nodos reales sobre sockets reales. |
contracts/ | Los contratos de referencia, en Solidity. |
packaging/ | El script de instalación y los paquetes de cada plataforma, revisables antes de ejecutarlos. |
docs/ | La arquitectura, la referencia del protocolo, la guía de operación y el whitepaper. |
El protocolo son los vectores#
El código Go de este árbol es una implementación de referencia, y deliberadamente no la
definición. Lo que define la red son
los conjuntos de parámetros y los
vectores de referencia: cada regla de fold, de bloque y de validez como un caso
(estado previo, bloque) → (estado posterior, comisiones), positivo y negativo. Escribe tu
propio nodo en el lenguaje que quieras — si pasa el corpus es un par, y esta implementación no tiene precedencia sobre él.
Las alturas de activación viven en el mismo sitio. h1_bond y h1_vm son
parámetros congelados en la génesis y no una publicación: la máquina está compilada en cada binario y se
rechaza por debajo de su altura, así que una era llega porque la cadena alcanzó un número y nunca porque
se pidiera a los operadores que actualizaran.
Compílalo#
make build # no cgo, reproducible, development engine only
make build-randomx # the network binary: mainnet and the public testnet
Solo la compilación con RandomX puede unirse a una red. La compilación por defecto es
reproducible byte a byte y ejecuta una devnet local; las dos escriben archivos distintos a propósito, de modo que un binario que
no puede hablar con mainnet nunca se confunde con uno que sí. La cadena de herramientas de Go está fijada en
go1.26.2 y la compilación se niega a ejecutarse bajo cualquier otra, porque el mismo código fuente
compilado por dos versiones de Go son dos binarios distintos.
Recompilar una etiqueta publicada y comparar hashes es la comprobación que sustituye la confianza en el publicador — Verificar una descarga tiene el procedimiento completo, y Instalación cubre compilarlo para el uso corriente.
Incidencias y seguridad#
Los fallos, las preguntas y los parches van al gestor de incidencias, y CONTRIBUTING.md dice qué necesita un cambio antes de poder fusionarse.
Una vulnerabilidad va al proceso de divulgación de SECURITY.md y no al gestor de incidencias. El proyecto prefiere el informe al beneficio de la duda, y un defecto encontrado antes de mainnet no le cuesta nada a nadie.
Licencia#
MIT, para todo el árbol. Bifúrcalo, distribúyelo, véndelo, renómbralo — la licencia pide un
aviso de copyright y nada más. Lo único que no puede darte es la red: eso lo
deciden los nodos que aceptan tus bloques, y los aceptan según las reglas de
spec/.