Testnet pública
La testnet pública lleva las reglas de consenso de mainnet bajo su propio chain id, de modo que lo que mide es el comportamiento de mainnet y no el suyo propio. Sus monedas no valen nada, y así debe ser.
Qué es#
zcd genesis --testnet
network zycord-testnet
chain id 2
params hash 0xc4a670f04575ac3aa6e670888e1a42ec877779fda8e5519e2637f4df93815b57
launch commit 0x83aeb709b14b43a0296666f006d99378049064f3e30d8191e074e09d485e2ff7
genesis id 0x81094507a4a083d01e24af21bddbf4d7eb496472a69c4b5dfb0d7a27c6b03b55
state root 0x4f45e604e1fd7ccf066e20e5fd41105373a0ba0d28aea8fc825b8795e880384f
genesis time 1791158400
cells written 6
allocations 0
Ejecuta ese comando antes de fiarte de esta página. Una compilación que imprime otro
id de génesis es una compilación en otra cadena, y no se conectará a esta — el
saludo inicial se rechaza antes de evaluar ningún bloque. allocations 0 es la afirmación sobre el premine,
comprobable en lugar de prometida.
El génesis fue el 2026-10-05T00:00:00Z (unix 1791158400), dos días antes que el
de mainnet: la testnet ensayó el lanzamiento con el mismo binario y el mismo procedimiento. Ahora es
donde la Era 1 se ejecuta primero — la cEVM, los secuenciadores, los intents y los fills, el
directorio y el camino forzado están activos aquí desde la altura 2.880, su primer día, mientras que
mainnet llega a la misma puerta en la altura 80.640. Puedes observar la cadena en
testnet.zycord.com.
Se diferencia de mainnet en diez valores y en nada más#
name, chain_id, genesis_target, max_target, genesis_time, randomx_key_interval, h1_bond, h1_vm, coinbase_maturity y launch_commit. Las alturas de activación son aquí más bajas a propósito: la testnet las alcanzó en su primer día, así que la máquina se ejercita durante semanas antes de que mainnet llegue a la misma puerta. h1_bond se mueve con h1_vm y no abre nada en ninguna de las dos redes: las fianzas no forman parte de la Era 1. El compromiso de lanzamiento es el propio de la testnet, de modo que su bloque 1 ensaya el lanzamiento de mainnet sin revelar el de mainnet. Todo lo demás — undo_depth, target_block_seconds, el reparto del subsidio y toda la tabla de gas — es el de mainnet a propósito. La tabla de gas especialmente, porque es lo que hace que el comportamiento de la comisión base medido aquí sea el de mainnet y no el de esta red. Una testnet con su propia tabla de gas mide otra cadena.
| Parámetro | Testnet pública | Mainnet |
|---|---|---|
name | zycord-testnet | zycord |
chain_id | 2 | 1 |
genesis_time | 1791158400 — 2026-10-05T00:00:00Z | 1791331200 — 2026-10-07T00:00:00Z |
randomx_key_interval | 512 bloques | 2048 bloques |
h1_bond, h1_vm | 2.880 — hacia el día 1 | 80.640 — hacia el día 28 |
coinbase_maturity | 100 bloques | 240 bloques |
target_block_seconds | 30 — idéntico | |
epoch_length | 2880 bloques, cerca de un día — idéntico | |
ttl_max | 240 bloques, cerca de dos horas — idéntico | |
emission_ramp_blocks | 86.400, la rampa de recompensa de 30 días — idéntico | |
founder_share, treasury_share_bps | 94% al minero, 3% al fundador hasta 3.153.600, 3% a la tesorería — idéntico | |
Una testnet puede reiniciarse desde la génesis. Cuando ocurre, sus monedas, su historia y sus listas de pares desaparecen, la red toma un chain id nuevo, y un directorio de datos que contenga la cadena antigua se rechaza al arrancar en lugar de mezclarse en silencio. Las dos redes además se desconectan en el saludo, así que nada pasa de una a otra sin ruido.
Unirse#
make build-randomx # the testnet is randomx-v2; see below
# -> bin/zcd-randomx, bin/zycordd-randomx
./bin/zycordd-randomx --testnet --dir ./testnet
make build-randomx, no make build. El
pow_engine de la testnet es randomx-v2, la misma función de trabajo que mainnet. Un binario
compilado sin la etiqueta se niega a arrancar contra ella en lugar de recurrir al motor de
desarrollo, que aceptaría una sola pasada de BLAKE3 como proof of work para cada cabecera que viera.
Los binarios etiquetados llevan la etiqueta en su nombre, de modo que compilar ambos deja
los dos en disco y el nombre del archivo dice qué motor lleva dentro. En otras partes de estas páginas los
comandos se escriben zcd y zycordd por brevedad; en esta red esos
son el par -randomx.
Arranque inicial#
El binario lleva las semillas de la testnet: de seed1.zycord.com a
seed4.zycord.com en el puerto 19421. Las semillas de mainnet son los mismos hosts en el
9421, y las dos redes se rechazan mutuamente en el saludo inicial, así que nada se mezcla. Un
binario antiguo que indique testnet.zycord.com como semilla debe sustituirse en lugar de
sortear el problema. Para aportar otros pares en su lugar, o además:
zycordd --testnet --dir ./testnet --peers-file peers.txt
zycordd --testnet --dir ./testnet --peers host:19421,otherhost:19421
zycordd --testnet --dir ./testnet --no-seeds --peers-file peers.txt
Sé accesible si puedes#
Zycord no hace travesía de NAT. Un nodo con --listen en un puerto alcanzable es
un sitio desde el que otros pueden arrancar, y la proporción de nodos así es la
condición falsable sobre la que descansa toda la decisión de no hacer travesía — se mide, no se supone.
zycordd --testnet --dir ./testnet \
--listen 0.0.0.0:9421 --advertise <public-address>:9421
Si no puedes abrir un puerto, deja --listen desactivado y sé periferia. Es una
forma perfectamente válida de participar. Comprueba cuál eres con curl -s
localhost:9420/network — listening: true con inbound: 0
tras unos minutos significa que el puerto no es realmente alcanzable.
Conseguir monedas#
Dos vías, y la segunda es aquella en torno a la que se diseñó esta red.
El faucet#
El explorador de testnet tiene uno. Paga una cantidad pequeña a cualquier dirección que le des, de modo que un envío, un reembolso y un barrido puedan ensayarse sin reservar antes dos gibibytes para RandomX. Qué es y por qué está construido así tiene página propia.
Existe en esta red y en ninguna otra. El faucet es una función del
explorador que está desactivada por defecto, y activarla exige nombrar una red — un nombre contrastado
con la cadena que ese explorador está indexando de verdad, con mainnet rechazado de plano.
Mainnet no tiene faucet ni premine, y eso es una comprobación en el binario y no una política
que alguien tenga que recordar.
No se acuña nada para él. El faucet guarda una clave corriente, firma una transferencia corriente a través de
la misma wallet/session que usa la línea de comandos, y paga una reclamación por bloque porque un
certificado lleva el estado que leyó y dos construidos sobre una misma lectura de su celda competirían.
Su saldo viene de la minería, así que un faucet vacío sigue vacío hasta que alguien lo rellena.
Minar uno mismo#
La vía sin cola y sin operador, y la misma distribución que tiene mainnet:
zcd wallet new --out miner.json
zycordd --testnet --dir ./testnet \
--mine --payout $(zcd wallet address --key miner.json | awk '/^persistent/ {print $3}')
La dirección de pago debe ser persistente (0x02) — la línea
persistent de zcd wallet address, que imprime también la siguiente dirección
de un solo uso — y zycordd rechaza cualquier otra en lugar de avisar. Por qué.
coinbase_maturity es 100, así que durante aproximadamente los primeros cien bloques tras tu primera
recompensa solo los mineros pueden transaccionar. Esa rampa es la de mainnet y es parte de lo que esta red está
ensayando — y es la razón por la que el faucet existe aquí y no puede existir allí: el faucet
acorta la rampa para quien quiera ejercitar un monedero, en la única red donde acortarla
no cuesta nada.
Minar reserva el conjunto de datos de RandomX — unos 2 GiB, más ~256 MiB por época de clave retenida. Una máquina que puede verificar con holgura no necesariamente puede minar; los presupuestos están en Minería.
Las monedas de testnet no valen nada#
Por diseño, y de forma permanente. La red puede reiniciarse desde la génesis, que es para lo que sirve una testnet. Cualquiera que ofrezca comprarlas o venderlas está montando una estafa que ni siquiera necesita una historia.
Qué está midiendo esta red#
No es una demostración. Cuatro cosas para las que existe, para producir números:
- La pausa por cambio de clave. Con 512 bloques el recambio de clave de RandomX cae más o menos cada cuatro horas en lugar de las diecisiete de mainnet, así que la reconstrucción del conjunto de datos se ensaya lo bastante a menudo como para medirla en vez de teorizar sobre ella.
- El comportamiento de la comisión base bajo la tabla de gas de mainnet, que es la razón por la que aquí no se ajusta la tabla.
- La proporción de nodos accesibles, que es la primera condición para reabrir la decisión de no atravesar NAT.
- La Era 1 bajo carga real: secuenciadores, fills y el camino forzado en una red en vivo, semanas antes de que mainnet llegue a su puerta.
Cuando algo parece ir mal#
Ejecutar un nodo tiene la vía de diagnóstico para un nodo que no sincroniza, y el comando de reparación para un directorio de datos contra el que se niega a arrancar. Los hallazgos y las reproducciones van al gestor de incidencias; el proyecto prefiere el informe al beneficio de la duda.