ZYCORD docs
Français
ZycordDocsTestnet public

Testnet public

Le testnet public applique les règles de consensus du mainnet sous son propre identifiant de chaîne ; ce qu'il mesure est donc le comportement du mainnet et non le sien. Ses pièces ne valent rien, et c'est voulu.

Ce que c'est#

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

Exécutez cette commande avant de faire confiance à cette page. Un build qui affiche un identifiant de genèse différent est un build sur une autre chaîne, et il ne se connectera pas à celle-ci — la poignée de main est refusée avant qu'un bloc ne soit évalué. allocations 0 est l'affirmation sur le premine, vérifiable plutôt que promise.

La genèse a eu lieu le 2026-09-15T00:00:00Z (unix 1789430400). Vous pouvez suivre la chaîne sur testnet.zycord.com.

Il diffère du mainnet par huit valeurs et nulle part ailleurs#

name, chain_id, genesis_target, max_target, genesis_time, randomx_key_interval, h1_bond et h1_vm. Les deux derniers sont les hauteurs d'activation, et elles sont ici plus basses à dessein : le testnet les atteint à son premier et à son troisième jour, si bien que la machine est éprouvée pendant des semaines avant que le mainnet arrive aux mêmes portes. Tout le reste — undo_depth, target_block_seconds, coinbase_maturity, et tout le barème de gas — est celui du mainnet, à dessein. Le barème de gas surtout, parce que c'est lui qui fait du comportement des frais de base mesuré ici celui du mainnet plutôt que celui de ce réseau. Un testnet doté de son propre barème de gas mesure une autre chaîne.

ParamètreTestnet publicMainnet
namezycord-testnetzycord
chain_id21
genesis_time1789430400 — 2026-09-15T00:00:00Z1790812800 — 2026-10-01T00:00:00Z
randomx_key_interval512 blocs2048 blocs
h1_bond2 880 — vers le jour 140 320 — vers le jour 14
h1_vm8 640 — vers le jour 380 640 — vers le jour 28
target_block_seconds30 — identique
coinbase_maturity100 — identique
epoch_length2880 blocs, environ une journée — identique
ttl_max240 blocs, environ deux heures — identique
treasury_share_bps300, soit 3 % — identique
Supprimez votre répertoire de données avant de rejoindre un réseau réinitialisé

Un testnet peut être réinitialisé depuis la genèse. Quand il l'est, ses pièces, son historique et ses listes de pairs disparaissent, le réseau prend un nouvel identifiant de chaîne, et un répertoire de données contenant l'ancienne chaîne est refusé au démarrage plutôt que mélangé en silence. Les deux réseaux se déconnectent aussi à la poignée de main, rien ne se reporte donc discrètement.

Rejoindre le réseau#

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, pas make build. Le pow_engine du testnet est randomx-v1, la même fonction de travail que le mainnet. Un binaire compilé sans le tag refuse de démarrer contre lui plutôt que de retomber sur le moteur de développement, qui accepterait une seule passe BLAKE3 comme preuve de travail pour chaque en-tête rencontré.

Les binaires taggés portent le tag dans leur nom, de sorte que compiler les deux laisse les deux sur le disque et que le nom de fichier dise quel moteur s'y trouve. Ailleurs dans ces pages, les commandes sont écrites zcd et zycordd par concision ; sur ce réseau, ce sont les versions -randomx.

Amorçage#

Le binaire embarque une adresse de seed pour ce réseau, et aucune pour aucun autre. Vous n'avez pas à trouver un pair avant de pouvoir démarrer — la commande ci-dessus rejoint le réseau depuis le seed intégré. Pour fournir le vôtre à la place, ou en plus :

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

Soyez joignable si vous le pouvez#

Zycord ne fait pas de traversée de NAT. Un nœud avec --listen sur un port atteignable est un endroit depuis lequel d'autres peuvent s'amorcer, et la proportion de tels nœuds est la condition falsifiable sur laquelle repose toute la décision de ne pas traverser les NAT — elle est mesurée, non supposée.

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

Si vous ne pouvez pas rediriger de port, laissez --listen de côté et restez en périphérie. C'est une manière parfaitement valable de participer. Vérifiez laquelle est la vôtre avec curl -s localhost:9420/network — listening: true avec inbound: 0 après quelques minutes signifie que le port n'est en fait pas atteignable.

