发明内容
本申请提供了一种基于智能合约的域名管理系统,以解决区块链域名系统响应速度慢的问题。
本申请提供一种基于智能合约的域名管理系统,包括多个节点组成的区块链网络,部分所述节点中配置有智能合约,以通过执行所述智能合约组成域名子链网络,完成域名服务;所述智能合约为多级分层结构,包括根域名合约、顶级域名合约以及应用域名合约;
所述根域名合约被配置在组成域名子链网络的所有节点中,域名子链网络中的部分节点通过执行所述根域名合约管理和维护所述顶级域名合约;
所述顶级域名合约被配置在组成域名子链网络的所有节点中,配置有所述顶级域名合约的节点通过执行所述顶级域名合约管理和维护所述应用域名合约;
所述应用域名合约被配置在组成域名子链网络的所有节点中,配置有所述应用域名合约的节点通过执行所述应用域名合约管理和维护域名数据,以及向所述区块链网络中的任意节点提供域名数据查询功能。
可选的,所述域名子链网络中的部分节点通过执行所述根域名合约,创建所述顶级域名合约,以及将所述顶级域名合约配置给所述域名子链网络中的所有节点;
部分配置有所述顶级域名合约的节点通过执行所述顶级域名合约,创建所述应用域名合约,以及将所述应用域名合约配置给所述域名子链网络中的所有节点。
可选的,所述域名子链网络中的所有节点通过执行所述根域名合约,提供所述顶级域名合约路由;
配置有所述顶级域名合约的节点通过执行所述顶级域名合约,提供所述应用域名合约路由。
可选的,所述域名子链网络中部分节点通过执行所述根域名合约,生成和管理顶级域名合约;
部署有所述根域名合约的节点被进一步配置为:接收注册交易,以及根据所述注册交易向多个部署有所述根域名合约的节点发起投票交易;
多个部署有所述根域名合约节点被进一步配置为:根据所述投票交易,返回投票结果,以及根据统计的投票结果接受或者拒绝所述注册交易对应的新增域名。
可选的,部署有所述根域名合约的节点被进一步配置为:根据所述注册交易生成顶级域名合约,以及通过所述根域名合约中新增所述注册交易对应的记录数据,并将顶级域名合约以及记录数据录入子链区块。
可选的,所述域名子链网络中的部分节点可被配置为存储节点,用于存储所述域名数据;
配置有所述智能合约的节点通过执行所对应的智能合约,接收数据查询交易,以及根据所述数据查询交易,从所述存储节点中获取域名信息。
可选的,配置有所述应用域名合约的节点中,缓存有应用域名数据;
配置有所述应用域名合约的节点在接收到所述数据查询交易后,根据所述查询交易遍历缓存的应用域名数据;
如果在所缓存的应用域名数据中未获取到所述查询交易对应的域名信息,配置有所述应用域名合约的节点向配置有顶级域名合约的节点发起所述查询交易。
可选的,配置有所述顶级域名合约的节点中,缓存有顶级域名数据;
配置有所述顶级域名合约的节点在接收到所述查询交易后,根据所述查询交易遍历缓存的顶级域名数据;
如果在所缓存的顶级域名数据中未获取到所述查询交易对应的域名信息,配置有顶级域名合约的节点向执行所述根域名合约的节点发起所述查询交易。
可选的,配置有所述应用域名合约的节点被进一步配置为:接收更新交易;以及,根据所述更新交易,执行所述应用域名合约更新所述域名数据。
可选的,所述域名子链网络包括至少一个DNS节点;
所述DNS节点中同时配置有所述根域名合约、顶级域名合约以及应用域名合约;
所述DNS节点被配置为对接DNS系统,使DNS系统中的节点通过所述DNS节点查询所述域名子链中的域名数据;以及,使所述区块链网络中的节点通过所述DNS节点查询所述DNS系统中的域名数据。
由以上技术方案可知,本申请提供一种基于智能合约的域名管理系统,包括多个节点组成的区块链网络。其中,部分所述节点中配置有智能合约,以通过执行所述智能合约组成域名子链网络,完成域名服务;所述智能合约为多级分层结构,包括根域名合约、顶级域名合约以及应用域名合约;配置有智能合约的节点通过执行各自配置的智能合约类型可以实现基于区块链网络的域名管理系统,实现对DNS系统的去中心化。同时,通过发起交易的形式,完成域名注册、查询、更新等流程。本申请提供的域名管理系统,可以通过部分节点分别执行多级分层的智能合约,同步完成域名管理流程,提高区块链域名系统的响应速度。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
在本申请提供的技术方案中,区块链网络是指具有去中心化应用架构的点对点网络,所述区块链网络能够在网络内部进行分布式存储、公共共识、数字加密、交易记账以及验证。即区块链网络是涵盖了分布式技术、密码学、P2P网络架构以及各种可能被应用的共识算法的交易平台。
本申请中,区块链或区块链数据是指在区块链网络中发生交易时,根据交易信息生成的记账信息,即多笔交易组成一个区块数据,多个区块数据形成一条带有时间戳的区块链。区块链网络中,包括相互建立点对点网络连接的节点,每一个节点都配置有相应的共识机制,如智能合约,并且具有足够的运算能力,以进行交易验证和记账程序。节点上还具有符合某种统一标准的接口规范,以实现通过接口规范接入更多的节点或者其他类型的区块链网络。所述公链为区块链网络中多个节点组成的点对点网络结构,每个节点具有分布式存储功能和交易、记账功能;公链上的节点对外提供统一的接口规范。
参见图1,为本申请一种基于智能合约的域名管理系统的结构示意图;图2,为本申请智能合约多级分层结构示意图。由图1、图2可知,本申请提供的基于智能合约的域名管理系统,包括多个节点组成的区块链网络。本申请提供的技术方案中,区块链网络是指基于区块链原理所建立的网络,可以包括统一的共识机制,从而在发生交易时,能够针对交易进行验证和存储。示例地,本申请中由多个节点组成的区块链网络可以是基于CNWW3(ChainNetWork Web3.0)原理构建的公链网络,在CNWW3的公链网络中,部分节点可以基于公链网络形式,组成各种子链网络,以具有不同的业务功能。从而,通过有效的去中心化,交易分层和网络分片机制,在保证去中心化区块链网络的安全性,扩展性和去中心化性上,极大的提高网络单位时间内处理事务的能力,从而能有效的支持传统中心化应用向去中心化平台转移,完成业务和技术的双重升级。
为了实现域名管理服务,部分所述节点中配置有智能合约,以通过执行所述智能合约组成域名子链网络,完成域名服务。本申请中,智能合约是基于区块链交易而约定的共识机制程序,通过智能合约可以实现各种功能的交易运算,例如通过根域名智能合约,节点可以通过执行根域名智能合约完成域名注册登记、查询及更新服务。所述智能合约为多级分层结构,包括根域名合约、顶级域名合约以及应用域名合约。
对应于DNS系统,在进行域名管理服务时包括以下步骤:
(1)发起请求信息,当用户尝试访问特定域名时,系统会首先从本地的DNS缓存(Cache)中查询该域名对应的地址是否已经有缓存(且未过期),如果有,直接使用缓存进行后续的网络通讯,否则将发起域名解析请求。
(2)请求网络服务供应商(Resolver——域名解析服务器)进行域名解析,如用户本地无DNS缓存,系统将向其网络服务供应商(ISP)提供的域名解析服务器(Resolver)进行递归解析。同样的,解析服务器也会有相应的DNS缓存,大部分的解析请求都会通过已有的缓存结果直接返回给用户系统。
(3)查询根域名服务器,如果遍历ISP对应的域名解析服务也无法获取到对应的域名信息,则该解析请求会被域名解析服务器向根域名服务器请求对应的域名信息。根域名服务器并不会直接向域名解析服务器返回对应的域名信息,而是将根据请求的域名信息,将请求转向对应的顶级域名服务器(Top-Level Domain name servers——TLD)。如.com,.cn等TLD域名服务器。
(4)查询TLD服务器,根域名服务器根据请求的域名信息,将该请求转向对应的顶级域名服务器。每一个TLD服务器,比如.com,.cn等,均拥有一系列的服务器提供对应的查询服务。但是和根域名服务器类似,其并没有真正对应域名的详细信息,而是作为代理服务器,将用户的请求转向该域名对应的权威域名服务器。
(5)查询权威域名服务器,TLD服务器根据请求内容(如二级域名信息),将请求查询转向负责此特定域的权威域名服务器。这些权威名称服务器知晓请求域名的所有信息,这些信息存储在自身的DNS记录中。
(6)解析域名记录,域名解析服务器从权威域名服务器处获取到请求对应的信息,会根据信息的TTL(Time-to-Live——有效时间)时间将其缓存在本地,在TTL超时之前,如有其它相同域名的解析请求,则会直接返回缓存的信息。同时,域名解析服务器在超时之前,也可以通过主动刷新的机制,重复(3),(4),(5)步骤更新本地的缓存信息。
(7)返回域名信息,域名解析服务器将解析信息返回给用户系统后,用户系统会将该信息缓存并使用其结果进行相应的应用和服务通讯,在TTL超时之前,如用户系统再次请求相同的域名服务,则无需向域名解析服务器进行请求,直接使用本地缓存即可。需要注意的是,用户系统在用户没有请求的时候,即便缓存已经超时,也不会主动进行解析信息刷新。
因此,在本申请提供的技术方案中,所述根域名合约被配置在组成域名子链网络的所有节点中,域名子链网络中的部分节点通过执行所述根域名合约管理和维护所述顶级域名合约。可见,本申请中,根域名合约被配置全部域名子链网络的节点中,并且部分节点通过执行根域名智能合约,完成对应于根域名服务器所具有的功能。同时,在本申请提供的技术方案中,根域名合约还可以用来管理和维护顶级域名合约,需要说明的是,所述管理和维护顶级域名合约是指,通过执行所述根域名合约,可以对哪些节点被配置执行顶级域名合约,哪些节点不需要配置顶级域名合约进行管理。由于本申请域名管理系统是基于区块链网络形式,因此对于域名的注册、查询以及更新程序都需要形成区块链数据,以分布式存储在区块链网络。为了确保交易的安全性,在本申请中,执行根域名合约的节点可以根据时间或者网络的繁忙状态进行变更。
同理,作为多层分级智能合约,根域名合约作为最高级、其次为顶级域名合约、最后为应用智能合约。因此,所述顶级域名合约被配置在组成域名子链网络的所有节点中,配置有所述顶级域名合约的节点通过执行所述顶级域名合约管理和维护所述应用域名合约;所述应用域名合约被配置在组成域名子链网络的所有节点中,配置有所述应用域名合约的节点通过执行所述应用域名合约管理和维护域名数据,以及向所述区块链网络中的任意节点提供域名数据查询功能。
实际应用中,区块链网络中的任意节点均可以向域名子链网络发起域名查询交易,在发起域名查询交易后,首先在执行应用域名合约的节点中查询匹配所述查询交易中对应的域名数据,从而完成域名查询功能。需要说明的是,根据域名数据的结构,还可以将应用域名合约继续分为多个层级,以便缩小查询数据量。
针对域名查询服务,在本申请的部分实施例中,所述域名子链网络中的部分节点被配置为存储节点,用于存储所述域名数据。事实上,域名子链网络中的所有节点均具有数据存储能力,但在本申请中,可以根据实际数据量,将域名子链网络中的部分节点配置为仅用来存储的节点,显然,这种存储节点的存储能力和数据读写能力要相对较强。实际应用中,配置有所述智能合约的节点通过执行所对应的智能合约,接收数据查询交易,以及根据所述数据查询交易,从所述存储节点中获取域名信息。
在本申请提供的技术方案中,如图3所示,针对域名查询服务,可以包括如下步骤:
S101:接收域名查询节点发送的查询交易;
S102:在所述查询交易中,提取域名信息;
S103:根据所执行的智能合约,提取与所述域名信息对应的DNS信息;
S104:将提取的所述DNS信息发送给域名查询节点。
实际应用中,配置有所述应用域名合约的节点中,缓存有应用域名数据。如果在所缓存的应用域名数据中未获取到所述查询交易对应的域名信息,配置有所述应用域名合约的节点向配置有顶级域名合约的节点发起所述查询交易。
配置有所述应用域名合约的节点在接收到所述数据查询交易后,根据所述查询交易遍历缓存的应用域名数据;所述应用域名数据是顶级域名的下一级,例如“.wikipedia.org”的二级域名或二级以下的三级、四级域名信息等。本申请中,域名数据包括其他信息,以三级域名相关信息为例,包括所有者信息,区块链地址,如公钥信息,智能合约地址或者其他地址,TTL信息,验证鉴权信息,或存储DNS根域文件在IPFS网络中的存储地址等。
同理,配置有所述顶级域名合约的节点中,缓存有顶级域名数据;配置有所述顶级域名合约的节点在接收到所述查询交易后,根据所述查询交易遍历缓存的顶级域名数据;如果在所缓存的顶级域名数据中未获取到所述查询交易对应的域名信息,配置有顶级域名合约的节点向执行所述根域名合约的节点发起所述查询交易。
因此,为了完成域名查询等服务,本申请中,所述域名子链网络中的部分节点通过执行所述根域名合约,提供所述顶级域名合约路由;配置有所述顶级域名合约的节点通过执行所述顶级域名合约,提供所述应用域名合约路由。
在本申请的部分实施例中,所述域名子链网络中的部分节点通过执行所述根域名合约,创建所述顶级域名合约,以及将所述顶级域名合约配置给所述域名子链网络中的所有节点;部分配置有所述顶级域名合约的节点通过执行所述顶级域名合约,创建所述应用域名合约,以及将所述应用域名合约配置给所述域名子链网络中的所有节点。在本申请提供的技术方案中,由于区块链网络的去中心化特点,各个节点之间的差异较小,针对于不同节点所充当的角色,均是通过执行对应的智能合约实现。例如,节点若想具有管理和维护顶级域名合约的能力,需要执行根域名智能合约,并且在管理和维护中,通过创建顶级域名合约,并向待管理和维护的节点配置该顶级域名合约,从而部署上下级关系。
因此,在本实施例中,部分节点可以通过执行根域名合约创建顶级域名合约,并且部分节点也可以通过执行顶级域名合约创建应用域名合约,可以实现对新节点角色的部署以及新域名的注册。对于域名注册,在本申请的部分实施例中,所述域名子链网络中部分节点通过执行所述根域名合约,生成和管理顶级域名合约。
部署有所述根域名合约的节点被进一步配置为:接收注册交易,以及根据所述注册交易向多个部署有所述根域名合约的节点发起投票交易;多个部署有所述根域名合约的节点被进一步配置为:根据所述投票交易,返回投票结果,以及根据统计的投票结果接受或者拒绝所述注册交易对应的新增域名。最后,部署有所述根域名合约的节点被进一步配置为:根据所述注册交易生成顶级域名合约,以及在所述根域名合约中新增所述注册交易对应的记录数据,并将顶级域名合约以及记录数据录入子链区块。
即在实际应用中,如图4所示,域名注册包括以下步骤:
S201:向根域名智能合约发起注册交易,触发根域名智能合约执行;
S202:根据所述注册交易,通过执行所述根域名智能合约反馈注册投票结果,所述注册投票结果包括接受或拒绝新增所述注册交易中的域名;
S203:如果反馈的所述注册投票结果满足预设注册要求,通过所述根域名智能合约生成顶级域名合约;
S204:在所述根域名智能合约中添加指向新生成顶级域名合约的记录。
实际应用中,要注册到域名管理系统中的节点可以先向根域名合约发起注册交易,以触发根域名合约被对应的节点执行。节点在执行根域名合约后,可以根据针对注册交易进行投票,反馈投票结果。当反馈的投票结果满足预设的注册要求时,表明当前服务器域名可以注册到系统中,因此,可以通过所述根域名合约生成顶级域名合约,并且在所述根域名合约中添加指向新生成顶级域名合约的记录。
其中,所述预设注册要求包括反馈的注册投票结果为接受的数量大于或等于第一投票数量值;或者,在预设投票周期内,反馈的注册投票结果为接受的数量大于或等于第二投票数量值。
以顶级域名服务(TLD)为例,在实际注册过程中,可以先通过向根域名合约发起交易的方式,触发根域名合约的执行;根域名合约的所有者,再通过投票或者其他方式,决定是否接受新增该TLD域名;根域名合约所有者,通过向根域名合约发起交易的方式,选择接受或者拒绝新增该TLD域名;如果接受注册,则新增交易成功,根域名合约生成并部署一个新的TLD合约,同时在根域名合约中新增对应的记录,指向新的TLD合约,从而完成新增工作。
在实际应用中,由于域名信息会根据实际应用进行调整,因此,在服务器发生调整时,域名管理系统需要对调整的域名信息进行更新。相应地,配置有所述应用域名合约的节点被进一步配置为:接收更新交易;以及,根据所述更新交易,执行所述应用域名合约更新所述域名数据。
即在实际应用中,如图5所示,更新交易包括以下步骤:
S301:向更新节点所的执行智能合约的上级域名智能合约发起更新交易,触发执行上级域名智能合约进行更新服务;
S302:通过上级域名智能合约校验所述更新交易中的更新数据;以及,在校验通过后,调用所执行的智能合约;
S303:根据所述更新数据,更新所执行的智能合约。
本实施例中,所述合约所有者节点包括:执行根域名合约的跟所有者节点、执行顶级域名合约的顶级所有者节点以及执行应用域名合约的应用所有者节点。所述应用所有者节点对应的上级域名合约为根域名合约;所述顶级所有者节点对应的上级域名合约为根域名合约;所述应用所有者节点对应的上级域名合约为顶级域名合约和/或根域名合约。
以更新某个TLD域名为例,实际应用中,需要更新的TLD域名的所有者先通过交易的方式调用根域名合约进行更新;再通过根域名合约校验并通过更新,调用现有的TLD合约,进行相应的信息更新,以使TLD合约完成相应更新,并返回相应的结果;最后,根域名合约记录相应更新结果,完成更新操作。
由以上技术方案可知,本申请提供的基于智能合约的域名管理系统,包括多个节点组成的区块链网络。其中,部分所述节点中配置有智能合约,以通过执行所述智能合约组成域名子链网络,完成域名服务;所述智能合约为多级分层结构,包括根域名合约、顶级域名合约以及应用域名合约;配置有智能合约的节点通过执行各自配置的智能合约类型可以实现基于区块链网络的域名管理系统,实现对DNS系统的去中心化。同时,通过发起交易的形式,完成域名注册、查询、更新等流程。本申请提供的域名管理系统,可以通过部分节点分别执行多级分层的智能合约,同步完成域名管理流程,提高区块链域名系统的响应速度。
进一步地,为了提高区块链网络的验证和处理高并发交易的能力,本申请还可以进一步对公链架构进行优化调整,例如:节点角色划分、节点分组、分区验证等。由于域名子链网络是通过公链中的部分节点组成的,因此,其可以完整继承公链的能力,也就继承了公链快速验证和处理高并发交易的能力。
另外,在域名子链网络中,相关的智能合约均通过交易及其交易验证的方式完成域名的注册登记,查询,更新等操作,通过标准的区块链网络共识算法,保障全网数据的一致性。因此,公链网络的高并发快速交易及其交易验证能力,可以保证域名子链网络也具备相应的能力,从而有效改善现有网络性能不足的情况。
从长远角度看,基于区块链网络的域名管理系统以其完全去中心化的特点,可以取代传统DNS系统,但是由于区块链网络正处于发展的初期阶段,绝大多数网络的服务器都注册在传统的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系统,可通过设置DNS节点,便捷的完成对于区块链网络域名的查询操作;同时,在区块链网络中的应用,如果需要访问DNS体系中的网络,也可以便捷地通过域名子链网络中的DNS节点完成传统的DNS解析工作。
需要说明的是,本实施例从阶段性而言,在域名子链网络中,并不会开放当前ICANN中已有的TLD顶级域名注册登记,但是通过DNS节点,以及区块链公链的IPFS网络,在域名子链网络中可以进行DNS系统的分布式镜像服务,将相关DNS数据进行备份和存储,从而避免因DNS网络的故障导致无法访问的问题。而在长远的未来,域名子链网络可以作为现有DNS网络的一个升级替换网络,无论是传统的DNS系统,还是基于区块链的域名管理系统,均可以统一由域名子链网络提供相应的服务。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。