ZYCORD docs
Português
ZycordDocumentaçãoTestnet pública

Testnet pública

A testnet pública carrega as regras de consenso da mainnet sob seu próprio chain id, de modo que o que ela mede é o comportamento da mainnet e não o dela mesma. Suas moedas não valem nada, e é essa a intenção.

O que ela é#

zcd genesis --testnet
network        zycord-testnet
chain id       2
params hash    0x0b732489dee8fd2bcb5fa37b513b2ea10edc616bd664ba5b55c69952f63e2c1b
genesis id     0xc1b21b079b3dfe781c40a187326bb8dbbcf0fb97164d6fdf7a7d6a536c74705b
state root     0x6974f84b8088039ab721fd6be6ac72b73845e5dc93f0b5625b4e9c564ccf73e3
genesis time   1789430400
cells written  6
allocations    0

Execute esse comando antes de confiar nesta página. Um build que imprime um id de gênese diferente é um build em outra cadeia, e não vai se conectar a esta — o handshake recusa antes que um bloco seja avaliado. allocations 0 é a alegação sobre premine, verificável em vez de prometida.

A gênese foi em 2026-09-15T00:00:00Z (unix 1789430400). Você pode acompanhar a cadeia em testnet.zycord.com.

Ela difere da mainnet em oito valores e em mais nada#

name, chain_id, genesis_target, max_target, genesis_time, randomx_key_interval, h1_bond e h1_vm. Os dois últimos são as alturas de ativação, e aqui são mais baixas de propósito: a testnet chega a elas no primeiro e no terceiro dia, então a máquina é exercitada por semanas antes de a mainnet alcançar as mesmas comportas. Todo o resto — undo_depth, target_block_seconds, coinbase_maturity, e toda a tabela de gas — é o da mainnet, de propósito. A tabela de gas especialmente, porque é ela que faz o comportamento da taxa base medido aqui ser o da mainnet e não o desta rede. Uma testnet com sua própria tabela de gas mede uma cadeia diferente.

ParâmetroTestnet públicaMainnet
namezycord-testnetzycord
chain_id21
genesis_time1789430400 — 2026-09-15T00:00:00Z1790812800 — 2026-10-01T00:00:00Z
randomx_key_interval512 blocos2048 blocos
h1_bond2.880 — por volta do dia 140.320 — por volta do dia 14
h1_vm8.640 — por volta do dia 380.640 — por volta do dia 28
target_block_seconds30 — idêntico
coinbase_maturity100 — idêntico
epoch_length2880 blocos, cerca de um dia — idêntico
ttl_max240 blocos, cerca de duas horas — idêntico
treasury_share_bps300, ou seja 3% — idêntico
Apague seu diretório de dados antes de entrar numa rede reiniciada

Uma testnet pode ser reiniciada a partir da gênese. Quando isso ocorre, suas moedas, seu histórico e suas listas de pares desaparecem, a rede recebe um chain id novo, e um diretório de dados contendo a cadeia antiga é recusado na inicialização em vez de silenciosamente misturado. As duas redes também se desconectam no handshake, então nada se transfere sem alarde.

Participando#

make build-randomx        # the testnet is randomx-v1; see below
                          #   -> bin/zcd-randomx, bin/zycordd-randomx

./bin/zycordd-randomx --testnet --dir ./testnet

make build-randomx, não make build. O pow_engine da testnet é randomx-v1, a mesma função de trabalho da mainnet. Um binário construído sem a tag se recusa a iniciar contra ela em vez de recorrer ao motor de desenvolvimento, que aceitaria uma única passagem BLAKE3 como proof of work para todo cabeçalho que já visse.

Os binários com a tag carregam a tag em seus nomes, de modo que construir ambos deixa os dois em disco e o nome do arquivo diz qual motor está dentro dele. Em outras partes destas páginas os comandos são escritos zcd e zycordd por brevidade; nesta rede esses são o par -randomx.

Bootstrap#

O binário traz um endereço de seed para esta rede, e nada para qualquer outra. Você não precisa encontrar um par antes de poder começar — o comando acima entra pelo seed embutido. Para fornecer o seu próprio em vez disso, ou além dele:

zycordd --testnet --dir ./testnet --peers-file peers.txt
zycordd --testnet --dir ./testnet --peers host:9421,host2:9421
zycordd --testnet --dir ./testnet --no-seeds --peers-file peers.txt

Seja discável se puder#