Obtenir des pièces#

Deux voies, et la seconde est celle autour de laquelle ce réseau a été conçu.

Le faucet#

L'explorateur testnet en fait tourner un. Il verse une petite somme à toute adresse que vous lui donnez, afin qu'un envoi, un remboursement et un balayage puissent être répétés sans allouer d'abord deux gibioctets à RandomX. Ce qu'il est et pourquoi il est construit ainsi fait l'objet d'une page à part.

Il existe sur ce réseau et sur aucun autre. Le faucet est une fonction de l'explorateur désactivée par défaut, et l'activer exige de nommer un réseau — un nom comparé à la chaîne que cet explorateur indexe réellement, avec mainnet refusé d'emblée. Le mainnet n'a ni faucet ni premine, et c'est une vérification dans le binaire plutôt qu'une politique que quelqu'un doit se rappeler.

Rien n'est frappé pour lui. Le faucet détient une clé ordinaire, signe un transfert ordinaire à travers la même wallet/session qu'utilise la ligne de commande, et paie une demande par bloc parce qu'un certificat porte l'état qu'il a lu et que deux certificats construits sur une même lecture de sa cellule entreraient en course. Son solde vient du minage, un faucet vide reste donc vide jusqu'à ce que quelqu'un le remplisse.

Auto-minage#

La voie sans file d'attente et sans opérateur, et la même distribution que celle du mainnet :

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

Démarrez-le avant l'ouverture du réseau si vous le souhaitez — c'est la manière prévue de l'utiliser. Un nœud dont l'horloge n'a pas atteint l'horodatage le plus ancien que le bloc suivant peut porter refuse d'en construire un, dit combien de temps dure l'attente, et se met à miner de lui-même quand l'heure arrive. Il n'y a rien à programmer ni à redémarrer, et il reste appairé et synchronisé tout le temps qu'il attend.

L'adresse de paiement doit être une adresse persistante (0x02) — zcd wallet address en imprime une par défaut, et zycordd refuse toute autre chose plutôt que d'avertir. Pourquoi.

coinbase_maturity vaut 100, si bien que pendant à peu près les cent premiers blocs suivant votre première récompense, seuls les mineurs peuvent transiger. Cette montée en charge est celle du mainnet et fait partie de ce que ce réseau répète — et c'est la raison pour laquelle le faucet existe ici et ne peut pas exister là-bas : le faucet raccourcit la montée en charge pour qui veut exercer un portefeuille, sur le seul réseau où la raccourcir ne coûte rien.

Le minage alloue le jeu de données RandomX — environ 2 Gio, plus ~256 Mio par époque de clé conservée. Une machine qui vérifie confortablement ne peut pas nécessairement miner ; les budgets sont sous Minage.

Les pièces du testnet ne valent rien#

Par conception, et définitivement. Le réseau peut être réinitialisé depuis la genèse, ce à quoi sert un testnet. Quiconque propose de les acheter ou de les vendre monte une arnaque qui n'a même pas besoin d'une histoire.

Ce que ce réseau mesure#

Ce n'est pas une démonstration. Quatre choses pour lesquelles il existe afin de produire des chiffres :

  • La pause de changement de clé. À 512 blocs, le renouvellement de clé RandomX survient à peu près toutes les quatre heures au lieu des dix-sept du mainnet ; la reconstruction du jeu de données est ainsi répétée assez souvent pour être mesurée plutôt que théorisée.
  • Le comportement des frais de base sous le barème de gas du mainnet, raison pour laquelle ce barème n'est pas ajusté ici.
  • La proportion de nœuds joignables, qui est la première condition de réouverture de la décision de ne pas faire de traversée de NAT.
  • L'attente avant la genèse, et la question de savoir si un démarrage honnête et anticipé devient réellement un démarrage à l'heure sans rien à redémarrer.

Quand quelque chose semble anormal#

Faire tourner un nœud contient le chemin de diagnostic pour un nœud qui ne se synchronise pas, et la commande de réparation pour un répertoire de données contre lequel il refuse de démarrer. Les constats et les reproductions vont dans le gestionnaire de tickets ; le projet préfère le rapport au bénéfice du doute.