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âmetro | Testnet pública | Mainnet |
|---|---|---|
name | zycord-testnet | zycord |
chain_id | 2 | 1 |
genesis_time | 1789430400 — 2026-09-15T00:00:00Z | 1790812800 — 2026-10-01T00:00:00Z |
randomx_key_interval | 512 blocos | 2048 blocos |
h1_bond | 2.880 — por volta do dia 1 | 40.320 — por volta do dia 14 |
h1_vm | 8.640 — por volta do dia 3 | 80.640 — por volta do dia 28 |
target_block_seconds | 30 — idêntico | |
coinbase_maturity | 100 — idêntico | |
epoch_length | 2880 blocos, cerca de um dia — idêntico | |
ttl_max | 240 blocos, cerca de duas horas — idêntico | |
treasury_share_bps | 300, ou seja 3% — idêntico | |
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.