美文网首页blockstackblockstack-Trans
naming-How to use BNS-Register a

naming-How to use BNS-Register a

作者: 空乱木 | 来源:发表于2019-08-06 10:48 被阅读0次

    FROM : https://docs.blockstack.org/core/naming/register.html

    本节解释注册BNS名称,并为您可以用来理解命名空间注册成本的方法提供说明。

    了解注册
    查询名字登记费(参考资料)
    获取当前共识散列(引用)
    注册一个名字

    了解注册

    注册一个BNS名称需要使用加密货币。这项费用有两个来源:

    • Transaction fees:这是存储到区块链本身的事务数据的成本所产生的费用。它们独立于BNS,因为区块链的所有用户都在竞争将其事务包含在下一个块中。区块链的矿商收取交易费。

    -Registration fees:每个BNS名称空间对一个名称的成本收取额外的费用。注册费用在名称空间存在的第一年发送到名称空间创建者,然后发送到burn地址。每个名称的注册费不同,由名称空间本身决定,但是用户可以提前查询。

    注册一个名称需要两个事务。它们是:

    • NAME_PREORDER事务:这是要发送的第一个事务。它告诉所有BNS节点BNS名称的咸散列,并将注册费支付给名称空间所有者的指定地址(或burn地址)。此外,它还通过在事务中包含最近的一致散列向BNS节点证明客户端知道系统的当前状态(有关详细信息,请参阅BNS fork一节)。

    • NAME_REGISTRATION事务:这是要发送的第二个事务。它向所有BNS节点显示salt和名称,并为名称分配初始公钥散列和区域文件散列

    这个过程需要两个事务的原因是为了防止提前运行。BNS共识规则规定,只有在其匹配的预订交易在过去24小时内发送时,才能注册名称。因为一个名字之前必须收到注册,有人看区块链的对等网络不能种族受害者宣称他们试图注册名称(即攻击者需要先发送NAME_PREORDER事务,并将不得不在24小时前发送它)。

    名称以先到先得的方式登记。如果两个不同的人试图同时注册相同的名字,最先完成这两步流程的人将收到这个名字。另一个人的NAME_REGISTRATION事务将被忽略,因为此时它将被认为无效。由NAME_PREORDER支付的注册费将会丢失。然而,这种情况在实践中很少见——截至2018年初,我们只知道该系统在3年多的运行中有一个被证实的实例。

    全限定名的长度可以在3到37个字符之间,由字符a-z、0-9、+、-、_和..这是为了防止同伦攻击。不符合此要求的NAME_REGISTRATION事务将被忽略。

    查询名字登记费(参考资料)

    $ curl -sL https://core.blockstack.org/v1/prices/names/helloworld.id | jq -r ".name_price"
    {
    "btc": 2.5e-05,
    "satoshis": 2500
    }

    注意使用jq -r选择“name_price”字段。这个API端点可能返回关于交易费用估计的其他辅助数据,但这是该规范保证出现的惟一字段。

    获取当前共识散列(引用)

    $ curl -sL https://core.blockstack.org/v1/blockchains/bitcoin/consensus
    {
    "consensus_hash": "98adf31989bd937576aa190cc9f5fa3a"
    }

    共识散列必须包含在NAME_PREORDER事务中。BNS客户端自动执行此操作。有关如何在事务中包含此内容的详细信息,请参阅事务格式文档。

    注册一个名字

    注册通过BNS客户端进行,例如Blockstack浏览器或Blockstack .js。参考BNS客户端管理一个本地比特币钱包,动态自动计算交易费用,并在正确的时间广播NAME_PREORDER和NAME_REGISTRATION交易。

    如果您想创建自己的注册客户端,您应该看到事务格式文档。

    相关文章

      网友评论

        本文标题:naming-How to use BNS-Register a

        本文链接:https://www.haomeiwen.com/subject/mbxidctx.html