プロジェクト

開発者向け

FAIRDRUMのコードはMITライセンスで公開されています。コントラクト、サイト、起動スクリプト、テストは、1つのリポジトリ(リンクは公開後にここに表示されます)にまとまっています。ここでは、全体の構成と、自分用のコピーを動かす方法を簡単に説明します。

構成

フォルダー内容
programs/fairdrum/RustとAnchor 1.2.2で書かれたコントラクト。ゲームの数値はconsts.rsに、計算はengine.rsとmath.rsに通常の関数として書かれているため、テストはネットワークなしで実行できます。
app/サイト:ViteとTypeScript。ページはapp/src/pages/に、コントラクトのクライアントとSwitchboardの処理はapp/src/chain/にあります。サイト上の数値の表はconsts.rsから生成されるため、コントラクトとずれることはありません。
scripts/起動:トークンの発行、初期化、保存された設定の確認、devnetでのテスト、運用上の支払い、任意の「キーパー」(常時稼働の補助プログラム)。
docs/ARCHITECTURE.md(全体の構成)、LAUNCH.md(起動の手順)、AUDIT.md(セキュリティの自己点検と未解決の課題)。
e2e/実際のブラウザーで、模擬ウォレットと模擬ネットワークを使って行うサイトのテスト。

このプロジェクトにはサーバーもデータベースもありません。サイトは通常のファイルだけで構成され、データはコントラクトから直接読み取ります。

自分で動かす

Node.js 20.19以降と、コントラクトのテスト用にRustが必要です。

npm install
npm run dev                         # localhost上のサイト(コントラクトなしのデモモード)
npm test                            # クライアントのテスト
cargo test -p fairdrum --release    # コントラクトのテスト
npm run build                       # dist/フォルダー内のサイト
npm run build:single                # オフライン版:個別のHTMLファイルで、ダブルクリックで開けます

devnetとメインネットでの起動手順を、コマンドとよくあるエラーの解説つきで説明したもの:リポジトリ内のdocs/LAUNCH.md。

再ビルドなしで変えられる設定

config.jsonファイルはページと同じ場所にあり、読み込みのたびに読み取られます。そのため、コントラクトのアドレス、ネットワークノード、リンクはビルドなしで変更できます。programIdが空だと、デモモードになります。

{
  "programId": "起動後のプログラムのアドレス",
  "cluster": "mainnet-beta",
  "rpc": "https://...",
  "swapUrl": "FAIRDRUMを交換するためのリンク(用意できたときに設定)",
  "links": { "github": "...", "telegram": "...", "x": "...", "audit": "..." }
}

サイトのアドレス、ページの説明文、ウェブマスター向けの確認コードはapp/seo.jsonとapp/pages.jsonで設定します。npm run gen:htmlは、これらをもとにページ、サイトマップ、robots.txtを再生成します。

コードの検証

テスト

コントラクトのロジックは、ネットワークなしでテストされています。数万回のランダムな操作を連続して行う「ストームテスト」も含まれ、各操作の後で、ボールト内のトークンが債務とぴったり一致していなければなりません。このテスト自体も「ミューテーション」で検証済みで、計算で最小単位を1つでもずらすと失敗します。

未検証のこと

Solana向けビルド、Switchboardとの実環境での動作、独立監査:プロジェクト状況を参照してください。内部の確認は監査の代わりにはならず、docs/AUDIT.mdには未解決の項目が一覧されています。

ネットワークとの照合

起動後は、「公平性を確認する」の手順で、公開されているコードとネットワーク上のプログラムを照合してください。プログラムとトークンのアドレスは、「公式リンク」のページで確認できます。

サイトfairdrum.toにアクセスできない場合

あなたのトークンはどこにも消えません。

ゲーム残高はサイトではなく、コントラクトに保管されています。サイトは便利な外側の画面にすぎず、どのコピーからでも出金できます。

  1. アドレスが正しく入力されているか確認し、ブックマークからサイトを開いてください。このサイトだけにつながらない場合は、しばらく待ってください。ホスティングの一時的な障害が起きることがあります。
  2. サイトのコピーを開いてください。リポジトリは公開されており、サイトは通常のファイルだけでできています。オフライン版をダウンロードするか、自分でビルドして(npm run build)、実際のプログラムのアドレスを記したconfig.jsonを横に置き(アドレスは「公式リンク」のページとブロックエクスプローラーで照合できます)、任意の簡易Webサーバー(例:npx vite preview)で開きます。
  3. 同じウォレットを接続してください。残高、ランク、連続記録はコントラクトから読み込まれ、出金はメインのサイトと同じように動作します。
  4. どの「ミラー」サイトでも、シードフレーズは入力しないでください。このサイトがシードフレーズを求めることはありません。求めてくるコピーは偽物です。

他人から入手したサイトのコピーは、必ず確認してください。コードをプロジェクトのリポジトリと比較します。確認しなければ、自分が何に署名するのかわかりません。自分でビルドするほうが確実です。

ライセンス

MIT:ライセンス文を残す限り、商用利用を含め、コードを読み、コピーし、改変し、実行できます。ライセンスの対象はコードであり、名称やアドレスfairdrum.toは含まれません。ルールの異なるフォークが、このプロジェクトであるかのように装ってはいけません。