CN108429765B - 基于区块链实现域名解析的方法、服务器和存储介质 - Google Patents

基于区块链实现域名解析的方法、服务器和存储介质 Download PDF

Info

Publication number
CN108429765B
CN108429765B CN201810523849.5A CN201810523849A CN108429765B CN 108429765 B CN108429765 B CN 108429765B CN 201810523849 A CN201810523849 A CN 201810523849A CN 108429765 B CN108429765 B CN 108429765B
Authority
CN
China
Prior art keywords
domain name
operation request
node
super
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810523849.5A
Other languages
English (en)
Other versions
CN108429765A (zh
Inventor
濮灿
陈松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810523849.5A priority Critical patent/CN108429765B/zh
Publication of CN108429765A publication Critical patent/CN108429765A/zh
Application granted granted Critical
Publication of CN108429765B publication Critical patent/CN108429765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于区块链实现域名解析的方法、区块链DNS网络中的服务器、区块链DNS网络系统和计算机可读存储介质。基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,超级节点执行如下步骤:每个超级节点上均存储完整的用于记录历史域名操作信息的区块链;当接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;在担任区块提交者的任期内,负责产生区块,将通过验证的域名操作请求记录到区块中,将区块打包并附加到区块链上;收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理。避免现有技术中出现的域名无法正确解析的情况,提高域名解析安全性,提高域名解析的效率。

Description

基于区块链实现域名解析的方法、服务器和存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种基于区块链实现域名解析的方法、区块链DNS网络中的服务器、区块链DNS网络系统、服务器和计算机可读存储介质。
背景技术
DNS(Domain Name System,域名系统),是作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。当用户访问一个IP地址时,就可以通过域名解析,得到该域名对应的IP地址。
现有技术中,DNS服务器可以完成对域名的解析,DNS服务器分为根域名DNS服务器、顶级域名DNS服务器、二级域名DNS服务器等。当本地的 DNS服务器接收的一个域名解析请求时,在本地缓存没有该域名的情况下,会首先向根域名DNS服务器发送请求,以得到对应的顶级域名DNS服务器的IP地址,然后向对应的顶级域名DNS服务器发送请求,得到对应二级域名DNS服务器的IP地址,再向对应的二级域名DNS服务器发送请求,直至得到与该完整域名对应的服务器IP地址。
可知,现有技术中的上述“层级式”的域名解析模式中每层的服务器都管理着相应的下一级服务器的所有域名信息,一旦相应的服务器被恶意攻击或篡改,则该服务器相应的下一级域名则无法得到解析,出现用户无法访问的情况,或者出现访问不到正确的地址的情况,也就是说,现有技术中的域名解析模式存在安全隐患;而且,通过上述的“层级式”的域名解析,需要本地DNS服务器逐级发送请求,即进行递归查询,影响域名解析的效率,使得访问速度慢。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于区块链实现域名解析的方法、区块链DNS网络中的服务器、区块链DNS网络系统、服务器和计算机可读存储介质。
根据本发明的一个方面,提供了一种基于区块链实现域名解析的方法,其中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,该方法包括由超级节点执行的如下步骤:
每个超级节点上均存储完整的用于记录历史域名操作信息的区块链;
当一个超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;
一个超级节点在担任区块提交者的任期内,负责产生区块,将通过验证的域名操作请求记录到区块中,将区块打包并附加到区块链上;
当一个超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。
可选地,所述对该域名操作请求进行验证包括:
如果该域名操作请求是针对指定域名的修改或删除操作,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;
如果该域名操作请求是新增域名的操作,则判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
可选地,所述对该域名操作请求进行验证还包括如下中的一种或多种:
验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;
验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
可选地,
每个全节点上均存储完整的用于记录历史域名操作信息的区块链;
超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;
组成超级节点委员会的各超级节点依次担任区块提交者;
当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
可选地,
超级节点担任区块提交者的时间长度与其所持票数成正比。
可选地,该方法还包括:
一个超级节点在担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
可选地,所述域名信息存储系统为星际文件系统IPFS。
根据本发明的另一方面,提供了一种基于区块链实现域名解析的方法,其中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,该方法包括由全节点执行的如下步骤:
每个全节点上均存储完整的用于记录历史域名操作信息的区块链。
可选地,
全节点包括传统DNS网络中的权威DNS服务器。
根据本发明的又一个方面,提供了一种基于区块链实现域名解析的方法,其中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,每个全节点以及每个超级节点上均存储完整的用于记录历史域名操作信息的区块链,该方法包括由轻节点执行的如下步骤:
当轻节点接收到请求者发送域名解析请求时,将域名解析请求发送给超级节点;
轻节点将超级节点返回的域名解析结果发送给请求者。
可选地,该方法还包括由轻节点执行的如下步骤:
对区块链DNS网络中的全节点进行投票,以选举出超级节点。
可选地,
轻节点包括传统DNS网络中的递归DNS服务器;
或者,
轻节点包括传统DNS网络中的权威DNS服务器和/或递归DNS服务器。
根据本发明的再一个方面,提供了一种区块链DNS网络中的服务器,其中,该服务器作为超级节点与轻节点和全节点共同基于区块链技术组成区块链DNS网络,该服务器包括:
存储单元,适于存储完整的用于记录历史域名操作信息的区块链;
验证单元,适于当本超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;
区块处理单元,适于在本超级节点在担任区块提交者的任期内,产生区块,将通过验证的域名操作请求记录到区块中,以及将区块打包并附加到区块链上;
域名解析单元,适于在本超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。
可选地,
所述验证单元,适于当该域名操作请求是针对指定域名的修改或删除操作时,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;以及适于当该域名操作请求是新增域名的操作时,判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
可选地,所述验证单元还适于通过以下的一种或多种方式对该域名操作请求进行验证:
验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;
验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
可选地,
每个全节点上均存储完整的用于记录历史域名操作信息的区块链;
超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;
组成超级节点委员会的各超级节点依次担任区块提交者;
当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
可选地,
超级节点担任区块提交者的时间长度与其所持票数成正比。
可选地,
区块处理单元,适于在本超级节点担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
可选地,所述域名信息存储系统为星际文件系统IPFS。
根据本发明的再一个方面,提供了一种区块链DNS网络中的服务器,其中,该服务器作为全节点与轻节点和超级节点共同基于区块链技术组成区块链DNS网络,该服务器包括:
存储单元,适于存储完整的用于记录历史域名操作信息的区块链。
可选地,
该服务器为传统DNS网络中的权威DNS服务器。
根据本发明的再一个方面,提供了一种区块链DNS网络中的服务器,其中,该服务器作为轻级节点与全节点和超级节点共同基于区块链技术组成区块链DNS网络,该服务器包括:
接收单元,适于在接收到请求者发送域名解析请求时,将域名解析请求发送给超级节点;
发送单元,适于将超级节点返回的域名解析结果发送给请求者。
可选地,该服务器还包括:
投票单元,适于对区块链DNS网络中的全节点进行投票,以选举出超级节点。
可选地,
该服务器为传统DNS网络中的递归DNS服务器;
或者,
该服务器为传统DNS网络中的权威DNS服务器或递归DNS服务器。
根据本发明的再一个方面,提供了一种区块链DNS网络系统,其中,该系统包括:
如前述的超级节点;
如前述的全节点;
以及如前述的轻节点。
根据本发明的再一方面,提供了一种服务器,其中,该服务器包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据前述的方法。
根据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现前述的方法。
根据本发明的技术方案,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,超级节点执行如下步骤:每个超级节点上均存储完整的用于记录历史域名操作信息的区块链;当一个超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;一个超级节点在担任区块提交者的任期内,负责产生区块,将通过验证的域名操作请求记录到区块中,将区块打包并附加到区块链上;当一个超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。可见,通过本技术方案,利用区块链网络的共识机制,区块链网络中的超级节点对域名操作请求进行验证,只有验证通过的域名操作请求才被记录并处理的,不容易被攻击或篡改,避免了现有技术中对一个服务器的域名进行操作而出现的域名无法正确解析的情况;而且,超级节点在接收到域名解析请求时,是直接通过查询域名信息存储系统进行域名解析,不需要逐级发送请求,无须通过“层级式”的域名解析方式进行域名解析,提高了域名解析的效率,进而提高的访问速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的区块链DNS网络的结构示意图;
图2示出了根据本发明一个实施例的基于区块链实现域名解析的方法的流程示意图;
图3示出了根据本发明又一个实施例的基于区块链实现域名解析的方法的流程示意图;
图4示出了根据本发明一个实施例的区块链DNS网络中的作为超级节点的服务器的结构示意图;
图5示出了根据本发明一个实施例的区块链DNS网络中的作为全节点的服务器的结构示意图;
图6示出了根据本发明又一个实施例的区块链DNS网络中的作为轻节点的服务器的结构示意图;
图7示出了根据本发明一个实施例的区块链DNS网络系统的结构示意图;
图8示出了根据本发明再一个实施例的服务器的结构示意图;
图9示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
对于区块链技术,狭义来讲,它是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,它是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。基于区块链技术的区块链网络有如下的特征:
开放性和共识性。任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的区块链数据拷贝。节点间基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。
去中心化和去信任。区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其它节点。
交易透明和双方匿名。区块链的运行规则是公开透明的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。
不可篡改和可追溯性。单个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。
本发明充分利用的区块链网络的上述特性,将其应用到DNS域名解析过程中,以解决现有技术的域名解析过程中出现的技术问题。具体来说,发明本实施例中,提供了一种基于区块链技术的区块链DNS网络,该区块链DNS 网络中的服务器分为轻节点、全节点和超级节点。其中,每个全节点上存储所有交易的整个交易历史,即完整的用于记录历史域名操作信息的区块链,因此占用较大的硬盘空间。每个轻节点不保存所有交易的完整副本,即不保存完整的用于记录历史域名操作信息的区块链,占用较小的硬盘空间。超级节点从全节点中产生,超级节点负责完成域名操作请求的验证,区块的生成和域名解析。图1示出了根据本发明一个实施例的区块链DNS网络的结构示意图。如图1所示,该区块链DNS网络100中包括超级节点1、全节点2和轻节点3,图1中的各超级节点1、各全节点2、各轻节点3之间都是建立通讯连接的,各超级节点1、各全节点2、各轻节点3组成了区块链DNS网络。
图2示出了根据本发明一个实施例的基于区块链实现域名解析的方法的流程示意图,从超级节点侧对本发明进行说明。本实施例中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,如图2 所示,由超级节点执行如下步骤:
步骤S210,每个超级节点上均存储完整的用于记录历史域名操作信息的区块链。
步骤S220,当一个超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去。
这里的域名操作请求可以是域名的新增、修改、删除。
步骤S230,一个超级节点在担任区块提交者的任期内,负责产生区块,将通过验证的域名操作请求记录到区块中,将区块打包并附加到区块链上。
本实施例中,将区块打包可以是在该超级节点将担任区块提交者的任期内的所以域名操作请求记录后在打包,也可以是根据预设频率(每隔2秒) 或者达到预设个数(100个)条的域名操作请求记录后进行打包。
步骤S240,当一个超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。
当域名操作请求通过验证后,相应的域名操作会被写入区块链,并且会根据该相应的域名操作修改域名信息存储系统中的域名信息,例如,一个域名操作请求是对指定域名的删除操作,在该域名操作请求通过验证后,会将该对指定域名的删除操写入区块链中,并且会将域名信息存储系统中相应的域名删除。根据被写入区块链的域名操作相应处理域名信息存储系统,使得域名信息存储系统中的域名信息与实际有效的域名操作之间形成映射关系,保证域名解析的正确性。另外,这里的进行域名解析处理包括:根据域名解析请求获取对应的IP地址,以及将获取的IP地址返回。这里,将IP地址返回可以包括两种情况,一种是域名解析请求来自区块链DNS网络的其他节点,且该域名解析请求中包括请求者的地址,或者,域名解析请求直接来自请求者,则将获取的IP地址直接返回给请求者;二是,域名解析请求来自区块链DNS网络的其他节点,但该域名解析请求中不包括请求者的地址,则将获取的IP地址返回给发送该域名解析请求的节点,由该节点返回给请求者。
在本发明的实施例中,由于区块链网络具有共识机制,是去中心化的,因此在对域名进行操作时,需要经过超级节点的验证,只有验证通过的操作才会被记录到区块链中,而且,这里的超级节点并非是固定的一群节点,是由轻节点对全节点进行选举而产生的,并且会进行换届选举,因此无法通过控制个别的超级节点进行域名操作,除非能控制整个网络中超过51%的超级节点,这几乎不可能发生,因此可以抵御如DDoS攻击,防止被劫持。又因为每个节点可以获得完整的数据库拷贝,即使其中一个节点被攻击或篡改,都不会影响其他节点的正常工作。这就不同于现有技术中的上级服务器管理下一级服务器的域名信息,一旦上级服务器被攻击或篡改,则相应的下一级域名无法解析,下一级服务器的地址无法获取的情况。可见,通过本实施例,域名信息不容易被攻击或篡改,避免了现有技术中对一个服务器的域名进行操作而出现的域名无法正确解析的情况,提高域名解析的安全性。
另外,超级节点在接收到域名解析请求时,是直接通过查询域名信息存储系统进行域名解析,不需要逐级发送请求,无须通过“层级式”的域名解析方式进行域名解析,提高了域名解析的效率,进而提高的访问速度。
同时,在超级节点中存储完整的用于记录历史域名操作信息的区块链,对域名的操作均可追溯到。
在本发明的一个实施例中,图2所示方法的步骤S220中的对该域名操作请求进行验证包括:如果该域名操作请求是针对指定域名的修改或删除操作,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;如果该域名操作请求是新增域名的操作,则判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
在本发明的实施例中,一个账户只能对自身账户下的域名信息进行相应的操作,而不能对其他账户的域名信息进行操作,实现组织或个人只管理自己的域名,其他人无法操作的效果,保证了域名信息的安全性和自主性。考虑到对域名的操作可以是修改、删除或增加的操作,在对域名进行修改或删除时,需要判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,判断为是,则验证通过,判断为否,则验证不通过;例如,账户1发送了对域名1的修改的请求,通过查询对应关系表发现,账户1对应的是域名2、域名3,不存在域名1,则验证不通过。在对域名进行增加时,则需要判断增加的域名与已有的域名是否重复,防止错乱的情况出现,如果判断为是,则验证不通过,如果判断为否,则验证通过,并将该域名与发送请求的账户建立对应关系并记录在对应关系表中。
进一步地,图2所示方法的步骤S220中的对该域名操作请求进行验证还包括如下中的一种或多种:验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
本实施例中,还需要对域名操作请求的数据格式和/或数字签名进行验证。数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定消息的完整性。因此,在验证时,还需要验证数字签名是否符合预设的签名条件,以防止非该账户本人已该账户的名义发送请求。
在本发明的一个实施例中,图2所示方法中所述的每个全节点上均存储完整的用于记录历史域名操作信息的区块链。这就使得该区块链DNS网络的有较高的容错性,其中一个全节点失效了,则其他的节点由于也存储有完成的区块链,则仍然能正常工作。
在本发明的一个实施例中,图2所示方法中,超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;组成超级节点委员会的各超级节点依次担任区块提交者;当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
共识机制是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认。在本发明的一个实施例中,可以采用DPoS共识机制,从全节点中选举出多个超级节点,组成超级节点委员会。考虑到区块提交者只需要其中一个超级节点即可,因此,超级节点委员会中的超级节点依次担任区块提交者。当该超级委员会中的超级节点依次担任完毕后,则重新投票选举新的超级节点委员会。
例如,区块链DNS网络中包括轻节点10000个,全节点1000个,轻节点对全节点进行投票,根据投票结果,从全节点中选取出前100个全节点作为超级节点,该100个超级节点组成超级节点委员会。这100个超级节点依次担任区块提交者。当这100个超级节点均担任过一次区块提交者后,则重新选举出新的超级节点委员会。
具体地,上述的超级节点担任区块提交者的时间长度与其所持票数成正比。
在上一个例子的基础上,100个超级节点中,预设其担任超级节点的任期是10天,该100个超级节点的得票总数是500,而且排名第一的超级节点的得票数是100,则该超级节点的得票率是20%,则其担任区块提交者的时间是10*20%,即2天;排名第二的超级节点的得票数是50,则该超级节点的得票率是10%,则其担任区块提交者的时间是10*10%,即1天。
在本发明的一个实施例中,图2所示的方法还包括:一个超级节点在担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
在本发明的实施例中,一个域名操作请求验证是否通过是由各超级节点的验证结果决定的,并非是单个超级节点所决定的,这也符合了该区块链 DNS网络的不可篡改性,这里的预定个数可以根据超级节点的总个数设定,例如是超级节点总个数的三分之二。例如,超级节点委员会中包括300个超级节点,其中有大于或等于三分之二,即大于或等于200个(例如250个) 超级节点的验证结果是验证通过,其他的超级节点的验证结果是验证不通过,则表示该域名操作请求通过验证;如果只有小于200个超级节点(例如150 个)的验证结果是验证通过,则表示该域名操作请求没有通过验证。
在图2所示方法中的域名存储系统中可以采用现有技术中的文件存储系统,例如,分布式文件系统。
优选地,域名信息存储系统为星际文件系统IPFS。
这里的星际文件系统(InterPlanetary File System,IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。
本发明还提供了一种基于区块链实现域名解析的方法,从全节点侧对本发明进行说明。本实施例中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,由全节点执行如下步骤:每个全节点上均存储完整的用于记录历史域名操作信息的区块链。
在本发明的实施例中,全节点上存储完整的用于记录历史域名操作信息的区块链,又因为本实施例是基于区块链技术,全节点上还需实现区块链技术的所有方法或步骤。
在本发明的一个实施例中,上述从全节点侧进行说明的基于区块链实现域名解析的方法中的全节点包括传统DNS网络中的权威DNS服务器。
权威DNS服务器是资源记录标记被指定为区域权威服务器的DNS服务器,通过在资源记录中列出DNS服务器,其他服务器就认为它(该列出的 DNS服务器)是该区域的权威服务器。这意味着在资源记录中指定的任何服务器都被其他服务器当作权威的来源(即被其他服务器当作权威服务器),并且能肯定应答区域内所含域名的查询,即在自己的配置文件(权威服务器的配置文件)中直接记录了域名与主机对应关系并被授权管理该域。
在本发明的实施例中,考虑到区块链DNS网络的开放性,基于组织与组织、组织与个人之见的开放性和协作性,全节点可以是传统DNS网络中的权威DNS服务器,为了可以利用权威DNS服务器中的域名信息资源,可以将权威DNS服务器作为该区块链DNS网络中的全节点加入到该区块链DNS 网络中,具体可以在权威DNS服务器中配置实现区块链技术的相应的功能模块,提供加入区块链DNS网络的接口。
图3示出了根据本发明又一个实施例的基于区块链实现域名解析的方法的流程示意图,从轻节点侧对本发明进行说明。本实施例中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,如图3 所示,由轻节点执行如下步骤:
步骤S310,当轻节点接收到请求者发送域名解析请求时,将域名解析请求发送给超级节点。
步骤S320,轻节点将超级节点返回的域名解析结果发送给请求者。
在本发明的实施例中,区块链DNS网络中的轻节点负责发起域名操作请求,当超级节点返回域名解析结果后,将域名解析结果返回给请求者。
在本发明的一个实施例中,图3所示的方法还包括由轻节点执行的如下步骤:对区块链DNS网络中的全节点进行投票,以选举出超级节点。
在本发明的实施例中,利用共识机制从全节点中选举中超级节点,这里担任选举的则是区块链DNS网络中的轻节点。
在本发明的一个实施例中,图3所示的方法中的轻节点包括传统DNS 网络中的递归DNS服务器;或者,轻节点包括传统DNS网络中的权威DNS 服务器和/或递归DNS服务器。
正如上文说明中,考虑到区块链DNS网络的开放性,基于组织与组织、组织与个人之见的开放性和协作性,轻节点包括传统DNS网络中的递归DNS 服务器;或者,包括传统DNS网络中的权威DNS服务器和/或递归DNS服务器。
也就是说,传统DNS网络中的递归DNS服务器、权威DNS服务器可以作为轻节点加入到该区块链DNS网络中,可以在权威DNS服务器或递归 DNS服务器中配置实现区块链技术的相应的功能模块,提供加入区块链DNS 网络的接口。具体地,权威DNS服务器预加入到该区块链DNS网络中时,可以进行选择,即选择作为全节点加入还是选择作为轻节点加入。而因为递归DNS服务器是负责发送域名解析请求的,其不保存完整的区块链数据的拷贝,则只能作为轻节点加入到区块链DNS网络中。
图4示出了根据本发明一个实施例的区块链DNS网络中的作为超级节点的服务器的结构示意图。如图4所示,该服务器400作为超级节点与轻节点和全节点共同基于区块链技术组成区块链DNS网络,该服务器400包括:
存储单元410,适于存储完整的用于记录历史域名操作信息的区块链。
验证单元420,适于当本超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去。
这里的域名操作请求可以是域名的新增、修改、删除。
区块处理单元430,适于在本超级节点在担任区块提交者的任期内,产生区块,将通过验证的域名操作请求记录到区块中,以及将区块打包并附加到区块链上。
本实施例中,将区块打包可以是在该超级节点将担任区块提交者的任期内的所以域名操作请求记录后在打包,也可以是根据预设频率(每隔2秒) 或者达到预设个数(100个)条的域名操作请求记录后进行打包。
域名解析单元440,适于在本超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。
当域名操作请求通过验证后,相应的域名操作会被写入区块链,并且会根据该相应的域名操作修改域名信息存储系统中的域名信息,例如,一个域名操作请求是对指定域名的删除操作,在该域名操作请求通过验证后,会将该对指定域名的删除操写入区块链中,并且会将域名信息存储系统中相应的域名删除。根据被写入区块链的域名操作相应处理域名信息存储系统,使得域名信息存储系统中的域名信息与实际有效的域名操作之间形成映射关系,保证域名解析的正确性。另外,这里的进行域名解析处理包括:根据域名解析请求获取对应的IP地址,以及将获取的IP地址返回。这里,将IP地址返回可以包括两种情况,一种是域名解析请求来自区块链DNS网络的其他节点,且该域名解析请求中包括请求者的地址,或者,域名解析请求直接来自请求者,则将获取的IP地址直接返回给请求者;二是,域名解析请求来自区块链DNS网络的其他节点,但该域名解析请求中不包括请求者的地址,则将获取的IP地址返回给发送该域名解析请求的节点,由该节点返回给请求者。
在本发明的实施例中,由于区块链网络具有共识机制,是去中心化的,因此在对域名进行操作时,需要经过超级节点的验证,只有验证通过的操作才会被记录到区块链中,而且,这里的超级节点并非是固定的一群节点,是由轻节点对全节点进行选举而产生的,并且会进行换届选举,因此无法通过控制个别的超级节点进行域名操作,除非能控制整个网络中超过51%的超级节点,这几乎不可能发生,因此可以抵御如DDoS攻击,防止被劫持。又因为每个节点可以获得完整的数据库拷贝,即使其中一个节点被攻击或篡改,都不会影响其他节点的正常工作。这就不同于现有技术中的上级服务器管理下一级服务器的域名信息,一旦上级服务器被攻击或篡改,则相应的下一级域名无法解析,下一级服务器的地址无法获取的情况。可见,通过本实施例,域名信息不容易被攻击或篡改,避免了现有技术中对一个服务器的域名进行操作而出现的域名无法正确解析的情况,提高域名解析的安全性。
另外,超级节点在接收到域名解析请求时,是直接通过查询域名信息存储系统进行域名解析,不需要逐级发送请求,无须通过“层级式”的域名解析方式进行域名解析,提高了域名解析的效率,进而提高的访问速度。
同时,在超级节点中存储完整的用于记录历史域名操作信息的区块链,对域名的操作均可追溯到。
在本发明的一个实施例中,图4所示的验证单元420,适于当该域名操作请求是针对指定域名的修改或删除操作时,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;以及适于当该域名操作请求是新增域名的操作时,判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
在本发明的实施例中,一个账户只能对自身账户下的域名信息进行相应的操作,而不能对其他账户的域名信息进行操作,实现组织或个人只管理自己的域名,其他人无法操作的效果,保证了域名信息的安全性和自主性。考虑到对域名的操作可以是修改、删除或增加的操作,在对域名进行修改或删除时,需要判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,判断为是,则验证通过,判断为否,则验证不通过;例如,账户1发送了对域名1的修改的请求,通过查询对应关系表发现,账户1对应的是域名2、域名3,不存在域名1,则验证不通过。在对域名进行增加时,则需要判断增加的域名与已有的域名是否重复,防止错乱的情况出现,如果判断为是,则验证不通过,如果判断为否,则验证通过,并将该域名与发送请求的账户建立对应关系并记录在对应关系表中。
进一步地,图4所示的验证单元420还适于通过以下的一种或多种方式对该域名操作请求进行验证:验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
本实施例中,还需要对域名操作请求的数据格式和/或数字签名进行验证。数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定消息的完整性。因此,在验证时,还需要验证数字签名是否符合预设的签名条件,以防止非该账户本人已该账户的名义发送请求。
在本发明的一个实施例中,每个全节点上均存储完整的用于记录历史域名操作信息的区块链。这就使得该区块链DNS网络的有较高的容错性,其中一个全节点失效了,则其他的节点由于也存储有完成的区块链,则仍然能正常工作。
在本发明的一个实施例中,图4所示的服务器作为超级节点,超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;组成超级节点委员会的各超级节点依次担任区块提交者;当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
共识机制是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认。在本发明的一个实施例中,可以采用DPoS共识机制,从全节点中选举出多个超级节点,组成超级节点委员会。考虑到区块提交者只需要其中一个超级节点即可,因此,超级节点委员会中的超级节点依次担任区块提交者。当该超级委员会中的超级节点依次担任完毕后,则重新投票选举新的超级节点委员会。
例如,区块链DNS网络中包括轻节点10000个,全节点1000个,轻节点对全节点进行投票,根据投票结果,从全节点中选取出前100个全节点作为超级节点,该100个超级节点组成超级节点委员会。这100个超级节点依次担任区块提交者。当这100个超级节点均担任过一次区块提交者后,则重新选举出新的超级节点委员会。
具体地,上述的超级节点担任区块提交者的时间长度与其所持票数成正比。
在上一个例子的基础上,100个超级节点中,预设其担任超级节点的任期是10天,该100个超级节点的得票总数是500,而且排名第一的超级节点的得票数是100,则该超级节点的得票率是20%,则其担任区块提交者的时间是10*20%,即2天;排名第二的超级节点的得票数是50,则该超级节点的得票率是10%,则其担任区块提交者的时间是10*10%,即1天。
在本发明的一个实施例中,区块处理单元430,适于在本超级节点担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
在本发明的实施例中,一个域名操作请求验证是否通过是由各超级节点的验证结果决定的,并非是单个超级节点所决定的,这也符合了该区块链 DNS网络的不可篡改性,这里的预定个数可以根据超级节点的总个数设定,例如是超级节点总个数的三分之二。例如,超级节点委员会中包括300个超级节点,其中有大于或等于三分之二,即大于或等于200个(例如250个) 超级节点的验证结果是验证通过,其他的超级节点的验证结果是验证不通过,则表示该域名操作请求通过验证;如果只有小于200个超级节点(例如150 个)的验证结果是验证通过,则表示该域名操作请求没有通过验证。
图4所示的服务器中的域名存储系统中可以采用现有技术中的文件存储系统,例如,分布式文件系统。优选地,域名信息存储系统为星际文件系统 IPFS。
这里的星际文件系统(InterPlanetary File System,IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。
图5示出了根据本发明一个实施例的区块链DNS网络中的作为全节点的服务器的结构示意图。如图5所示,该服务器500作为全节点与轻节点和超级节点共同基于区块链技术组成区块链DNS网络,该服务器500包括:
存储单元510,适于存储完整的用于记录历史域名操作信息的区块链。
在本发明的实施例中,全节点上存储完整的用于记录历史域名操作信息的区块链,又因为本实施例是基于区块链技术,全节点上还需实现区块链技术的所有功能模块。
在本发明的一个实施例中,图5所示的服务器为传统DNS网络中的权威 DNS服务器。
权威DNS服务器是资源记录标记被指定为区域权威服务器的DNS服务器,通过在资源记录中列出DNS服务器,其他服务器就认为它(该列出的 DNS服务器)是该区域的权威服务器。这意味着在资源记录中指定的任何服务器都被其他服务器当作权威的来源(即被其他服务器当作权威服务器),并且能肯定应答区域内所含域名的查询,即在自己的配置文件(权威服务器的配置文件)中直接记录了域名与主机对应关系并被授权管理该域。
在本发明的实施例中,考虑到区块链DNS网络的开放性,基于组织与组织、组织与个人之见的开放性和协作性,全节点可以是传统DNS网络中的权威DNS服务器,为了可以利用权威DNS服务器中的域名信息资源,可以将权威DNS服务器作为该区块链DNS网络中的全节点加入到该区块链DNS 网络中,具体可以在权威DNS服务器中配置实现区块链技术的相应的功能模块,提供加入区块链DNS网络的接口。
图6示出了根据本发明又一个实施例的区块链DNS网络中的作为轻节点的服务器的结构示意图。如图6所示,该服务器600作为轻级节点与全节点和超级节点共同基于区块链技术组成区块链DNS网络,该服务器600包括:
接收单元610,适于在接收到请求者发送域名解析请求时,将域名解析请求发送给超级节点。
发送单元620,适于将超级节点返回的域名解析结果发送给请求者。
在本发明的实施例中,区块链DNS网络中的轻节点负责发起域名操作请求,当超级节点返回域名解析结果后,将域名解析结果返回给请求者。
在本发明的一个实施例中,图6所示的服务器600还包括:
投票单元,适于对区块链DNS网络中的全节点进行投票,以选举出超级节点。
在本发明的实施例中,利用共识机制从全节点中选举中超级节点,这里担任选举的则是区块链DNS网络中的轻节点。
在本发明的一个实施例中,图6所示的服务器为传统DNS网络中的递归 DNS服务器;或者,该服务器为传统DNS网络中的权威DNS服务器或递归 DNS服务器。
正如上文说明中,考虑到区块链DNS网络的开放性,基于组织与组织、组织与个人之见的开放性和协作性,轻节点包括传统DNS网络中的递归DNS 服务器;或者,包括传统DNS网络中的权威DNS服务器和/或递归DNS服务器。
也就是说,传统DNS网络中的递归DNS服务器、权威DNS服务器可以作为轻节点加入到该区块链DNS网络中,可以在权威DNS服务器或递归DNS服务器中配置实现区块链技术的相应的功能模块,提供加入区块链DNS 网络的接口。具体地,权威DNS服务器预加入到该区块链DNS网络中时,可以进行选择,即选择作为全节点加入还是选择作为轻节点加入。而因为递归DNS服务器是负责发送域名解析请求的,其不保存所有的拷贝,则只能作为轻节点加入到区块链DNS网络中。
图7示出了根据本发明一个实施例的区块链DNS网络系统的结构示意图。如图7所示,该区块链DNS网络系统700包括:如图4所示的超级节点 710;如图5所示的全节点720;以及图6所示的轻节点730。
需要说明的是,图7所述的区块链DNS网络系统中示出了一个超级节点、一个全节点、一个轻节点,这只是对本发明的一个具体说明,可知的是,本发明的区块链DNS网络系统中的超级节点、全节点、轻节点的个数是不做具体限定的。
区块链DNS域名系统取消了审查制度,因为没有中央部分来控制该区块链DNS域名系统,这样的区块链DNS域名系统能够阻止域名被劫持,不会存在中央记录可以被黑客攻击或者修改;也不会存在域名注册机构的不轨行为导致的域名丢失或被盗。
区块链DNS域名系统是一种没有中央机构或中间缓存,各自组织(或国家)管理自己域名的对等网络。区块链技术自身以及共识机制可确保数据可靠性(即数据库对所有节点而言都是相同的)。共识机制可确保任何用户(系统管理员)都无法进入“上帝模式”。不论是谁都无法取消或变更任何记录。只有特定的记录所有者能进行相关操作,其他人都不可以。其特点是:每条记录仅能由其所有者进行修改,其他人无法进行相关操作。通过共识机制禁用超级管理员模式,我们采用DPoS共识机制。数据记录对所有全节点而言是相同的。数据文件与快速搜索引擎协同工作。域名解析不依赖于互联网上任何根服务器的健康状况。
可见,区块链DNS域名系统具有高安全性、快速访问、自主性、高容错和开放性。
综上所述,根据本发明的技术方案,基于区块链技术组成区块链DNS 网络的服务器分为轻节点、全节点和超级节点,超级节点执行如下步骤:每个超级节点上均存储完整的用于记录历史域名操作信息的区块链;当一个超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;一个超级节点在担任区块提交者的任期内,负责产生区块,将通过验证的域名操作请求记录到区块中,将区块打包并附加到区块链上;当一个超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。可见,通过本技术方案,利用区块链网络的共识机制,区块链网络中的超级节点对域名操作请求进行验证,只有验证通过的域名操作请求才被记录并处理的,不容易被攻击或篡改,避免了现有技术中对一个服务器的域名进行操作而出现的域名无法正确解析的情况,提高域名解析的安全性;而且,超级节点在接收到域名解析请求时,是直接通过查询域名信息存储系统进行域名解析,不需要逐级发送请求,无须通过“层级式”的域名解析方式进行域名解析,提高了域名解析的效率,进而提高的访问速度。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的区块链DNS网络中的服务器、区块链DNS网络系统、服务器和计算机可读存储介质中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图8示出了根据本发明一个实施例的服务器的结构示意图。该服务器800传统上包括处理器810和被安排成存储计算机可执行指令(程序代码)的存储器820。存储器820可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器820 具有存储用于执行图1所示的以及各实施例中的任何方法步骤的程序代码 840的存储空间830。例如,用于程序代码的存储空间830可以包括分别用于实现上面的方法中的各种步骤的各个程序代码840。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图9所述的计算机可读存储介质900。该计算机可读存储介质900可以具有与图8的电子设备中的存储器820类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元存储有用于执行根据本发明的方法步骤的程序代码910,即可以由诸如810之类的处理器读取的程序代码,当这些程序代码由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种基于区块链实现域名解析的方法,其中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,该方法包括由超级节点执行的如下步骤:
每个超级节点上均存储完整的用于记录历史域名操作信息的区块链;
当一个超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;
一个超级节点在担任区块提交者的任期内,负责产生区块,将通过验证的域名操作请求记录到区块中,将区块打包并附加到区块链上;
当一个超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。
A2、如A1所述的方法,其中,所述对该域名操作请求进行验证包括:
如果该域名操作请求是针对指定域名的修改或删除操作,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;
如果该域名操作请求是新增域名的操作,则判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
A3、如A2所述的方法,其中,所述对该域名操作请求进行验证还包括如下中的一种或多种:
验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;
验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
A4、如A1所述的方法,其中,
每个全节点上均存储完整的用于记录历史域名操作信息的区块链;
超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;
组成超级节点委员会的各超级节点依次担任区块提交者;
当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
A5、如A4所述的方法,其中,
超级节点担任区块提交者的时间长度与其所持票数成正比。
A6、如A1所述的方法,其中,该方法还包括:
一个超级节点在担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
A7、如A1所述的方法,其中,所述域名信息存储系统为星际文件系统 IPFS。
本发明还公开了B8、一种基于区块链实现域名解析的方法,其中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,该方法包括由全节点执行的如下步骤:
每个全节点上均存储完整的用于记录历史域名操作信息的区块链。
B9、如B8所述的方法,其中,
全节点包括传统DNS网络中的权威DNS服务器。
本发明还公开了C10、一种基于区块链实现域名解析的方法,其中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,每个全节点以及每个超级节点上均存储完整的用于记录历史域名操作信息的区块链,该方法包括由轻节点执行的如下步骤:
当轻节点接收到请求者发送域名解析请求时,将域名解析请求发送给超级节点;
轻节点将超级节点返回的域名解析结果发送给请求者。
C11、如C10所述的方法,其中,该方法还包括由轻节点执行的如下步骤:
对区块链DNS网络中的全节点进行投票,以选举出超级节点。
C12、如C10所述的方法,其中,
轻节点包括传统DNS网络中的递归DNS服务器;
或者,
轻节点包括传统DNS网络中的权威DNS服务器和/或递归DNS服务器。
本发明还公开了D13、一种区块链DNS网络中的服务器,其中,该服务器作为超级节点与轻节点和全节点共同基于区块链技术组成区块链DNS网络,该服务器包括:
存储单元,适于存储完整的用于记录历史域名操作信息的区块链;
验证单元,适于当本超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;
区块处理单元,适于在本超级节点在担任区块提交者的任期内,产生区块,将通过验证的域名操作请求记录到区块中,以及将区块打包并附加到区块链上;
域名解析单元,适于在本超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系。
D14、如D13所述的服务器,其中,
所述验证单元,适于当该域名操作请求是针对指定域名的修改或删除操作时,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;以及适于当该域名操作请求是新增域名的操作时,判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
D15、如D14所述的服务器,其中,所述验证单元还适于通过以下的一种或多种方式对该域名操作请求进行验证:
验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;
验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
D16、如D13所述的服务器,其中,
每个全节点上均存储完整的用于记录历史域名操作信息的区块链;
超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;
组成超级节点委员会的各超级节点依次担任区块提交者;
当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
D17、如D16所述的服务器,其中,
超级节点担任区块提交者的时间长度与其所持票数成正比。
D18、如D13所述的服务器,其中,
区块处理单元,适于在本超级节点担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
D19、如D13所述的服务器,其中,所述域名信息存储系统为星际文件系统IPFS。
本发明还公开了E20、一种区块链DNS网络中的服务器,其中,该服务器作为全节点与轻节点和超级节点共同基于区块链技术组成区块链DNS网络,该服务器包括:
存储单元,适于存储完整的用于记录历史域名操作信息的区块链。
E21、如E20所述的服务器,其中,
该服务器为传统DNS网络中的权威DNS服务器。
本发明还公开了F22、一种区块链DNS网络中的服务器,其中,该服务器作为轻级节点与全节点和超级节点共同基于区块链技术组成区块链DNS 网络,该服务器包括:
接收单元,适于在接收到请求者发送域名解析请求时,将域名解析请求发送给超级节点;
发送单元,适于将超级节点返回的域名解析结果发送给请求者。
F23、如F22所述的服务器,其中,该服务器还包括:
投票单元,适于对区块链DNS网络中的全节点进行投票,以选举出超级节点。
F24、如F22所述的服务器,其中,
该服务器为传统DNS网络中的递归DNS服务器;
或者,
该服务器为传统DNS网络中的权威DNS服务器或递归DNS服务器。
本发明还公开了G25、一种区块链DNS网络系统,其中,该系统包括:
如D13-D19中任一项所述的超级节点;
如E20或E21所述的全节点;
以及F22-F24中任一项所述的轻节点。
本发明还公开了H26、一种服务器,其中,该服务器包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据A1~A7中任一项所述的方法,或者执行根据B8~B9 中任一项所述的方法,或者执行根据C10~C12中任一项所述的方法。
本发明还公开了I27、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现A1~A7中任一项所述的方法,或者实现B8~B9中任一项所述的方法,或者实现C10~C12中任一项所述的方法。

Claims (14)

1.一种基于区块链实现域名解析的方法,其中,基于区块链技术组成区块链DNS网络的服务器分为轻节点、全节点和超级节点,该方法包括由超级节点执行的如下步骤:
每个超级节点上均存储完整的用于记录历史域名操作信息的区块链;
当一个超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;
一个超级节点在担任区块提交者的任期内,负责产生区块,将通过验证的域名操作请求记录到区块中,将区块打包并附加到区块链上;
当一个超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系;
其中,
每个全节点上均存储完整的用于记录历史域名操作信息的区块链;
超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;
组成超级节点委员会的各超级节点依次担任区块提交者;
当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
2.如权利要求1所述的方法,其中,所述对该域名操作请求进行验证包括:
如果该域名操作请求是针对指定域名的修改或删除操作,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;
如果该域名操作请求是新增域名的操作,则判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
3.如权利要求2所述的方法,其中,所述对该域名操作请求进行验证还包括如下中的一种或多种:
验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;
验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
4.如权利要求1所述的方法,其中,
超级节点担任区块提交者的时间长度与其所持票数成正比。
5.如权利要求1所述的方法,其中,该方法还包括:
一个超级节点在担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
6.如权利要求1所述的方法,其中,所述域名信息存储系统为星际文件系统IPFS。
7.一种区块链DNS网络中的服务器,其中,该服务器作为超级节点与轻节点和全节点共同基于区块链技术组成区块链DNS网络,该服务器包括:
存储单元,适于存储完整的用于记录历史域名操作信息的区块链;
验证单元,适于当本超级节点接收到广播的域名操作请求时,对该域名操作请求进行验证,并将验证结果广播出去;
区块处理单元,适于在本超级节点在担任区块提交者的任期内,产生区块,将通过验证的域名操作请求记录到区块中,以及将区块打包并附加到区块链上;
域名解析单元,适于在本超级节点收到域名解析请求时,通过查询域名信息存储系统进行域名解析处理;其中,域名信息存储系统中的域名信息与区块链中的域名操作信息存在映射关系;
超级节点是由轻节点从全节点中投票选举出来的,被选举出来的多个超级节点组成超级节点委员会;
组成超级节点委员会的各超级节点依次担任区块提交者;
当组成超级节点委员会的各超级节点依次担任区块提交者完毕后,重新由轻节点从全节点中投票选举出多个超级节点组成新的超级节点委员会。
8.如权利要求7所述的服务器,其中,
所述验证单元,适于当该域名操作请求是针对指定域名的修改或删除操作时,根据账户与域名的对应关系表,判断发送该域名操作请求的账户是否有对该指定域名进行操作的权限,如果没有则验证不通过;以及适于当该域名操作请求是新增域名的操作时,判断新增域名是否与已存在的域名重复,如果重复则验证不通过,并在验证通过时将发送该域名操作请求的账户与该新增的域名对应保存到账户与域名的对应关系表中。
9.如权利要求8所述的服务器,其中,所述验证单元还适于通过以下的一种或多种方式对该域名操作请求进行验证:
验证该域名操作请求的数据格式是否符合预设的数据格式条件,如果不符合则验证不通过;
验证该域名操作请求的数字签名是否符合预设的签名条件,如果不符合则验证不通过。
10.如权利要求7所述的服务器,其中,
超级节点担任区块提交者的时间长度与其所持票数成正比。
11.如权利要求7所述的服务器,其中,
区块处理单元,适于在本超级节点担任区块提交者的任期内,统计各超级节点对于一个域名操作请求的验证结果,当超过预定个数的超级节点的验证结果表示验证通过时,确定该域名操作请求通过验证,将其记录到所产生的区块中。
12.如权利要求7所述的服务器,其中,所述域名信息存储系统为星际文件系统IPFS。
13.一种服务器,其中,该服务器包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1~6中任一项所述的方法。
14.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现权利要求1~6中任一项所述的方法。
CN201810523849.5A 2018-05-28 2018-05-28 基于区块链实现域名解析的方法、服务器和存储介质 Active CN108429765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810523849.5A CN108429765B (zh) 2018-05-28 2018-05-28 基于区块链实现域名解析的方法、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810523849.5A CN108429765B (zh) 2018-05-28 2018-05-28 基于区块链实现域名解析的方法、服务器和存储介质

Publications (2)

Publication Number Publication Date
CN108429765A CN108429765A (zh) 2018-08-21
CN108429765B true CN108429765B (zh) 2021-10-26

Family

ID=63164293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810523849.5A Active CN108429765B (zh) 2018-05-28 2018-05-28 基于区块链实现域名解析的方法、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN108429765B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109389485B (zh) * 2018-09-30 2021-02-09 深圳市有情矿技术有限公司 自治域模式下基于信息共享贡献值的区块链动态激励方法
CN110855603B (zh) * 2018-12-24 2021-11-09 互联网域名系统北京市工程研究中心有限公司 一种基于区块链技术的抗DoS攻击防护的方法
CN109672755B (zh) * 2019-01-24 2021-10-22 中国互联网络信息中心 一种基于区块链的域名记录更新方法及系统
WO2020154865A1 (zh) * 2019-01-28 2020-08-06 北京大学深圳研究生院 一种支持多模标识网络寻址渐进去ip的方法、系统及存储介质
CN109756589B (zh) * 2019-02-20 2020-11-13 中国互联网络信息中心 一种基于区块链多方共治的域名信息维护系统
CN109981794B (zh) * 2019-04-09 2021-08-17 广州蚁比特区块链科技有限公司 基于区块链节点网络的处理方法、装置及电子设备
CN112468603B (zh) * 2019-09-06 2022-01-11 傲为信息技术(江苏)有限公司 一种基于区块链的域名查询系统及方法
CN110880966B (zh) * 2019-11-22 2022-05-06 哈尔滨工业大学 一种域名解析系统搭建和域名查询方法
CN111885032A (zh) * 2020-07-14 2020-11-03 重庆广播电视大学重庆工商职业学院 一种区块链系统以及区块链超级节点的防攻击装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230526B2 (en) * 2014-12-31 2019-03-12 William Manning Out-of-band validation of domain name system records
WO2018119930A1 (zh) * 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
CN106910051B (zh) * 2017-01-11 2021-01-12 中国互联网络信息中心 一种基于联盟链的dns资源记录公证方法及系统
CN107613041B (zh) * 2017-09-22 2020-06-05 中国互联网络信息中心 基于区块链的域名管理系统、域名管理方法和域名解析方法

Also Published As

Publication number Publication date
CN108429765A (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
CN108429765B (zh) 基于区块链实现域名解析的方法、服务器和存储介质
EP3655905B1 (en) Distributed ledger technology
WO2021036545A1 (zh) 一种基于智能合约的数据处理方法、设备及存储介质
US20200145373A1 (en) System for blockchain based domain name and ip number register
US11930113B2 (en) Blockchain hybrid consensus-based system for maintaining domain name information
CN106384236B (zh) 基于区块链的ca认证管理方法、装置及系统
CN108924130B (zh) 一种区块数据的验证方法、装置、设备和存储介质
JP6574168B2 (ja) 端末識別方法、ならびにマシン識別コードを登録する方法、システム及び装置
CN111368230B (zh) 一种基于区块链的工业互联网标识的处理方法及装置
CN112084164A (zh) 一种基于区块链与星际文件系统的数据存证方法及系统
US9967269B2 (en) Method, device and system for processing DNS behavior
CN112632629B (zh) 基于区块链的投票管理方法、装置、介质及电子设备
CN109508564B (zh) 一种基于区块链的数字资产存储系统和方法
CN111294379B (zh) 区块链网络服务平台及其权限托管方法、存储介质
Abbade et al. Blockchain applied to vehicular odometers
CN113256297B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN111899019A (zh) 一种黑名单多方交叉验证和共享的方法及系统
CN111416709B (zh) 基于区块链系统的投票方法、装置、设备及存储介质
CN110599275A (zh) 一种基于区块链网络的数据处理方法、装置及存储介质
US20230004884A1 (en) System for validated tracking and management of events associated with equipment during lifetime usage
Zhang et al. Blockchain‐Based DNS Root Zone Management Decentralization for Internet of Things
WO2021226854A1 (zh) 区块链机、区块链数据接入认证方法及计算机可读存储介质
CN109905388B (zh) 一种基于区块链的域名信用的处理方法及系统
WO2019243235A1 (en) Distributed ledger technology
CN114338081B (zh) 多区块链统一身份认证方法、装置、计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant