复现公平验证教程
本页说明如何从牌桌下载 transcript,并用公开源码中的 verifier 在本地复验牌局记录。
Release Facts
- Official domain
- https://fairpoker.app
- GitHub
- https://github.com/Realfairpoker/fairpoker-core-audit
- Game client CID
- bafybeihwpu3ajtggckcxmhals75ei7c3lrlblwsv7pghpktw3mpb2aryuq
- Source package CID
- bafkreicsvooemdq4odstyykyhykms662gwhcg5kpkjsn7lo4klnuprmtpa
- Source fingerprint
- sha256:761332c3107beaa960f020a965baff1a7e4bfad5cdc40e7307324e26eedebfec
- Archive SHA256
- sha256:52ab9c460e1c70e53c61583e14c97bda358e23754f5264dfaddc52db47c59378
中文
一、确认线上前端与公开核心代码对应
- 先确认你进入的牌局客户端 CID 是本页公布的 Game client CID。通过 `ipfs.io`、`dweb.link` 等不同网关打开同一 CID,应得到同一份前端文件。
- 下载核心源码审计包,并校验压缩包 SHA256 是否等于本页公布的 Archive SHA256。
- 解压源码包后重新生成源码指纹,确认输出的 Source fingerprint 与本页公布值一致。
curl -L -o fair-poker-source.tar.gz \
https://ipfs.io/ipfs/bafkreicsvooemdq4odstyykyhykms662gwhcg5kpkjsn7lo4klnuprmtpa
shasum -a 256 fair-poker-source.tar.gz
# 应等于 52ab9c460e1c70e53c61583e14c97bda358e23754f5264dfaddc52db47c59378
mkdir fair-poker-source
tar -xzf fair-poker-source.tar.gz -C fair-poker-source --strip-components=1
cd fair-poker-source
npm ci
npm run generate:release-metadata
grep sourceFingerprint src/generated/releaseMetadata.ts
如果源码包 SHA256 和 Source fingerprint 都一致,说明公开的核心发牌、洗牌、加密、解密、签名、transcript 与 verifier 代码没有被替换。
二、复验一局牌
- 在牌桌左上角打开「安全牌局」面板。
- 点击「下载」保存本局 transcript JSON 文件。
- 打开 GitHub 开源证据库,或下载核心源码审计包。
- 在源码目录安装依赖并运行 verifier。
npm ci
npm run verify:transcript -- /path/to/transcript.json
如果输出为通过,说明 transcript 的 hash-chain、事件顺序、签名格式、牌局动作、奖池和结果可以被本地复验。若篡改 transcript 中任意关键字段,verifier 会报错或给出警告。
English
1. Match the deployed client to the public core source
- Confirm that the table client CID you opened matches the Game client CID above. The same CID should load the same frontend files through different IPFS gateways.
- Download the core source audit package and compare its SHA256 with the Archive SHA256 above.
- Extract the package, regenerate the source fingerprint, and compare it with the published Source fingerprint.
curl -L -o fair-poker-source.tar.gz \
https://ipfs.io/ipfs/bafkreicsvooemdq4odstyykyhykms662gwhcg5kpkjsn7lo4klnuprmtpa
shasum -a 256 fair-poker-source.tar.gz
# must equal 52ab9c460e1c70e53c61583e14c97bda358e23754f5264dfaddc52db47c59378
mkdir fair-poker-source
tar -xzf fair-poker-source.tar.gz -C fair-poker-source --strip-components=1
cd fair-poker-source
npm ci
npm run generate:release-metadata
grep sourceFingerprint src/generated/releaseMetadata.ts
If both the archive SHA256 and Source fingerprint match, the public core dealing, shuffling, encryption, decryption, signing, transcript, and verifier code have not been replaced.
2. Replay a table transcript
- Open the Secure Table panel in the upper-left table tools.
- Click Download to save the hand transcript JSON.
- Open the GitHub audit repository or download the core source audit package.
- Install dependencies and run the verifier locally.
npm ci
npm run verify:transcript -- /path/to/transcript.json
A successful result means the hash-chain, event order, signed-event format, table actions, pots, and result can be replayed locally. Tampering with important transcript fields should fail verification or produce warnings.
日本語
まず公開された Game client CID と実際に開いた CID が一致することを確認します。次にソース監査パッケージをダウンロードし、SHA256 と Source fingerprint を本ページの値と比較してください。一致すれば、公開された配牌、シャッフル、暗号化、復号、transcript、verifier コードが置き換えられていないことを確認できます。
shasum -a 256 fair-poker-source.tar.gz
npm ci
npm run generate:release-metadata
grep sourceFingerprint src/generated/releaseMetadata.ts
テーブル左上の安全パネルを開き、記録をダウンロードします。GitHub 監査リポジトリまたはソース監査パッケージを取得し、次のコマンドを実行します。
npm ci
npm run verify:transcript -- /path/to/transcript.json
成功すれば、hash-chain、イベント順序、署名形式、ポット、結果をローカルで再検証できます。
Español
Primero confirma que el CID del cliente coincide con el Game client CID publicado. Después descarga el paquete de código fuente central y compara el SHA256 y el Source fingerprint con los valores de esta página. Si coinciden, el código público de reparto, barajado, cifrado, descifrado, transcript y verifier no fue reemplazado.
shasum -a 256 fair-poker-source.tar.gz
npm ci
npm run generate:release-metadata
grep sourceFingerprint src/generated/releaseMetadata.ts
Abre el panel de seguridad de la mesa, descarga el transcript JSON y ejecuta el verificador desde el repositorio de auditoría.
npm ci
npm run verify:transcript -- /path/to/transcript.json
Un resultado correcto reproduce localmente la cadena hash, el orden de eventos, las firmas, los botes y el resultado.
Français
Vérifiez d’abord que le CID du client correspond au Game client CID publié. Téléchargez ensuite le paquet source central et comparez le SHA256 et le Source fingerprint avec les valeurs de cette page. S’ils correspondent, le code public de distribution, mélange, chiffrement, déchiffrement, transcript et verifier n’a pas été remplacé.
shasum -a 256 fair-poker-source.tar.gz
npm ci
npm run generate:release-metadata
grep sourceFingerprint src/generated/releaseMetadata.ts
Ouvrez le panneau de sécurité, téléchargez le transcript JSON, puis lancez le vérificateur depuis le dépôt d’audit.
npm ci
npm run verify:transcript -- /path/to/transcript.json
Un résultat positif confirme localement la hash-chain, l’ordre des événements, les signatures, les pots et le résultat.
Deutsch
Prüfen Sie zuerst, ob der geöffnete Client-CID dem veröffentlichten Game client CID entspricht. Laden Sie dann das zentrale Quell-Auditpaket herunter und vergleichen Sie SHA256 und Source fingerprint mit den Werten auf dieser Seite. Stimmen sie überein, wurde der öffentliche Code für Austeilen, Mischen, Verschlüsselung, Entschlüsselung, Transcript und Verifier nicht ersetzt.
shasum -a 256 fair-poker-source.tar.gz
npm ci
npm run generate:release-metadata
grep sourceFingerprint src/generated/releaseMetadata.ts
Öffnen Sie das Sicherheitspanel, laden Sie das Transcript als JSON herunter und führen Sie den Verifier aus dem Audit-Repository aus.
npm ci
npm run verify:transcript -- /path/to/transcript.json
Ein erfolgreicher Lauf bestätigt lokal Hash-Chain, Ereignisreihenfolge, Signaturen, Pots und Ergebnis.
联系我们 / Contact
问题反馈、Bug 提交、安全线索、授权与合规事务,请联系 support@fairpoker.app。
- English: For support, bug reports, security leads, licensing, or compliance matters, contact support@fairpoker.app.
- 日本語: サポート、バグ報告、セキュリティ情報、ライセンス、コンプライアンスは support@fairpoker.app までご連絡ください。
- Español: Para soporte, bugs, seguridad, licencia o cumplimiento, escribe a support@fairpoker.app.
- Français: Pour support, bugs, sécurité, licence ou conformité, contactez support@fairpoker.app.
- Deutsch: Für Support, Bugmeldungen, Sicherheitshinweise, Lizenz- oder Compliance-Fragen: support@fairpoker.app.