ZYCORD Doku
Deutsch
Zycord Quellcode

Quellcode

Ein Repository, unter MIT-Lizenz: der Node, die Wallet, die Kommandozeile, die Parametersätze und die Golden Vectors, die das Protokoll definieren. Alles, worauf das Netzwerk läuft, steckt darin.

Nichts auf dieser Seite ist mehr wert als das, was Sie prüfen können, ohne jemanden zu fragen — und hier fängt das Prüfen an. Ein anonymer Autor kann Ihnen keinen Ruf anbieten; angeboten wird stattdessen ein Baum, den Sie lesen, bauen und mit den Binärdateien vergleichen können, die man Ihnen gegeben hat.

Klonen#

git clone https://gitlab.com/zycord-group/zycord-node.git
cd zycord-node

Oder lesen Sie ihn zuerst im Browser: gitlab.com/zycord-group/zycord-node.

Dies ist das einzige Repository

Die kanonischen Orte dieses Projekts — dieser eingeschlossen — sind in der signierten Attestierung im Ankündigungs-Thread festgeschrieben, unter dem Projektschlüssel E724 39CE DD85 11F9 D607 550B 87FD 60D5 EB4A 0B29. Ein anderswo gehosteter Baum ist eine Kopie: er kann ehrlich sein, veraltet oder feindselig, und nichts auf dieser Seite kann Ihnen sagen, welches davon. Prüfen Sie die signierte Liste, bevor Sie einem Spiegel trauen, und bauen Sie von einem Tag, dessen Hash Sie selbst geprüft haben.

Was darin steckt#

VerzeichnisWas es enthält
spec/Das Protokoll. Die Parametersätze, die Golden Vectors und die vorab bereitgestellten Bibliotheks-Images. Eine Implementierung, die die Vektoren besteht, ist ein Peer und kein Fork.
core/Konsenskritischer Code, nur Standardbibliothek: das Zellenmodell, zustandslose Gültigkeit, der Fold, die an Zertifikate angepasste EVM und RandomX hinter einem Build-Tag.
node/Der Node um diesen Kern — Storage, Mempool, Miner, Peer-Schicht, Sync, Read-only-RPC, Stratum.
wallet/Schlüsselverwaltung und Zertifikatsbauer. Eine Referenz, kein Konsens.
cmd/zycordd, der Node; zcd, die Kommandozeile und die Wallet.
sim/Der Simulator und die Fuzz-Harnesses, ein zweiter, bewusst naiver Fold, der gegen den echten gefuzzt wird, und der Chaos-Soak, der echte Nodes über echte Sockets laufen lässt.
contracts/Die Referenz-Contracts, in Solidity.
packaging/Das Installationsskript und die Plattformpakete, prüfbar, bevor Sie sie ausführen.
docs/Die Architektur, die Protokollreferenz, der Betriebsleitfaden und das Whitepaper.

Das Protokoll sind die Vektoren#

Der Go-Code in diesem Baum ist eine Referenzimplementierung und bewusst nicht die Definition. Was das Netzwerk definiert, sind die Parametersätze und die Golden Vectors: jede Fold-, Block- und Gültigkeitsregel als Fall (Vorzustand, Block) → (Nachzustand, Gebühren), positiv wie negativ. Schreiben Sie Ihren eigenen Node in welcher Sprache Sie wollen — besteht er das Korpus, ist er ein Peer, und diese Implementierung hat keinen Vorrang vor ihm.

Die Aktivierungshöhen liegen am selben Ort. h1_bond und h1_vm sind bei Genesis eingefrorene Parameter und kein Release: die Maschine ist in jede Binärdatei einkompiliert und wird unterhalb ihrer Höhe abgelehnt, eine Ära kommt also, weil die Chain eine Zahl erreicht hat, und nie, weil Betreiber zum Upgrade aufgefordert wurden.

Bauen#

make build           # no cgo, reproducible, development engine only
make build-randomx   # the network binary: mainnet and the public testnet

Nur der RandomX-Build kann einem Netzwerk beitreten. Der Standard-Build ist Byte für Byte reproduzierbar und betreibt ein lokales Devnet; beide schreiben absichtlich verschiedene Dateien, damit eine Binärdatei, die nicht mit dem Mainnet sprechen kann, nie mit einer verwechselt wird, die es kann. Die Go-Toolchain ist auf go1.26.2 festgenagelt und der Build verweigert sich unter allem anderen, weil derselbe Quellcode, von zwei Go-Releases kompiliert, zwei verschiedene Binärdateien sind.

Einen veröffentlichten Tag nachzubauen und Hashes zu vergleichen ist die Prüfung, die Vertrauen in den Herausgeber ersetzt — Einen Download prüfen enthält das vollständige Verfahren, und Installation behandelt das Bauen für den normalen Gebrauch.

Issues und Sicherheit#

Fehler, Fragen und Patches gehen an den Issue-Tracker, und CONTRIBUTING.md sagt, was eine Änderung braucht, bevor sie gemergt werden kann.

Eine Schwachstelle geht in den Offenlegungsprozess in SECURITY.md und nicht in den Tracker. Dem Projekt ist der Bericht lieber als der Vertrauensvorschuss, und ein vor Mainnet gefundener Mangel kostet niemanden etwas.

Lizenz#

MIT, für den gesamten Baum. Forken Sie ihn, liefern Sie ihn aus, verkaufen Sie ihn, benennen Sie ihn um — die Lizenz verlangt einen Copyright-Hinweis und sonst nichts. Das Einzige, was sie Ihnen nicht geben kann, ist das Netzwerk: darüber entscheiden die Nodes, die Ihre Blöcke annehmen, und sie nehmen sie nach den Regeln in spec/ an.