规则(子领域及DMINT)
子领域和 NFT 物品的铸造规则概述(通过 DMINT 即去中心化铸造方式)。
子领域和 NFT 物品可以在遵守父领域所有者或 NFT 容器创建者所制定的 rules
规则下,通过DMINT(去中心化铸造)方式被铸造(或称为“认领”)。
NFT 物品/子领域的认领可以单独通过工作量证明(Bitwork)完成;也可以通过向指定的一组输出地址支付一定数量的聪,或支付 ARC20 代币 来实现;或者通过结合这两种方式,即要求完成工作量证明同时向指定地址支付(聪或 ARC20 代币)来认领 NFT 物品/子领域。
规则数据结构格式
在 dmint
(针对容器的规则设置)部分和领域的 subrealms
部分中,规则设置是一致的,采用相同的语法和语义结构。
为了展示规则的应用,我们将从构建简单的示例开始,并逐步增加其复杂度。
警告:所采用的正则表达式标准遵循 Python 3.9 版本。这意味着所有的正则表达式模式都会在“完整字符串模式”下进行匹配——即匹配过程始终从字符串的开头到结尾,无论是否使用了 ^
或 $
。
示例 1:铸造申领仅需完成 Bitwork 工作量证明
此示例要求通过在承诺交易中完成 Bitwork 工作量证明(bitworkc
)来铸造申领,即需要在交易中展示一定的计算工作。模式 "p": ".*"
表示可以匹配任何子领域名称或任何 dmint 项目ID。此时,唯一的“支付”要求是在承诺交易时使用 "bitworkc": "1234"
进行必要的计算工作以完成铸造。
{
"rules": [
{
"p": ".*",
"bitworkc": "1234"
}
]
}
示例 2:铸造申领需同时完成 Bitworkc 和 Bitworkr 工作量证明
此示例要求通过在承诺交易中完成 Bitwork 工作量证明(bitworkc
)来铸造申领,并且在揭示交易中也需要完成额外的 Bitwork 工作量证明(bitworkr
)。模式 "p": "."
表示可以匹配任何子领域名称或任何 dmint 项目ID。所需的“支付”形式是项目在承诺交易时必须通过 "bitworkc": "1234"
完成相应的计算工作来进行铸造。此外,揭示交易还必须满足 "bitworkr": "8888.10"
的工作量证明要求,这意味着交易的哈希值需要以 "8888.*"
开头,并且其第五个十六进制字符需要大于或等于 "a"
(即十六进制的10)。
{
"rules": [
{
"p": ".*",
"bitworkc": "1234",
"bitworkr": "8888.10"
}
]
}
示例 3:根据项目名称设置不同的 Bitworkc 难度
在这个示例中,我们规定如果项目名称以数字 "0"
开头,或者名称以 .gif
结尾,那么所需的 Bitwork 难度将会增加大约 16 倍(这意味着将需要 16 倍的 CPU/GPU 计算能力来完成挖矿)。
{
"rules": [
{
"p": "^0|\.gif$",
"bitworkc": "77777"
},
{
"p": ".*",
"bitworkc": "7777"
}
]
}