ZYCORD docs
Português
Zycord Código-fonte

Código-fonte

Um repositório, sob licença MIT: o nó, a carteira, a linha de comando, os conjuntos de parâmetros e os vetores de referência que definem o protocolo. Tudo aquilo sobre o que a rede roda está nele.

Nada neste site vale mais do que aquilo que você pode conferir sem pedir a ninguém, e é aqui que a conferência começa. Um autor anônimo não tem reputação a oferecer; o que se oferece no lugar é uma árvore que você pode ler, compilar e comparar com os binários que lhe entregaram.

Clone#

git clone https://gitlab.com/zycord-group/zycord-node.git
cd zycord-node

Ou leia primeiro no navegador: gitlab.com/zycord-group/zycord-node.

Este é o único repositório

As localizações canônicas deste projeto — esta inclusive — estão fixadas na atestação assinada da thread do anúncio, sob a chave do projeto E724 39CE DD85 11F9 D607 550B 87FD 60D5 EB4A 0B29. Uma árvore hospedada em qualquer outro lugar é uma cópia: pode ser honesta, pode estar desatualizada, pode ser hostil, e nada nesta página consegue dizer qual. Confira a lista assinada antes de confiar num espelho, e compile a partir de uma tag cujo hash você mesmo verificou.

O que tem dentro#

DiretórioO que contém
spec/O protocolo. Os conjuntos de parâmetros, os vetores de referência e as imagens de biblioteca pré-implantadas. Uma implementação que passa pelos vetores é um par, não um fork.
core/Código crítico para o consenso, só biblioteca padrão: o modelo de células, a validade sem estado, o fold, a EVM adaptada a certificados e o RandomX atrás de uma build tag.
node/O nó em volta desse núcleo — armazenamento, mempool, minerador, camada de pares, sincronização, RPC somente leitura, Stratum.
wallet/Gerenciamento de chaves e construtores de certificados. Uma referência, não consenso.
cmd/zycordd, o nó; zcd, a linha de comando e a carteira.
sim/O simulador e os arcabouços de fuzzing, um segundo fold deliberadamente ingênuo submetido a fuzzing contra o verdadeiro, e o soak caótico que roda nós reais sobre sockets reais.
contracts/Os contratos de referência, em Solidity.
packaging/O script de instalação e os pacotes de cada plataforma, revisáveis antes de você rodá-los.
docs/A arquitetura, a referência do protocolo, o guia de operação e o whitepaper.

O protocolo são os vetores#

O código Go desta árvore é uma implementação de referência, e deliberadamente não a definição. O que define a rede são os conjuntos de parâmetros e os vetores de referência: cada regra de fold, de bloco e de validade como um caso (estado anterior, bloco) → (estado posterior, taxas), positivo e negativo. Escreva o seu próprio nó na linguagem que quiser — se ele passar pelo corpus, é um par, e esta implementação não tem precedência sobre ele.

As alturas de ativação moram no mesmo lugar. h1_bond e h1_vm são parâmetros congelados na gênese, e não um lançamento: a máquina está compilada em cada binário e é recusada abaixo da sua altura, então uma era chega porque a cadeia alcançou um número e nunca porque pediram aos operadores que atualizassem.

Compile#

make build           # no cgo, reproducible, development engine only
make build-randomx   # the network binary: mainnet and the public testnet

Só a build com RandomX consegue entrar numa rede. A build padrão é reproduzível byte a byte e roda uma devnet local; as duas escrevem arquivos diferentes de propósito, de modo que um binário que não consegue falar com a mainnet nunca é confundido com um que consegue. O toolchain do Go está fixado em go1.26.2 e a build se recusa a rodar sob qualquer outro, porque o mesmo código-fonte compilado por dois releases do Go são dois binários diferentes.

Reconstruir uma tag publicada e comparar hashes é a verificação que substitui confiar no publicador — Verificando um download tem o procedimento completo, e Instalação cobre compilá-lo para uso comum.

Issues e segurança#

Bugs, perguntas e patches vão para o rastreador de issues, e CONTRIBUTING.md diz o que uma mudança precisa ter antes de poder ser mesclada.

Uma vulnerabilidade vai para o processo de divulgação em SECURITY.md, e não para o rastreador. O projeto prefere ter o relato a ter o benefício da dúvida, e um defeito encontrado antes da mainnet não custa nada a ninguém.

Licença#

MIT, para a árvore inteira. Faça fork, distribua, venda, renomeie — a licença pede um aviso de copyright e nada mais. A única coisa que ela não pode lhe entregar é a rede: isso é decidido pelos nós que aceitam os seus blocos, e eles os aceitam segundo as regras em spec/.