Projekt

Dla deweloperów

Kod FAIRDRUM jest otwarty na licencji MIT: kontrakt, strona, skrypty startowe i testy leżą w jednym repozytorium (link pojawi się tu po publikacji). Tu krótko, jak wszystko działa i jak uruchomić własną kopię.

Budowa

FolderCo w środku
programs/fairdrum/Kontrakt w Rust i Anchor 1.2.2. Liczby gry w consts.rs, obliczenia w engine.rs i math.rs jako zwykłe funkcje, więc testy idą bez sieci.
app/Strona: Vite i TypeScript, strony w app/src/pages/, klient kontraktu i praca z wyrocznią ORAO w app/src/chain/. Tabele liczb na stronie generowane są z consts.rs, więc nie rozjeżdżają się z kontraktem.
scripts/Start: emisja tokena, inicjalizacja, sprawdzenie zapisanych ustawień, test na devnecie, wypłaty służbowe, opcjonalny „dyżurny”.
docs/ARCHITECTURE.md (jak wszystko działa), LAUNCH.md (start krok po kroku), AUDIT.md (samokontrola bezpieczeństwa i otwarte pytania).
e2e/Testy strony w prawdziwej przeglądarce z podstawionym portfelem i podstawioną siecią.

W projekcie nie ma serwera ani bazy danych: strona składa się ze zwykłych plików i czyta dane prosto z kontraktu.

Uruchom u siebie

Potrzebne Node.js 20.19 lub nowszy i Rust do testów kontraktu.

npm install
npm run dev                         # strona na localhost, bez kontraktu w trybie demo
npm test                            # testy klienta
cargo test -p fairdrum --release    # testy kontraktu
npm run build                       # strona w folderze dist/
npm run build:single                # wersja offline: osobne pliki html, otwierane podwójnym kliknięciem

Start krok po kroku na devnecie i w sieci głównej z poleceniami i rozbiorem częstych błędów: docs/LAUNCH.md w repozytorium.

Ustawienia bez rekompilacji

Plik config.json leży obok stron i czyta się przy każdym wczytaniu, więc adres kontraktu, węzeł sieci i linki zmieniają się bez kompilacji. Pusty programId włącza tryb demo.

{
  "programId": "adres programu po starcie",
  "cluster": "mainnet-beta",
  "rpc": "https://...",
  "swapUrl": "link do wymiany FAIRDRUM, gdy się pojawi",
  "links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}

Adres strony, opisy stron i potwierdzenia dla webmasterów ustawia się w app/seo.json i app/pages.json; npm run gen:html przebudowuje po nich strony, mapę strony i robots.txt.

Jak projekt sprawdzano: historia jednej próby

Przed wyjściem do sieci głównej projekt przeżył pełną próbę w sieci testowej devnet (9–10 listopada 2026): instalacja z czystego serwera, kompilacja, wdrożenie, emisja tokena, start kontraktu i prawdziwe zakręcenia przez wyrocznię. Próba wyłapała sześć błędów startu — wszystkie opisane z lekarstwami w docs/AUDIT.md (F11–F16).

Główne odkrycie: poprzednia wyrocznia losowości (Switchboard) do tego czasu zamknęła się na zawsze — wyszło to właśnie na próbie, a nie po starcie. W jeden dzień kontrakt, klient i teksty w 14 językach przeniesiono na żywą wyrocznię ORAO VRF i tej samej nocy przeszły prawdziwe zakręcenia: rozliczenie jednego zakręcenia zajęło 17 121 jednostek obliczeniowych z limitu 1 400 000, pakiet ×10 — 17 978. W audycie pojawiły się potem działy „zapasowe ścieżki” (co robi projekt, jeśli wyrocznia znów umrze) i rozbiór znanych klas ataków na programy Solany.

Wniosek dla czytelnika prosty: wszystko, co napisano na tej stronie o zakręceniach, losowości i skarbcu, sprawdzono nie tylko testami, ale i żywą siecią. Czego jeszcze nie sprawdzono — uczciwie wymieniono na stronie „Status”, a niezależny audyt ludzi pozostaje obowiązkowym warunkiem startu.

Weryfikacja kodu

Testy

Logika kontraktu sprawdzana jest bez sieci, w tym „sztormem” z dziesiątek tysięcy losowych operacji: po każdej tokeny w skarbcu muszą równo odpowiadać zobowiązaniom. Test sprawdzono „mutacją”: jeśli w rachunku przesunąć choć jedną najmniejszą jednostkę, pada.

Czego nie sprawdzono

Żywe zakręcenie przez wyrocznię ORAO i niezależny audyt: status projektu. Wewnętrzna kontrola nie zastępuje audytu, a w docs/AUDIT.md wymieniono, co pozostaje otwarte.

Porównanie z siecią

Po starcie porównaj opublikowany kod z programem w sieci według instrukcji „Sprawdź uczciwość”. Adresy programu i tokena czyta się na stronie „Oficjalne linki”.

Jeśli strona fairdrum.to jest niedostępna

Twoje tokeny nigdzie nie znikają.

Saldo gry przechowywane jest w kontrakcie, a nie na stronie. Strona to wygodna powłoka, a wypłatę można zrobić z każdej jej kopii.

  1. Sprawdź, że adres wpisano poprawnie, i otwórz stronę z zakładki. Jeśli niedostępna jest tylko ona, poczekaj: bywa chwilowa awaria hostingu.
  2. Uruchom kopię strony: repozytorium jest otwarte, a strona to zwykłe pliki. Pobierz wersję offline albo zbuduj własną (npm run build), połóż obok config.json z prawdziwym adresem programu (można go porównać na stronie „Oficjalne linki” i w eksploratorze) i otwórz przez dowolny prosty serwer www, np. npx vite preview.
  3. Podłącz ten sam portfel. Saldo, ranga i seria odczytają się z kontraktu, a wypłata działa tak samo jak na głównej stronie.
  4. Nie wpisuj tajnej frazy na żadnych „mirrorach”. Strona nigdy o nią nie prosi: każda kopia, która prosi, jest fałszywa.

Kopię strony z cudzego źródła sprawdź: porównaj kod z repozytorium projektu. Bez tego nie wiesz, co dokładnie podpiszesz. Pewniej zbudować samemu.

Licencja

MIT: kod można czytać, kopiować, zmieniać i uruchamiać, także komercyjnie, zachowując tekst licencji. Licencja dotyczy kodu, a nie nazwy i adresu fairdrum.to: fork z innymi zasadami nie może podawać się za ten projekt.