Projekt

Für Entwickler

Der Code von FAIRDRUM ist unter der MIT-Lizenz offen: Smart Contract, Website, Start-Skripte und Tests liegen in einem Repository (der Link erscheint hier nach der Veröffentlichung). Hier steht kurz, wie alles aufgebaut ist und wie Sie eine eigene Kopie starten.

Aufbau

OrdnerWas darin steckt
programs/fairdrum/Smart Contract in Rust und Anchor 1.2.2. Die Spielzahlen stehen in consts.rs, die Berechnungen in engine.rs und math.rs als gewöhnliche Funktionen, daher laufen die Tests ohne Netzwerk.
app/Website: Vite und TypeScript, Seiten in app/src/pages/, Contract-Client und Anbindung an Switchboard in app/src/chain/. Die Zahlentabellen der Website werden aus consts.rs erzeugt und weichen deshalb nicht vom Smart Contract ab.
scripts/Start: Token-Ausgabe, Initialisierung, Prüfung der gespeicherten Einstellungen, Test auf devnet, interne Auszahlungen, optionaler „Keeper“.
docs/ARCHITECTURE.md (wie alles aufgebaut ist), LAUNCH.md (Start Schritt für Schritt), AUDIT.md (Selbstprüfung der Sicherheit und offene Fragen).
e2e/Tests der Website in einem echten Browser, mit einer Mock-Wallet und einem simulierten Netzwerk.

Das Projekt hat weder Server noch Datenbank: Die Website besteht aus gewöhnlichen Dateien und liest die Daten direkt aus dem Smart Contract.

Selbst starten

Sie brauchen Node.js 20.19 oder neuer und Rust für die Tests des Smart Contracts.

npm install
npm run dev                         # Website auf localhost, im Demo-Modus ohne Smart Contract
npm test                            # Client-Tests
cargo test -p fairdrum --release    # Contract-Tests
npm run build                       # Website im Ordner dist/
npm run build:single                # Offline-Version: einzelne HTML-Dateien, die sich per Doppelklick öffnen lassen

Start auf devnet und mainnet Schritt für Schritt, mit Befehlen und einer Übersicht häufiger Fehler: docs/LAUNCH.md im Repository.

Einstellungen ohne neuen Build

Die Datei config.json liegt neben den Seiten und wird bei jedem Laden gelesen, daher lassen sich Contract-Adresse, Netzwerkknoten und Links ohne Build ändern. Ein leeres programId schaltet den Demo-Modus ein.

{
  "programId": "Adresse des Programms nach dem Start",
  "cluster": "mainnet-beta",
  "rpc": "https://...",
  "swapUrl": "Link zum Tausch von FAIRDRUM, sobald es ihn gibt",
  "links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}

Die Adresse der Website, die Seitenbeschreibungen und die Bestätigungen für Webmaster werden in app/seo.json und app/pages.json festgelegt; npm run gen:html erzeugt daraus Seiten, Sitemap und robots.txt neu.

Code prüfen

Tests

Die Logik des Smart Contracts wird ohne Netzwerk geprüft, auch mit einem „Sturm“ aus Zehntausenden zufälliger Operationen: Nach jeder müssen die Token im Speicher genau den Verbindlichkeiten entsprechen. Der Test ist per „Mutation“ geprüft: Verschiebt man in der Berechnung auch nur die kleinste Einheit, schlägt er fehl.

Was nicht geprüft ist

Build für Solana, Live-Betrieb mit Switchboard und ein unabhängiges Audit: Projektstatus. Eine interne Prüfung ersetzt kein Audit, und in docs/AUDIT.md steht, was offen bleibt.

Abgleich mit dem Netzwerk

Nach dem Start gleichen Sie den veröffentlichten Code mit dem Programm im Netzwerk ab, gemäß der Anleitung „Fairness prüfen“. Die Adressen von Programm und Token stehen auf der Seite „Offizielle Links“.

Wenn die Website fairdrum.to nicht erreichbar ist

Ihre Token bleiben, wo sie sind.

Das Spielguthaben liegt im Smart Contract, nicht auf der Website. Die Website ist nur eine bequeme Hülle, und die Abhebung ist mit jeder ihrer Kopien möglich.

  1. Prüfen Sie, ob die Adresse richtig eingegeben ist, und öffnen Sie die Website über ein Lesezeichen. Ist nur sie nicht erreichbar, warten Sie ab: Manchmal gibt es eine vorübergehende Störung beim Hosting.
  2. Öffnen Sie eine Kopie der Website: Das Repository ist offen, und die Website besteht aus gewöhnlichen Dateien. Laden Sie die Offline-Version herunter oder bauen Sie eine eigene (npm run build), legen Sie daneben eine config.json mit der echten Programmadresse (sie lässt sich auf der Seite „Offizielle Links“ und im Explorer abgleichen) und öffnen Sie die Seite über einen beliebigen einfachen Webserver, zum Beispiel npx vite preview.
  3. Verbinden Sie dieselbe Wallet. Guthaben, Rang und Serie werden aus dem Smart Contract gelesen, und die Abhebung funktioniert genauso wie auf der Hauptseite.
  4. Geben Sie auf keiner „Spiegelseite“ Ihre Wiederherstellungsphrase ein. Die Website fragt nie danach: Jede Kopie, die danach fragt, ist eine Fälschung.

Prüfen Sie eine Kopie der Website aus fremder Quelle: Vergleichen Sie den Code mit dem Repository des Projekts. Ohne das wissen Sie nicht, was Sie genau signieren. Sicherer ist es, selbst zu bauen.

Lizenz

MIT: Den Code dürfen Sie lesen, kopieren, ändern und ausführen, auch kommerziell, sofern der Lizenztext erhalten bleibt. Die Lizenz betrifft den Code, nicht Namen und Adresse von fairdrum.to: Ein Fork mit anderen Regeln darf sich nicht als dieses Projekt ausgeben.