Öffentliches Testnet
Das öffentliche Testnet trägt die Konsensregeln des Mainnets unter einer eigenen Chain-ID, sodass es das Verhalten des Mainnets misst und nicht sein eigenes. Seine Coins sind nichts wert, und das ist so gewollt.
Was sie ist#
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
Führen Sie diesen Befehl aus, bevor Sie dieser Seite vertrauen. Ein Build, der eine andere
Genesis-ID ausgibt, ist ein Build auf einer anderen Chain, und er wird sich nicht mit dieser verbinden — der
Handshake verweigert, bevor ein Block bewertet wird. allocations 0 ist die Premine-Aussage,
überprüfbar statt versprochen.
Die Genesis war 2026-10-05T00:00:00Z (Unix 1791158400), zwei Tage vor der des
Mainnets: das Testnet hat den Start mit derselben Binärdatei und demselben Ablauf geprobt. Jetzt ist es
der Ort, an dem Ära 1 zuerst läuft — die cEVM, Sequencer, Intents und Fills, das
Verzeichnis und der Forced Path sind hier seit Höhe 2.880, seinem ersten Tag, aktiv, während das
Mainnet dasselbe Tor bei Höhe 80.640 erreicht. Die Chain können Sie unter
testnet.zycord.com verfolgen.
Es weicht in zehn Werten vom Mainnet ab und nirgends sonst#
name, chain_id, genesis_target, max_target,
genesis_time, randomx_key_interval, h1_bond,
h1_vm, coinbase_maturity und launch_commit. Die Aktivierungshöhen
liegen hier absichtlich niedriger: das Testnet hat sie an seinem ersten Tag erreicht, sodass die Maschine wochenlang
erprobt wird, bevor das Mainnet am selben Tor ankommt. h1_bond bewegt sich mit
h1_vm und öffnet in keinem der beiden Netzwerke etwas: Bonding ist nicht Teil von Ära 1. Das Start-Commitment ist das eigene des
Testnets, sodass sein Block 1 den Start des Mainnets probt, ohne dessen Commitment offenzulegen. Alles
andere — undo_depth, target_block_seconds, die Aufteilung der Subvention und
der gesamte Gas-Tarif — ist absichtlich der des Mainnets. Gerade der Gas-Tarif,
denn er ist es, der das hier gemessene Base-Fee-Verhalten zu dem des Mainnets macht statt zu dem
dieses Netzwerks. Ein Testnet mit eigenem Gas-Tarif misst eine andere Chain.
| Parameter | Öffentliches Testnet | 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 Blöcke | 2048 Blöcke |
h1_bond, h1_vm | 2.880 — etwa Tag 1 | 80.640 — etwa Tag 28 |
coinbase_maturity | 100 Blöcke | 240 Blöcke |
target_block_seconds | 30 — identisch | |
epoch_length | 2880 Blöcke, etwa ein Tag — identisch | |
ttl_max | 240 Blöcke, etwa zwei Stunden — identisch | |
emission_ramp_blocks | 86.400, die 30-tägige Belohnungsrampe — identisch | |
founder_share, treasury_share_bps | 94 % Miner, 3 % Gründer bis 3.153.600, 3 % Treasury — identisch | |
Ein Testnet kann ab Genesis zurückgesetzt werden. Geschieht das, sind seine Coins, seine Historie und seine Peer-Listen weg, das Netzwerk erhält eine neue Chain-ID, und ein Datenverzeichnis, das die alte Chain enthält, wird beim Start abgewiesen statt stillschweigend vermischt. Die beiden Netzwerke trennen sich zudem beim Handshake, sodass nichts leise übernommen wird.
Beitreten#
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, nicht make build. Die
pow_engine des Testnets ist randomx-v2, dieselbe Arbeitsfunktion wie beim Mainnet. Eine Binärdatei,
die ohne das Tag gebaut wurde, verweigert dagegen den Start, statt auf die Entwicklungs-Engine
zurückzufallen, die einen einzelnen BLAKE3-Durchlauf als Proof of Work für jeden je gesehenen Header akzeptieren würde.
Die getaggten Binärdateien tragen das Tag in ihren Namen, sodass beide Builds
beide auf der Platte hinterlassen und der Dateiname sagt, welche Engine darin steckt. An anderer Stelle auf diesen Seiten sind die
Befehle der Kürze halber als zcd und zycordd geschrieben; in diesem Netzwerk sind das
die Paare mit -randomx.
Bootstrap#
Die Binärdatei trägt die Seeds des Testnets: seed1.zycord.com bis
seed4.zycord.com auf Port 19421. Die Seeds des Mainnets sind dieselben Hosts auf
9421, und die beiden Netzwerke weisen einander beim Handshake ab, sodass sich nichts vermischt. Eine
ältere Binärdatei, die testnet.zycord.com als Seed nennt, sollte ersetzt statt
umgangen werden. Um stattdessen oder zusätzlich andere Peers anzugeben:
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
Erreichbar sein, wenn es geht#
Zycord betreibt keine NAT-Traversierung. Ein Node mit --listen auf einem erreichbaren Port ist
ein Ort, von dem aus andere bootstrappen können, und der Anteil solcher Nodes ist die falsifizierbare
Bedingung, auf der die gesamte Entscheidung gegen Traversierung ruht — er wird gemessen, nicht angenommen.
zycordd --testnet --dir ./testnet \
--listen 0.0.0.0:9421 --advertise <public-address>:9421
Wenn Sie keinen Port weiterleiten können, lassen Sie --listen weg und bleiben Sie Peripherie. Das ist eine
völlig gute Art teilzunehmen. Prüfen Sie mit curl -s
localhost:9420/network, was von beidem Sie sind — listening: true mit inbound: 0
nach ein paar Minuten heißt, dass der Port tatsächlich nicht erreichbar ist.
An Coins kommen#
Zwei Wege, und der zweite ist der, um den herum dieses Netzwerk entworfen wurde.
Der Faucet#
Der Testnet-Explorer betreibt einen. Er zahlt einen kleinen Betrag an jede Adresse, die Sie ihm geben, sodass sich eine Überweisung, eine Rückerstattung und ein Sweep proben lassen, ohne vorher zwei Gibibyte an RandomX zu vergeben. Was er ist und warum er so gebaut ist, ist eine eigene Seite.
Er existiert in diesem Netzwerk und in keinem anderen. Der Faucet ist eine Funktion des
Explorers, die standardmäßig aus ist, und ihn einzuschalten erfordert, ein Netzwerk zu benennen — ein Name, der gegen
die Chain geprüft wird, die dieser Explorer tatsächlich indiziert, wobei mainnet rundweg abgelehnt wird.
Das Mainnet hat weder Faucet noch Premine, und das ist eine Prüfung in der Binärdatei statt einer Richtlinie,
an die sich jemand erinnern muss.
Dafür wird nichts geprägt. Der Faucet hält einen gewöhnlichen Schlüssel, signiert eine gewöhnliche Überweisung durch
dieselbe wallet/session, die auch die Kommandozeile nutzt, und zahlt einen Bezug pro Block aus, weil ein
Zertifikat den Zustand mitführt, den es gelesen hat, und zwei, die auf einer Lesung seiner Zelle aufbauen, um die Wette liefen.
Sein Guthaben stammt aus dem Mining, ein leerer Faucet bleibt also leer, bis ihn jemand wieder auffüllt.
Selbst-Mining#
Der Weg ohne Warteschlange und ohne Betreiber, und mit derselben Verteilung, die auch das Mainnet bekommt:
zcd wallet new --out miner.json
zycordd --testnet --dir ./testnet \
--mine --payout $(zcd wallet address --key miner.json | awk '/^persistent/ {print $3}')
Die Auszahlung muss eine persistente (0x02) Adresse sein — die
persistent-Zeile von zcd wallet address, das auch die nächste One-Shot-Adresse
ausgibt —, und zycordd weist alles andere ab, statt zu warnen. Warum.
coinbase_maturity ist 100, also können in den ersten rund hundert Blöcken nach Ihrer ersten
Belohnung nur Miner Transaktionen durchführen. Diese Anlaufphase ist die des Mainnets und Teil dessen, was dieses Netzwerk
probt — und sie ist der Grund, warum es den Faucet hier gibt und dort nicht geben kann: der Faucet
verkürzt die Anlaufphase für jemanden, der eine Wallet ausprobieren will, in dem einen Netzwerk, in dem diese Verkürzung
nichts kostet.
Das Mining reserviert das RandomX-Dataset — etwa 2 GiB, dazu ~256 MiB je gehaltener Schlüsselepoche. Ein Rechner, der bequem verifizieren kann, kann nicht zwangsläufig minen; die Budgets stehen unter Mining.
Die Testnet-Coins sind nichts wert#
So gewollt, und dauerhaft. Das Netzwerk kann ab Genesis zurückgesetzt werden, wofür ein Testnet da ist. Wer anbietet, sie zu kaufen oder zu verkaufen, betreibt einen Betrug, der nicht einmal eine Geschichte braucht.
Was dieses Netzwerk misst#
Es ist keine Vorführung. Vier Dinge, für die es Zahlen liefern soll:
- Die Pause beim Schlüsselwechsel. Bei 512 Blöcken fällt der RandomX-Schlüsselwechsel etwa alle vier Stunden an statt alle siebzehn wie im Mainnet, sodass der Neuaufbau des Datensatzes oft genug geprobt wird, um ihn zu messen statt über ihn zu theoretisieren.
- Base-Fee-Verhalten unter dem Gas-Tarif des Mainnets, weshalb der Tarif hier nicht angepasst wird.
- Der Anteil erreichbarer Nodes, der die erste Bedingung dafür ist, die Entscheidung gegen NAT-Traversierung neu aufzurollen.
- Ära 1 unter echter Last: Sequencer, Fills und der Forced Path in einem laufenden Netzwerk, Wochen bevor das Mainnet sein Tor erreicht.
Wenn etwas nicht stimmt#
Einen Node betreiben enthält den Diagnoseweg für einen Node, der nicht synchronisiert, und den Reparaturbefehl für ein Datenverzeichnis, gegen das er den Start verweigert. Befunde und Reproduktionen gehören in den Issue-Tracker; dem Projekt ist der Bericht lieber als der Vertrauensvorschuss.