跳到主要内容

自行重算与比对

每个宇宙都是区块哈希的纯函数,该函数已开源。你可以在本机重算一遍,再与链上记录比对。两条命令,无需注册。

重算一个宇宙

git clone https://github.com/q3579338/arcbang
cd arcbang
node tools/recompute.js 0x0d21840abff46b96c84b2ac9e10e4f5cdaeb5693cb665db62a2f3b02d2d57b5b

仅需一个哈希即可推出参数、结局、等级与 cardHash。推导为纯整数运算,跨机器结果一致。零依赖,要求 Node 18 及以上。

跟链上对

node tools/verify-onchain.js 1

该命令从 Arc 读取 1 号 NFT,以其记录的区块哈希重算并逐字节比对。全过程仅使用该哈希,不涉及服务端的任何数据。

仓库另附引擎自检与链上比对测试,node engine/test.js 可在本地运行。

签名管什么

铸造需要服务端签名。该步骤用于阻止以伪造参数铸造:服务端重算参数后再签名,签名地址写在链上,任何人都可以查询。

签名无法凭空生成宇宙:被签名的参数必须与 recompute.js 从哈希算出的结果完全一致,上述命令核对的正是这一点。

合约

Arc 主网,chainId 5042,gas 以 USDC 支付。无代理、无升级通道、无暂停开关,部署后不再更改。合约共两个;项目没有代币,因此不需要部署其他合约。

合约干什么的
ArcUniverse宇宙本身。铸造价格与免费额度、5% 版税,以及 tokenURI 的链上 SVG 兜底。
ArcMarket站内挂单、买入、撤单。市场不收手续费,成交按 ERC-2981 支付 5% 版税。

部署地址将在上链当天公布于本页与 config.js。站点只从该文件读取地址,因此页面显示的合约与钱包交互的合约始终一致。

当前的信任边界

以下两点需要明确说明。

  • 铸造依赖服务端签名。签名地址在链上,被签参数可自行重算;服务端不可用时无法铸造新的 NFT,已铸出的不受影响,合约自带链上 SVG。
  • 合约包含若干 owner 开关,均设有边界:免费额度只能调小,价格由常数限定在 0.1 至 20 USDC 之间,版税上限 10%,市场手续费上限 10%。已铸出的 NFT,参数不可更改。