O Zycord não faz travessia de NAT. Um nó com --listen em uma porta alcançável é um lugar de onde outros podem fazer bootstrap, e a proporção de nós assim é a condição falseável sobre a qual repousa toda a decisão de não fazer travessia — ela é medida, não presumida.

zycordd --testnet --dir ./testnet \
  --listen 0.0.0.0:9421 --advertise <public-address>:9421

Se você não conseguir encaminhar uma porta, deixe o --listen desligado e seja periferia. Essa é uma forma perfeitamente boa de participar. Verifique qual é o seu caso com curl -s localhost:9420/network — listening: true com inbound: 0 depois de alguns minutos significa que a porta não está de fato alcançável.

Conseguindo moedas#

Dois caminhos, e o segundo é aquele em torno do qual esta rede foi projetada.

O faucet#

O explorador da testnet mantém um. Ele paga uma quantia pequena para qualquer endereço que você lhe der, para que um envio, um reembolso e uma varredura possam ser ensaiados sem alocar dois gibibytes ao RandomX primeiro. O que ele é e por que é construído dessa forma é uma página à parte.

Ele existe nesta rede e em nenhuma outra. O faucet é um recurso do explorador que fica desligado por padrão, e habilitá-lo exige nomear uma rede — um nome conferido contra a cadeia que aquele explorador está de fato indexando, com mainnet recusado de saída. A mainnet não tem faucet nem premine, e isso é uma verificação no binário em vez de uma política que alguém precise lembrar.

Nada é emitido para ele. O faucet guarda uma chave comum, assina uma transferência comum através da mesma wallet/session que a linha de comando usa, e paga uma solicitação por bloco porque um certificado carrega o estado que leu e dois construídos sobre uma mesma leitura de sua célula disputariam. Seu saldo vem da mineração, então um faucet vazio continua vazio até que alguém o reabasteça.

Automineração#

O caminho sem fila e sem operador, e a mesma distribuição que a mainnet recebe:

zcd wallet new --out miner.json
zycordd --testnet --dir ./testnet \
  --mine --payout $(zcd wallet address --key miner.json)

Inicie antes de a rede abrir, se quiser — essa é a forma pretendida de usá-lo. Um nó cujo relógio não alcançou o timestamp mais antigo que o próximo bloco pode carregar se recusa a construir um, diz quanto tempo falta, e começa a minerar sozinho quando a hora chega. Não há nada a agendar nem nada a reiniciar, e ele mantém pares e sincroniza todo o tempo em que espera.

O pagamento precisa ser para um endereço persistente (0x02) — o zcd wallet address imprime um por padrão, e o zycordd recusa qualquer outro em vez de avisar. Por quê.

O coinbase_maturity é 100, então por aproximadamente os primeiros cem blocos após sua primeira recompensa apenas mineradores podem transacionar. Essa rampa é a da mainnet e faz parte do que esta rede está ensaiando — e é a razão pela qual o faucet existe aqui e não pode existir lá: o faucet encurta a rampa para quem quer exercitar uma carteira, na única rede onde encurtá-la não custa nada.

Minerar aloca o dataset do RandomX — cerca de 2 GiB, mais ~256 MiB por época de chave mantida. Uma máquina que consegue verificar confortavelmente não consegue necessariamente minerar; os orçamentos estão em Mineração.

As moedas da testnet não valem nada#

Por design, e permanentemente. A rede pode ser reiniciada a partir da gênese, que é para isso que serve uma testnet. Qualquer um que ofereça comprar ou vender essas moedas está aplicando um golpe que nem precisa de uma história.

O que esta rede está medindo#

Não é uma demonstração. Quatro coisas para as quais ela existe para produzir números:

  • A pausa de troca de chave. Com 512 blocos, a retroca do RandomX acontece a cada quatro horas aproximadamente, em vez das dezessete da mainnet, de modo que a reconstrução do dataset é ensaiada com frequência suficiente para ser medida em vez de teorizada.
  • O comportamento da taxa base sob a tabela de gas da mainnet, que é a razão de a tabela não ser ajustada aqui.
  • A proporção de nós acessíveis, que é a primeira condição para reabrir a decisão de não fazer travessia de NAT.
  • A espera pré-gênese, e se um início antecipado honesto de fato se torna um início pontual sem nada a reiniciar.

Quando algo parece errado#

Rodando um nó tem o caminho de diagnóstico para um nó que não sincroniza, e o comando de reparo para um diretório de dados contra o qual ele se recusa a iniciar. Achados e reproduções pertencem ao rastreador de issues; o projeto prefere ter o relato a ter o benefício da dúvida.