如何申明一个域名
如果您在现有的根域中拥有一个域名,或者在Alexa前10万中拥有一域名, 或者您通过商标声明保留了您的名称,那么它将在区块链上等待您的到来。 您可以通过发布DNSSEC所有权证明来声明所有权-您在ICANN系统上拥有域名的加密证明。
您的姓名必须具有有效的DNSSEC设置才能创建声明。 如果您没有设置DNSSEC,请不必担心–您可以在Handshake区块链启动后进行设置,并且仍然可以追溯接受证明。 这是一些在流行的DNS服务上设置DNSSEC的指南:
- Namecheap: https://www.namecheap.com/support/knowledgebase/subcategory.aspx/2232/dnssec
- GoDaddy: https://www.godaddy.com/help/dnssec-faq-6135
- Gandi: https://wiki.gandi.net/en/domains/dnssec
- Name.com: https://www.name.com/support/articles/205439058-Managing-DNSSEC
- Hover: https://help.hover.com/hc/en-us/articles/217281647-Understanding-and-managing-DNSSEC
- Cloudflare: https://support.cloudflare.com/hc/en-us/articles/209114378
如果您运行自己的域名服务器,则将需要一些工具来管理密钥和签署区域文件。BIND有许多用于完成此操作的命令行工具:
- https://linux.die.net/man/8/dnssec-keygen
- https://linux.die.net/man/8/dnssec-dsfromkey
- https://linux.die.net/man/8/dnssec-signzone
先决条件
本指南假定您具有正在运行的 hsd 节点,
并已使用 selectwallet rpc方法选择将控制您的域名的钱包。
否则,以下说明将把您的姓名控制权分配给钱包default
帐户中的密钥初始(primary)
钱包。首次启动节点时,将自动生成此钱包和帐户。
该api文档介绍了如何安装,配置以及如何使用hs-client与你的节点和钱包如何交互。
有关如何配置hsd节点的特定信息,请参阅本指南。
有关使用水龙头助记符设置钱包的特定信息,请参阅本指南。有关创建钱包的一般信息,请查看此文档。
声明您的域名
首先,我们需要创建一个TXT记录,该记录将在我们的区域中签名(以example.com为例):
$ hsw-cli rpc createclaim example{"name": "example","target": "example.com.","value": 1133761643,"size": 957,"fee": 19140,"block": "fb89a649e4667d8ffc4ce105faec7872ef47e0ce0e60a6a9e58e0b7cc3bb6147","address": "rs1qz588tmrclt4x2v48nu4ty2dnyenusul8q5djcj","txt": "hns-claim:qnPxvMRKAAAAAAAA+4mmSeRmfY/8TOEF+ux4cu9H4M4OYKap5Y4LfMO7YUcAFBUOdex4+uplMqefKrIpsyZnyHPn"}
txt
字段是必须的:该字段包括对与该域名相关联的handshake地址的承诺,以及我们愿意向矿工支付的挖矿费用。
该TXT记录必须添加到我们域名的区域文件中并签名:
...example.com. 1800 IN TXT "hns-claim:qnPxvMRKAAAAAAAA+4mmSeRmfY/8TOEF+ux4cu9H4M4OYKap5Y4LfMO7YUcAFBUOdex4+uplMqefKrIpsyZnyHPn"example.com. 1800 IN RRSIG TXT 5 2 1800 20190615140933 20180615131108 ...
TXT记录的RR名称(example.com.在这种情况下)必须等于target输出字段中显示的名称createclaim(注:不区分大小写)。 请注意,DNSSEC所有权证明是DNSSEC证明的更严格的子集:您的父区域必须通过一系列典型的DS->DNSKEY引用进行操作。 不允许使用CNAME或通配符,并且每个标签分隔符(.)的行为都必须像区域切割(带有适当的子区域引用)。
签署我们的TXT记录的ZSK必须由我们区域的KSK签署。按照典型的DNSSEC设置,必须在父区域中将我们区域的KSK提交为DS记录。
一旦我们的证明在DNS层上发布,我们就可以用 sendclaim
命令搜寻相关区域并创建证明。
$ hsw-cli rpc sendclaim example
这将创建证明并将其广播给您的所有连接节点,最终到达矿工的内存池。您的申明应在5-20分钟之内完成。 一旦被打包,您必须等待 4,320 个区块(约30天),才能将您的申明视为“成熟”。
手动创建证明
如果您已经有DNSSEC设置,则可以通过在本地创建证明来避免公开发布TXT记录。 这要求您可以直接访问区域签名密钥。私钥本身必须以BIND的私钥格式(v1.3)和命名约定存储。 [bns]可用于完成此任务,其中包括用于创建所有权证明的命令行工具。
$ npm install bns$ bns-prove -x -K /path/to/keys example.com. \'hns-claim:qnPxvMRKAAAAAAAA+4mmSeRmfY/8TOEF+ux'
上面将输出一个十六进制字符串,然后可以将其传递给RPC:
$ hsd-cli rpc sendrawclaim 'hex-string'