genart · layer 0

Ink Field

一件确定性生成艺术作品。代码和种子决定图像,图像本身不在链上。 同一份代码加同一个种子,在任何机器上都必须得到同一张图——这个页面就是为了让人验证这一点。

code_hash sha256:92b17e5c5dc327bf… bytes 5,721 runtime js-deterministic supply 64
seed-0slate · heavy · yes
seed-1slate · fine · yes
seed-2bone · fine · yes
seed-3moss · heavy · no
seed-4slate · medium · yes
seed-5clay · medium · no
链上 · Fractal Bitcoin 测试网 2,168 sats

作品和 manifest 各一笔铭文,已确认在区块 1,586,885。字节与本地构建一致;inscribe/audit.mjs 不读本地记录,直接从交易里重解信封、重算 taproot 承诺与 BIP341 签名,共 30 项检查全部通过。

铭文txid字节确认
generatord46a8d4d…e314ef5,721区块 1,586,885
manifest106d4c2e…b404ad600区块 1,586,885

测试网的 ord 索引停在 1,416,517(主链 1,586,885,落后 170,368 块),/content/<id> 返回 HTTP 500。确认没有改变这一点——内容在链上,不等于内容可访问。

第二实现 · 跨运行时一致性 74 / 74

同一份输出,在两套完全不同的运行时里逐字节复现。conformance/port/ink_field.py 只用 Python 标准库,与 JS 版不共享一行代码——它把 Math.imul 的 32 位回绕、 >>> 的逻辑右移、Math.round 的 half-up、数字转字符串的最短往返, 逐条重写了一遍。

层向量钉住什么
round217舍入语义:half-up,不是 toFixed,也不是 Python 的 round
num2str11数字 → 字符串:1000 不是 1000.0
state23seed → PRNG 的四个 uint32
artwork23seed → sha256(SVG) 与 traits

5 个典型移植错误全部被抓。第一轮有 1 个存活——23 个作品向量都放过了 half-up 换成 banker's rounding,因为没有种子恰好落在 .5 上。原语级向量就是这么来的。

查看器从内容 URL 取回字节、在沙箱 iframe 里渲染,并用 crypto.subtle 重算哈希做完整性校验。
换一个种子,或者把内容地址换成链上的 /content/<id>,其余逻辑不变。