Handshake资源记录指南
Handshake具有代表DNS资源记录的记录。
其中一些与DNS资源记录类型一对一映射,而另一些则没有。
这些资源记录包含在 REGISTER
或 UPDATE
中输出并写入到 Urkel tree中,以便可以向轻客户提供证明。
每个Handshake域名存储一个单独的 Resource
,最大为512字节。
更新资源记录
要更新域名的资源记录,请使用钱包的RPC命令 sendupdate
。
如果域名与主钱包不在同一个钱包中,请首先使用调用 selectwallet
,然后再发送更新。
在尝试发送更新之前,可以使用节点RPC方法 verifyresource
检查资源是否有效。
$ hsw-cli rpc sendupdate easyhandshake '{"records": []}'
请注意,records此示例中未包含任何内容。在赢得竞标后第一次调用 sendupdate
时,将创建一个寄存器输出和一个更改输出,其中包括用户出价与第二高出价之间的差额。
使用节点RPC getnamesource
查看名称的资源。新更新的名称不会通过DNS反映它们的记录,直到tree inverval被传递(每36个块发生一次)。
资源记录类型
DS
NS
GLUE4
GLUE6
SYNTH4
SYNTH6
TXT
DS
该DS
Handshake资源记录与DNS DS
资源记录相同。
它用于DNSSEC,并在RFC 4033,
RFC 4034
和RFC 4035中指定。
其目的是通过在父区域和子区域之间创建身份验证链来实现区域的安全委派。
该DS记录包含 DNSKEY
资源记录的哈希。它被插入到父区域中,而 DNSKEY
记录被插入到子区域中。Handshake DS
记录必须包含的字段
type
,keyTag
,algorithm
,digestType
和 digest
。有关这些字段的定义,请参见RFC 4034。
例子:
{"records": [{"type": "DS","keyTag": 24620,"algorithm": 8,"digestType": 2,"digest": "297595dc199b947aa8650923619436fbdfd99fd625195111ab4efe950900cade"}]}
NS
该 NS
Handshake记录与DNS NS
是一样的资源记录。
它用于将名称的授权委托给权威的域名服务器。
在RFC 1035中指定。
Handshake NS
记录必须包含的字段 type
和 ns
。
该ns字段必须是完全合格的域名,包括结尾点。该 ns
名称通过ICANN解析时很有用,但也可以将权限委派给以Handshake为根的名称。
例子:
{"records": [{"type": "NS","ns": "ns1.easyhandshake.org."}]}
GLUE4
GLUE4
Handshake资源记录对应于两个DNS资源记录,
一个 NS
记录和 A
记录。该 A
记录用作胶水。A记录在RFC 1035中定义,
并且必须包含IPv4地址。 Handshake GLUE4
记录必须包含字段 type
,ns
以及 address
。
这对于设置权威的名称服务器来管理Handshake域名的子域很有用。
该地址字段将作为 A
记录包含在DNS响应的附加部分中。
例子:
{"records": [{"type": "GLUE4","ns": "ns1.bitcoin.hat.","address": "172.21.0.08"}]}
在此处使用 GLUE4
记录设置了名称 easyhandshake
。
$ hsd-cli rpc getnameresource easyhandshake{"records": [{"type": "GLUE4","ns": "ns1.coop.easyhandshake.","address": "127.0.1.1"}]
这表示有一个名为 ns
的权威名称服务器 ns1.coop.easyhandshake
。
仅此名称对客户端没有用,它还需要该名称的IP地址。
IP地址在所谓的glue记录中。对于handshake GLUE4
记录,A
用作glue的记录。glue记录的名称为 ns
,IPv4地址为address
。
它将通过如下所示的权威名称服务器进行解析:
$ dig @127.0.0.1 -p 25349 easyhandshake; <<>> DiG 9.16.2 <<>> @127.0.0.1 -p 25349 easyhandshake; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31231;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 2;; WARNING: recursion requested but not available;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;easyhandshake. IN A;; AUTHORITY SECTION:easyhandshake. 21600 IN NS ns1.coop.easyhandshake.;; ADDITIONAL SECTION:ns1.coop.easyhandshake. 21600 IN A 127.0.1.1;; Query time: 0 msec;; SERVER: 127.0.0.1#25349(127.0.0.1);; WHEN: Wed May 13 22:23:11 PDT 2020;; MSG SIZE rcvd: 81
在127.0.1.1
上设置权威域名服务器,该区域提供的资源记录现在可以通过handshake递归解析器使用。
GLUE6
该 GLUE6
handshake资源记录对应于两个DNS资源记录,一个 NS
记录和 AAAA
记录。
该 AAAA
记录用作 glue
。AAAA
记录在 RFC 1035中定义,
并且必须包含IPv6地址。handshake GLUE6
记录必须包含的字段 type
,ns
以及 address
。
这对于设置权威的名称服务器来管理handshake域名的子域很有用。该地址字段将作为 AAAA
记录包含在 DNS
响应的其他部分中。
例子: { "records": [{ "type": "GLUE6", "ns": "ns1.bitcoin.lawl.", "address": "9530:f7fb:dc28:c1a3:d17f:d3f0:b875:aba8" }] }
IPv6的配置与GLUE4相同。
TXT
该 TXT
handshake资源记录对应的DNS TXT
记录。
它用于存储任意数据,并且在此基础之上构建了许多协议。TXT
记录在RFC 1035
中定义。它对于在链上放置任意数据非常有用。handshake TXT记录必须包含的字段 type
和text
。该 text
字段必须是字符串数组。
例子:
{"records": [{"type": "TXT","text": ["my text record"]}]}
在 easyhandshake
这里设置了两个 TXT
记录的名称。
{"records": [{"type": "TXT","txt": ["imagine if gold turned to lead when stolen, if thief gives back, it turns to gold again"]},{"type": "TXT","txt": ["proof of","work speaks","for itself"]}]}
它将通过权威名称服务器和递归名称服务器进行解析,如下所示:
$ dig @127.0.0.1 -p 25349 easyhandshake TXT; <<>> DiG 9.16.2 <<>> @127.0.0.1 -p 25349 easyhandshake TXT; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8003;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; WARNING: recursion requested but not available;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;easyhandshake. IN TXT;; ANSWER SECTION:easyhandshake. 21600 IN TXT "imagine if gold turned to lead when stolen, if thief gives back, it turns to gold again"easyhandshake. 21600 IN TXT "proof of" "work speaks" "for itself";; Query time: 3 msec;; SERVER: 127.0.0.1#25349(127.0.0.1);; WHEN: Wed May 13 22:59:28 PDT 2020;; MSG SIZE rcvd: 186