本文介绍了比特币 Ordinals 协议中的“递归铭文”概念,它允许一个铭文链接到另一个铭文,从而在比特币上实现新的可组合性。通过HTML的canvas标签和JavaScript技术实现图像分层,从而优化了比特币上集合的创建方式,降低了成本,提高了图像质量。 最终的HTML文件非常小,从而降低了链上存储的成本。
在短短几个月内,铭文数量超过 1200 万,Ordinals 给比特币带回了许多兴奋和创新。Ordinals 领域最新的热潮是“递归铭文”的概念。这项新功能允许一个铭文链接到另一个铭文,从而在比特币上开启了一个全新的可组合性领域。
实际上,ord 二进制文件或协议没有任何更改来启用此功能。这仅仅是对主 Ordinals 区块浏览器的一个更新,允许使用以下格式链接到其他铭文:/content/<INSCRIPTION_ID>
为了安全起见,任何外部链接请求默认情况下仍然会被显示铭文的沙盒 iframe 阻止,除了这些 /content/ 链接。该浏览器也已更新,允许使用 Javascript 和 CSS 文件类型。
通过此新更新,铭文可以变得非常强大,并继承以前铭文的元素。例如,有人可以铭刻流行的 Javascript 和 CSS 库供任何人使用,从而允许将丰富的 HTML 文件直接铭刻到比特币上,甚至可以相互链接。
该领域的其他浏览器必须效仿并进行与 ordinals.com 相同的更新,以启用 /content/ 链接。社区对这一变化反应良好,几乎所有当前的浏览器现在都支持递归铭文。
自推出以来,在 OrdinalsBot,我们已经为该领域的许多项目铭刻了许多集合。由于比特币区块空间的昂贵性质,几乎所有项目都面临一个持续的痛点,那就是需要将其艺术作品优化到尽可能小的文件大小。
在许多情况下,这意味着将分辨率降低到远低于 1000 像素,并应用严重影响最终艺术质量的重度优化。
递归铭文的可组合性可以提供一种替代方法来创建集合,而无需牺牲图像质量。
你只需以其原始格式铭刻集合中的每个特征(仍然建议进行无损优化),然后你可以使用递归来生成 HTML 文件,这些文件提取这些特征并重建艺术作品。
最终结果是一组 HTML 文件,它们在各个方面“看起来”都与最终图像完全一样,但在大多数情况下,文件大小仅为 1kb 以下。
在下面你将看到我们有 4 个构成最终图像的特征,每个特征都是它自己的图层。它们仍然是完整的 2500x2500 像素分辨率,并且已转换为应用了无损优化的 WebP。
如果我们将这些图层合并为单个图像并应用优化,则最终的 2500 像素文件仍然约为 230 kb,这使得铭刻成本非常高,特别是对于包含 5000 个图像的集合,该大小将花费超过 100 万美元才能全部铭刻。
要使用递归方法执行此操作,我们可以创建一个简单地“分层”这些特征的 HTML 铭文。我们为此提出的第一种方法是字面上只使用多个相互堆叠的 <img> 元素。
这里的问题是图层加载的时间不同,当你右键单击以保存图像时,你只会保存顶层。不太好,那么我们该怎么办?
HTML <canvas> 元素用于通过 JavaScript 动态绘制图形。这非常适合我们的用例,因为我们也可以使用递归来共享我们在整个集合中需要的任何 JS 逻辑。
这是递归铭文的最终 HTML:
<html>
<body style="margin: 0;padding: 0">
<script src="/content/b52f97a91555acce06f7cc1b42455a2b785be3a5cd3f4351b5358d1591690e2ei0"></script>
<canvas id="canvas" style="width: 100%; height: auto;" width="2500" height="2500"></canvas>
<script>
draw(document.getElementById('canvas'), [\
"/content/e8ef7b28630fed165dad3acda08db5f089dfcf1bd005086abbf4c078958ccfb4i0",\
"/content/87f9c8d7b99734816346cbe942ca6709e64a49278026b1e1345bf751468ae267i0",\
"/content/0f27fcbaf43f17a39320af2d0cfc85fc4293d300f5bf932c1eb96b942f7a022ci0",\
"/content/cb692d0b3c306ee0d129b0903106571b6e98c17d5c75e266c0207d103b042be5i0"]
);
</script>
</body>
</html>
正如你所看到的,只需几行代码,我们就可以提取我们需要的所有必要元素,并输出看起来与最终数字艺术作品完全相同的副本。
在上面的例子中,javascript 逻辑也被提取到铭文中,从而节省了最终 HTML 上的更多空间。该脚本有一个 draw 函数,它接受一个 canvas 元素和一个铭文链接数组。它将首先加载所有图像层,然后绘制 canvas,这很棒,因为它确保用户只看到完整图像,而不是一次加载一个特征。
最终结果是 canvas 元素中的展平图像。这里的美妙之处在于它像普通图像一样工作,可以像图像一样调整大小,你甚至可以右键单击并保存!
看看这个:https://ordinals.com/inscription/3ab3d8dcd31cc8db0f0feaf2373c444697aae275a108ba72615c93de5ebcc4f8i0
最终的 HTML 文件只有 621 字节!如果你查看铭文的内容,它仍然是链接特征的完整大小,2500x2500 像素。你现在可以通过简单地将 JSON 中的属性/特征映射到链接的特征铭文 ID,根据集合元数据生成大量这些 HTML 文件。
现在是在比特币上构建的激动人心的时刻,递归 Ordinals 为该领域带来的这个新维度肯定会再次引发创新和创造力的爆发!
- 原文链接: ordinalsbot.medium.com/r...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!