ZYCORD Doku
Deutsch
ZycordDokuÖffentliches Testnet

Ö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 TestnetMainnet
namezycord-testnetzycord
chain_id21
genesis_time1791158400 — 2026-10-05T00:00:00Z1791331200 — 2026-10-07T00:00:00Z
randomx_key_interval512 Blöcke2048 Blöcke
h1_bond, h1_vm2.880 — etwa Tag 180.640 — etwa Tag 28
coinbase_maturity100 Blöcke240 Blöcke
target_block_seconds30 — identisch
epoch_length2880 Blöcke, etwa ein Tag — identisch
ttl_max240 Blöcke, etwa zwei Stunden — identisch
emission_ramp_blocks86.400, die 30-tägige Belohnungsrampe — identisch
founder_share, treasury_share_bps94 % Miner, 3 % Gründer bis 3.153.600, 3 % Treasury — identisch
Löschen Sie Ihr Datenverzeichnis, bevor Sie einem zurückgesetzten Netzwerk beitreten

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.