把文件存入 XRP Ledger

代币的图片或任何其他文件,写入与代币相同的账本,读取时按指纹校验。

把你的文件写入账本的 Windows 应用。

立方体显示一个真实文件的分片是如何从账本中读取的。每个数据块都按指纹校验通过后,文件本身会出现在它们旁边。

指向元数据的链接会失效

当 NFT、MPT、DID 或凭证把图片和描述存放在账本之外时,账本中的条目只保存一个链接。文件则放在 IPFS 上、发行方自己的服务器上或 S3 存储桶中。

  • 未固定(pin)的 IPFS固定服务停止付费后,文件就会从 IPFS 中消失。
  • 服务器关闭公司关闭或搬迁后,原地址只会返回错误。
  • 存储桶被关闭存储账户被关闭,文件也随之消失。

这个条目会一直留在账本里,但链接背后的文件可能丢失。使用 xrpl-file 时,文件被写入同一个账本,写入文件的交易无法修改或删除,任何人都可以按指纹校验文件,无需信任任何服务器。xrpl-file 链接为 84 字节,而 NFT 的 URI 字段可容纳 256 字节。

从文件到链接,再回到文件

  1. 左边是一个文件,右边是它被切成的分片,用方格表示。

    切成分片

    文件被切成若干块,每块 1000 字节,称为分片。

  2. 三个分片,每个放在各自的交易里。

    写成交易

    每个分片写入各自的交易,放在备注(Memo)字段中。

  3. 两组分片,每组归结为一个哈希。两个哈希都指向同一份清单。

    生成指纹

    每 1024 个分片组成一个数据块,数据块的哈希进入数据块列表。最后一笔交易称为清单,其中保存整个列表的指纹。这笔交易的哈希就是链接。

  4. 由已校验的分片组成的方格,拼成一幅图片。

    读取并校验

    任何拿到链接的人都可以从 XRP Ledger 节点取得分片,拼出文件,并按指纹校验每个数据块。与指纹不符的文件不会显示。本站服务器不参与这一过程。

费用

文件写入账本时,大约每千字节对应一笔交易,由应用中的发布账户发送。一个账户可以发布任意数量的文件,不再需要时,由应用将其关闭。费用分为两类。手续费会被花掉。账户存在期间,其储备金被锁定;账户关闭后,其中大部分会退回。

价格表目前无法显示。数据也可以在数据文件 price.json 中查看。

永久且公开

无法删除

写入账本的内容会一直留在那里。任何人都无法删除或修改,你和我们也一样。

任何人都能读取

任何人都可以读取这个文件。账本上的数据对所有人公开,链接也不是秘密。

只发布你愿意永久向全世界公开的内容:不要发布密码、个人信息,或你无权分享的图片。

面向开发者

格式由规范描述。代码仓库中有 .NET 库和供浏览器使用的读取器。

在你的页面中显示文件

添加脚本和元素即可。脚本固定在 1.2.0 版本,并通过 integrity 值校验:文件一旦改变,浏览器就不会执行它。

来自 npm,经由 jsDelivr

<script src="https://cdn.jsdelivr.net/npm/xrpl-file-element@1.2.0/xrpl-file-element.js"
        integrity="sha384-3Ng6D0oyDdNcgbs1hTua5zQaHdn4E/3o7gnxr0ecp2jVh2kP2KbJymnO++iWWvP+"
        crossorigin="anonymous" defer></script>
<xrpl-file src="xrpl-file://mainnet/9B1A9E33DBD9B445BFE2854D4D489DC860869D873AD36DA30A69DD19DDBC0DF5"></xrpl-file>

width 和 height 设置尺寸,loading 指定何时开始读取,theme 选择浅色或深色配色,node 指定读取所用的节点。完整列表见 README:嵌入文件。