Ordinals项目中的委托铭文机制解析
ord 👁🗨 Rare and exotic sats 项目地址: https://gitcode.com/gh_mirrors/or/ord
什么是委托铭文
在Ordinals协议中,委托铭文(Delegate Inscription)是一种特殊的铭文机制,它允许一个铭文(I)指定另一个铭文(D)作为其内容代理。当用户请求查看铭文I的内容时,系统会返回被委托铭文D的内容、内容类型和编码方式。这种机制为创建低成本的内容副本提供了可能。
技术实现原理
基本工作流程
- 创建委托关系:铭文I通过特定标签指定铭文D作为其委托对象
- 内容获取:当请求铭文I的内容时,系统会:
- 检查委托关系
- 返回铭文D的内容及相关元数据
- 存在性检查:如果被委托的铭文D尚未创建,请求将返回404错误
技术规范细节
要创建一个带有委托的铭文I,需要遵循以下步骤:
- 准备被委托铭文D:首先需要创建或确定将被委托的铭文D。值得注意的是,铭文D可以在铭文I之后创建。
- 设置委托标签:在铭文I中包含标签
11
(即OP_PUSH 11
):- 标签值为被委托铭文D的序列化ID
- ID序列化格式为:32字节的交易ID + 4字节小端序的INDEX
- 可以省略末尾的零字节
重要提示:交易ID的字节顺序与其文本表示形式相反,因此在序列化时需要特别注意字节顺序的转换。
实际应用示例
假设我们要创建一个委托给特定ID铭文的委托铭文,其ID为: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi0
对应的脚本实现如下:
OP_FALSE
OP_IF
OP_PUSH "ord"
OP_PUSH 11
OP_PUSH 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
OP_ENDIF
关键点说明:
- 标签
11
的值是十进制表示,而非十六进制 - 委托字段的编码方式与父字段相同
- 交易ID部分需要特别注意字节顺序的反转
应用场景与优势
- 低成本复制:通过委托机制可以创建多个指向同一内容的铭文,而无需重复存储实际内容
- 内容更新:通过更新被委托的铭文,可以间接更新所有委托它的铭文内容
- 节省空间:特别适合需要大量相同内容但不同标识的场景
注意事项
- 委托链:避免创建循环委托链(A委托B,B又委托A)
- 存在性验证:确保被委托的铭文最终会被创建,否则委托铭文将无法正常使用
- 字节顺序:交易ID的字节顺序处理是常见错误来源,需要特别注意
委托铭文机制为Ordinals协议提供了更灵活的内容管理方式,开发者可以利用这一特性构建更复杂的内容引用体系,同时保持链上存储的高效性。
ord 👁🗨 Rare and exotic sats 项目地址: https://gitcode.com/gh_mirrors/or/ord
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考