FROM:https://docs.blockstack.org/core/naming/creationhowto.html
创建一个命名空间
创建命名空间有四个步骤:
1.发送NAMESPACE_PREORDER事务(实例)。这是第一步。这将用BNS节点注册名称空间的咸散列,并燃烧必要数量的加密货币。此外,它还向BNS节点证明,用户通过在事务中包含最近的共识散列,已经遵守了BNS一致规则(有关详细信息,请参阅BNS fork一节)。
2.发送NAMESPACE_REVEAL事务(实例)。这是第二步。这将显示salt和命名空间ID(将其与NAMESPACE_PREORDER配对),它将显示命名空间中的名称在过期之前或必须更新之前的持续时间,并为名称空间设置price函数,该函数确定命名空间的名称有多便宜或多昂贵。price函数接受此命名空间中的名称作为输入,并输出名称将花费的加密货币数量(即通过检查名称的长度,以及它是否有元音或非字母表字符)。命名空间创建者可以通过设置命名空间创建者地址来收取命名空间存在第一年的注册费用。
3.使用NAME_IMPORT事务为命名空间播下种子(实例)。一旦显示了命名空间,用户就可以选择用一组名称填充它。每个导入的名称都有一个所有者和一些off-chain状态。这一步是option - namespace创建者不需要导入名称。
4.发送NAMESPACE_READY事务(实例)。这是这个过程的最后一步。它启动命名空间,使其对公众可用。一旦名称空间就绪,任何人都可以在其中注册一个名称,只要他们支付了适当数量的加密货币(根据步骤2中显示的price函数)。
NAMESPACE_PREORDER/NAMESPACE_REVEAL配对的原因是为了防止出现争用。BNS共识规则要求NAMESPACE_REVEAL与在过去24小时内发送的以前的NAMESPACE_PREORDER匹配。如果它不这样做,那么恶意的参与者就可以监视区块链网络,并与受害者争用一个命名空间。
命名空间是在先到先得的基础上创建的。如果两个人试图创建相同的命名空间,成功确认NAMESPACE_PREORDER和NAMESPACE_REVEAL的人将获胜。在NAMESPACE_PREORDER中消耗的费用以两种方式使用。
一旦用户发出NAMESPACE_PREORDER和NAMESPACE_REVEAL,他们必须在一年之前发送NAMESPACE_READY事务。如果它们不这样做,那么它们创建的命名空间就会消失(以及它们导入的所有名称)。
希望创建自己的命名空间的开发人员应该阅读命名空间创建部分文档。强烈建议开发人员在创建自己的空间之前请求单独的支持,因为涉及大量加密货币。
网友评论