基于公链的地址管理***
技术领域
本申请涉及区块链交易技术领域,尤其涉及一种基于公链的地址管理***。
背景技术
区块链技术的主要任务,是按照去中心化的***要求,基于公众共识的方式,创建一个相对客观的抗抵赖数字环境。基于区块链技术,可以保证网络信息的真实性,例如,区块链网络中发生一笔交易,网络中的节点会根据交易信息生成记载交易内容的区块数据,并将区块数据进行全网广播,网络中的其他节点同时存储区块数据,形成不可更改的区块链。其中,所述交易具有广义性,不是指传统意义上的“商品买卖”、“物品交换”,而是指区块链网络上的某种数据操作内容或操作结果,例如,在网络上某个区块链节点A发起一个某型号通信设备性能的查询请求a,所述查询请求a对于承担查询服务的区块链节点B来说就是一笔交易。同理,节点B将查询得到的该型号通信设备的性能表b发送给节点A也是一笔交易。信息A、a和信息B、b作为交易信息会被写入区块链的数据块中。
可见,基于区块链技术的交易,本质上是两个节点之间的交易。传统交易需要发起节点明确或已经获知目标节点的地址信息,以通过该地址信息查找到目标节点,进而完成交易。然而,由于跨链交易发生在两个不同的区块链之间,每个区块链的信息彼此独立、互不兼容,因此,在跨链交易的情况下,一个区块链的作为交易发起方的节点无法直接获取到另一个区块链的作为交易目标方的节点的地址信息。
为了获取到目标节点的地址信息,可以在当前区块链网络中存储其它区块链节点的地址列表,所述地址列表中记载有区块链集合中任何一个区块链的能够作为交易目标的节点地址信息。如果发起节点发起交易,需要在地址列表中查询对应目标节点的地址信息,并按照查询到的地址信息与目标节点进行交易。然而,这种方法仅适用于已经签约的可以进行跨链交易的网络环境下。在实际的区块链部署过程中,根据应用领域不同,会布置不同类型的公链、联盟链或行业链,这些链之间均有发生跨链交易的可能,因此,需要在每个链中的每个节点都存储地址列表,占据大量的存储资源。
另外,大部分区块链具有动态调整功能,即每一个区块链中随时都有节点上线或下线,使得节点地址动态变化,因此,对于区块链中的任意节点来说,需要不断更新存储的地址列表,以适应其它区块链中节点的上线或下线,或地址的变化。这使得区块链网络需要不断更新地址列表,浪费或占用网络带宽较多,降低交易效率。
发明内容
本申请提供了一种基于公链的地址管理***,以解决传统区块链网络占用网络带宽较多、交易效率低的问题。
一方面,本申请提供一种基于公链的地址管理***,包括公链和接入公链的子链,所述公链和子链中的节点相互建立网络连接,其特征在于,所述公链中的部分节点被配置为地址管理节点,存储、同步所述公链和子链中的全部节点地址数据;
所述地址管理节点被进一步配置为在发生交易时,接收交易发起节点或所述地址管理节点的临近节点发送的地址查询交易;以及,根据所述地址查询交易向所述交易发起节点发送交易目标节点对应的地址数据。
所述地址管理节点还被配置为接收所述子链节点广播的地址变更信息,以及将存储的地址数据按照所述地址变更信息进行更新。
可选的,所述地址管理节点由所述公链中的节点,通过公链内部的选举产生;
或者,由所述公链中的部分节点随机产生,且在所述公链中的部分节点内周期性转换节点配置。
可选的,多个所述地址管理节点组成多级地址管理网络;
所述地址管理网络中,至少一个所述地址管理节点被配置为存储所述地址数据;以及至少一个所述地址管理节点被配置为:根据所述地址查询交易向所述交易发起节点发送交易目标节点对应的地址数据。
可选的,所述地址数据包括节点的网络地址、终端MAC地址以及统一标识地址中的一种;所述地址管理节点存储有地址索引表;所述地址索引表中包括各节点对应的地址数据,以及与地址数据对应的地址公钥;所述地址公钥由加密HASH值组成;所述地址管理节点被进一步配置为:
遍历各子链节点的地址公钥;
根据预设加密算法解析所述地址公钥,获取与所述地址公钥对应的地址数据,以及生成地址索引表。
可选的,所述地址管理***在进行交易前,由交易发起节点向所述地址管理节点发起地址查询交易,所述地址查询交易包括预发起跨链交易的交易摘要;
所述地址管理节点被配置为根据所述地址查询交易遍历存储地址数据;以及,提取与所述交易摘要对应的交易目标节点地址数据,并发送所述交易目标节点地址数据至所述交易发起点。
可选的,所述地址管理节点还被配置为根据公链网络中单位时间内发生的交易数量,计算网络空闲度;以及,在所述网络空闲度低于预设阈值时,向所述公链和子链中的所有节点广播地址确认信息;
所述公链和子链中的节点被配置为在接收到所述地址确认信息后,发送当前地址信息至所述地址管理节点。
可选的,所述地址管理节点还被配置为根据所述当前地址信息匹配所存储的地址数据;以及,删除未匹配到所述当前地址信息的地址数据。
另一方面,本申请还提供一种基于公链的地址管理***,包括公链和接入公链的第三方区块链,所述公链和第三方区块链中的节点相互建立网络连接,所述公链中的部分节点被配置为地址管理节点,存储、同步所述公链和第三方区块链中的全部节点地址数据;
所述地址管理节点被进一步配置为在发生交易时,接收交易发起节点或所述地址管理节点的临近节点发送的地址查询交易;以及,根据所述地址查询交易向所述交易发起节点发送交易目标节点对应的地址数据。
所述地址管理节点还被配置为接收所述第三方区块链节点广播的地址变更信息,以及将存储的地址数据按照所述地址变更信息进行更新。
可选的,所述地址管理***还包括由所述公链节点和/或第三方区块链节点组成的平行链;
所述平行链节点被配置为能够执行公链节点的全部数据操作,具有公链节点的全部功能和信息;还被配置为能够执行第三方区块链节点的全部数据操作,具有第三方区块链节点的全部功能和信息;至少一个所述平行链节点被配置为所述地址管理节点。
可选的,所述地址管理***在进行交易时,由交易发起节点向所述地址管理节点发起地址查询交易,所述地址查询交易包括交易摘要;
所述地址管理节点被配置为根据所述地址查询交易遍历存储地址数据;
查找与所述交易摘要对应的交易目标链,以及提取所述交易目标链对应平行链节点的地址数据,并发送所述平行链节点的地址数据至所述交易发起点。
由以上技术方案可知,本申请提供一种基于公链的地址管理***,所述***包括公链和接入公链的子链,并且,公链中的部分节点被配置为地址管理节点,存储、同步所述公链和子链中的全部节点地址数据;在发生交易时,地址管理节点可接收地址查询交易;并根据地址查询交易向交易发起节点发送交易目标节点对应的地址数据。地址管理节点还被配置为接收子链节点广播的地址变更信息,以及将存储的地址数据按照地址变更信息进行更新。
本申请提供的地址管理***,可以通过将公链中的部分节点配置为地址管理节点,结合区块链交易特点,可以使交易发起节点快速获取到交易目标节点的地址,因此在交易发起节点中,可无需存储全部节点的地址信息,并且交易目标节点地址的获取过程仅发生在交易发起节点和地址管理节点之间,无需通过广播交易来获取交易目标节点的地址,可以显著减小对网络带宽的占用,提高交易效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种基于公链的地址管理***结构示意图;
图2为本申请一种基于公链的地址管理***地址查询交易流程示意图;
图3为本申请一种基于公链的地址管理***更新地址索引表流程示意图;
图4为本申请平行链结构示意图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的***和方法的示例。
在本申请提供的技术方案中,所述区块链一方面指网络***中交易产生的记账数据,另一方面指运行区块链技术的网络,即区块链网络。其中,区块链网络是指具有去中心化应用架构的点对点(P2P)网络,所述区块链网络能够进行分布式存储、公共共识、数字加密、交易记账以及验证。即涵盖了分布式技术、密码学、P2P网络架构以及各种可能被应用的共识算法的交易平台。
区块链或区块链信息是在区块链网络中发生交易时,根据交易信息生成的记账信息,即多笔具体的交易组成一个区块,多个区块形成一条区块链。区块链网络中,包括相互建立点对点网络连接的节点,每一个节点都配置有相应的共识机制,如智能合约,并且具有足够的运算能力,以进行交易验证和记账程序。节点上还具有符合某种统一标准的接口规范,以实现通过接口规范接入更多的节点或者其他类型的区块链网络。
参见图1,为本申请一种基于公链的地址管理***结构示意图。由图1可知,本申请提供的地址管理***,包括公链和接入公链的子链,所述公链和子链中的节点相互建立网络连接。其中,所述公链中的部分节点被配置为地址管理节点,存储、同步所述公链和子链中的全部节点地址数据。实际应用中,公链和子链均为点对点形式的P2P网络,P2P网络由多个节点组成,每个节点具有独立的运算能力、应用运行能力、存储能力以及提供人机交互的能力。P2P网络中的节点不仅是提供网络信息传递的网关设备,而且可以是被区块链网络认证的任何计算机设备,如个人计算机、计算机机组、服务器以及智能终端设备等。
在所述地址管理***中,所述公链是提供基础平台的区块链网络,即通过设定一个统一的交易标准,以在此交易标准下,各个接入公链的区块链网络可以通过公链,将交易信息进行传递和统一验证,以实现跨链交易。实际应用中,接入公链的区块链网络可以包括子链和第三方区块链,其中,子链是与公链具有相同交易标准的区块链网络,即基于公链网络形式而建立的私链、行业链、联盟链等。
本申请提供的技术方案中,作为公链的节点可以根据其在网络中的位置以及自身硬件配置情况,进行多种角色划分,即在实际交易过程中,并非所有公链节点都完成同一个交易的验证、记账工作,而是根据自身的角色不同进行不同的工作,以快速完成交易,避免高并发交易的延时。因此,在本申请中,可以将公链中的部分节点进一步配置为地址管理节点,即在实际交易过程中,地址管理节点可以用于存储、同步所述公链和子链中的全部节点地址数据。
如图2所示,在发生交易时,所述地址管理节点被进一步配置为,接收交易发起节点或所述地址管理节点的临近节点发送的地址查询交易;以及,根据所述地址查询交易向所述交易发起节点发送交易目标节点对应的地址数据。
具体的,所述地址管理***在进行交易前,由交易发起节点向所述地址管理节点发起地址查询交易,所述地址查询交易包括预发起跨链交易的交易摘要;所述地址管理节点被配置为根据所述地址查询交易遍历存储地址数据;以及,提取与所述交易摘要对应的交易目标节点地址数据,并发送所述交易目标节点地址数据至所述交易发起点。
实际应用中,交易发起节点可以是子链网络中的节点,也可以是公链网络中的节点。在交易发起节点发起正式的交易之前,可以根据实际交易信息的内容,向地址管理节点发起一个地址查询交易,这个地址查询交易中,需要包含预发起的正式交易中的交易内容信息或描述正式交易的信息,例如,以交易摘要的方式将正式交易的交易内容进行压缩打包,发送给地址查询交易。
根据实际应用环境的不同,交易发起点与地址管理节点之间的查询交易形式也不同。如果交易发起节点可以与地址管理节点之间直接进行交易或信息交互,则可以直接通过交易发起节点向地址管理节点发起查询交易,这种方式最适合于交易发起节点与地址管理节点处于同一个区块链网络内的交易,即交易发起节点也是公链网络范围内的节点。如果交易发起节点不能直接与地址管理节点之间进行交易或信息交互,则可以通过交易发起节点广播一个地址查询交易,具体可以为先向邻近节点广播查询交易,邻近节点再结合自身的角色,确定是完成交易还是继续广播,直到地址管理节点接收到该查询交易。
地址管理节点在接收到查询交易以后,可以提取查询交易中的交易摘要,确定查询交易中指定的交易目标功能,再通过从存储的地址信息表中匹配该功能所对应的交易目标节点,并将其对应的地址数据打包成交易结果发送给交易发起节点,以使交易发起节点获得地址数据。在后续正式交易时,可以直接指定对应的交易目标节点对应的地址数据,以直接完成交易。
需要说明的是,本申请提供的技术方案中,所述地址查询交易本质上是一种与正式交易相同的交易过程,即通过公链网络内置的共识机制和智能合约,完成的一种无证通或指定证通数量的交易过程。
通过上述地址查询过程,交易发起节点中不必存储交易目标节点的地址信息,只需存储地址管理节点的地址信息即可,甚至任何地址信息都无需存储,而通过在公链网络中广播的方式查询交易目标节点的地址,因此,本申请提供的地址管理***可以减小对节点存储性能的要求。并且在跨链交易过程中,仅需在正式交易前进行地址查询即可获得交易目标节点的地址信息,而跨链交易也需要前置查询交易,因此可以将地址查询交易与前置查询交易合并为同一个交易进行广播,无需额外进行数据传输,避免实际应用时占用过多的网络带宽,提高交易效率。
所述地址管理节点还被配置为接收所述子链节点广播的地址变更信息,以及将存储的地址数据按照所述地址变更信息进行更新。实际应用中,每当公链或子链网络中的节点上线或下线,则会导致节点地址信息的改变。例如,新上线的节点需要注册至公链网络以表征其支持的交易类型,即生成一个地址变更信息。新上线的节点可以在子链网络或公链网络中,广播地址变更信息。理论上,公链网络中的所有节点都可以接收到广播的地址变更信息,但只有作为地址管理节点的节点才对地址变更信息进行解析、转化,以及通过统一的方式存储在地址管理节点中。
通过地址管理节点更新地址数据,可以充分利用地址管理节点的存储空间,并且不占用其他节点的存储空间。同时,地址变更信息的传递可以仅发生在地址管理节点和变更地址的节点之间,无需向所有节点同步,从而可以大大减小对网络带宽的占用。另外,地址管理节点为了实现对地址信息的存储和快速同步,可以优先选取存储资源能力较高的节点作为地址管理节点,以提供对地址数据的存储能力;也可以选取子链和公链连接节点或连接节点邻近的节点作为地址管理节点,以使地址管理节点可以快速接收到地址变更信息,以提高信息的更新效率。
进一步地,所述地址管理节点由所述公链中的节点,通过公链内部的选举产生;或者,由所述公链中的部分节点随机产生,且在所述公链中的部分节点内周期性转换节点配置。实际应用中,地址管理节点可以通过公链内部的投票机制,对硬件条件符合要求的节点进行选举,以通过安全稳定的节点完成地址管理服务。
还可以在实际应用时,将公链节点中的部分节点作为备选节点,但作为备选节点的节点中,并非所有节点均完成上述地址管理服务,而是在这些备选节点中,周期性的随机选取指定数量的节点作为地址管理节点。这样随机变更地址管理节点的方式可以避免网络***遭到攻击而使存储的信息被篡改,降低产生非法交易的风险,还可以在个别节点出现故障时,通过其他节点完成地址管理服务,保证交易过程的顺利进行。
需要说明的是,为了降低信息冗余程度,可作为地址管理节点的所有节点之间可以定义一种数据同步机制,使得所有备选节点均存储有各节点的地址数据。而不作为地址管理节点的备选节点在接收到地址查询交易时,可以将地址查询交易进行就近转发,发送至最近的地址管理节点,以使地址管理节点尽快接收到地址查询交易。
在本申请的部分实施例中,多个所述地址管理节点组成多级地址管理网络;所述地址管理网络中,至少一个所述地址管理节点被配置为存储所述地址数据;以及至少一个所述地址管理节点被配置为:根据所述地址查询交易向所述交易发起节点发送交易目标节点对应的地址数据。即在本实施例中,多个地址管理节点组成的地址管理网络也是一种区块链网络,在地址管理网络中,可以通过多个地址管理节点对地址信息进行分布式存储,以增强地址数据的存储能力。而在实际交易过程中,可以通过地址管理网络中的部分节点完成地址查询,而其他节点仅作为地址存储,这样可以更高效的利用网络的分布式存储能力,以及尽可能快的完成查询交易。
但在当前网络***在短时间内出现大量交易时,为了避免大规模高并发运算造成数据拥堵和延迟,还可以根据实际交易处理数量或当前时间段,启用多个节点完成根据地址查询交易向交易发起节点发送交易目标节点对应的地址数据的操作。
在本申请的部分实施例中,如图3所示,所述地址数据包括节点的网络地址、终端MAC地址以及统一标识地址中的一种;所述地址管理节点存储有地址索引表;所述地址索引表中包括各节点对应的地址数据,以及与地址数据对应的地址公钥;所述地址公钥由加密HASH值组成;所述地址管理节点被进一步配置为:
遍历各子链节点的地址公钥;再根据预设加密算法解析所述地址公钥,获取与所述地址公钥对应的地址数据,以及生成地址索引表。
由于在实际应用中,不同的网络对应的地址信息形式不同,而不同的网络对于地址信息的设定方式也不同,因此,在本申请提供的技术方案中,为了使地址管理节点中存储的地址数据能够适用于多个不同的网络,可以采用统一标识形式的网络地址、终端MAC地址以及统一标识地址中的一种。在实际查询交易中,可以优先在地址索引表中查询与交易发起节点地址形式相同的地址数据,以能够直接确定交易目标节点。
在地址数据查询之前,可以通过便利各子链节点的地址公钥,并根据地址公钥与地址数据之间的对应关系来创建地址索引表,以便在后续地址数据查询时,可以直接通过地址索引表确定交易目标节点的地址信息。
在本申请的部分实施例中,所述地址管理节点还被配置为根据公链网络中单位时间内发生的交易数量,计算网络空闲度;以及,在所述网络空闲度低于预设阈值时,向所述公链和子链中的所有节点广播地址确认信息;所述公链和子链中的节点被配置为在接收到所述地址确认信息后,发送当前地址信息至所述地址管理节点。
实际应用中,地址管理节点中存储的地址数据需要根据实际情况进行不断更新,其更新方式可以包括两种,一种方式为,新接入的公链或子链节点主动将地址变更信息发送给地址管理节点;这种地址信息的更新方式更适用于公链和各子链的地址管理形式相同的情况下。而另一种方式为,地址管理节点主动向各节点发布确认的方式,这种更新方式可适用于各种公链和子链网络形式,但这种更新方式在当前***中的交易数量很多时,会占用部分带宽资源,因此,本实施例可以通过计算网络空闲度,并在网络中交易数量较低的情况下在再实施同步。
由于本申请网络是区块链网络,因此,得益于区块链网络的交易记账形式,所有交易均需要在整个网络中进行广播,以完成区块链创建。因此,本实施例可以通过区块链的创建情况间接获得交易数量,使得本实施例可以很轻松地计算网络空闲度。实际应用中,根据不同的网络特点,可以设置不同的预设阈值,以兼顾更新速率和网络带宽的占用情况。
进一步地,所述地址管理节点还被配置为根据所述当前地址信息匹配所存储的地址数据;以及,删除未匹配到所述当前地址信息的地址数据。即在接收到子链或公链中的节点发送的当前地址信息后,可以通过当前地址信息与地址索引表中存储的信息进行匹配,如果节点对应的地址信息没有改变,则保留地址索引表中对应的数据;如果节点对应的地址信息发生改变,则可将地址索引表中的信息兑换为当前地址信息。并且,通过上述地址确认信息过程,如果在确认信息的过程中出现未匹配成功的节点或对应的地址数据,则可以删除或新增地址索引表中的数据。
在本申请的另一个实施例中,本申请还提供一种基于公链的地址管理***,包括公链和接入公链的第三方区块链,所述公链和第三方区块链中的节点相互建立网络连接,所述公链中的部分节点被配置为地址管理节点,存储、同步所述公链和第三方区块链中的全部节点地址数据;
其中,所述地址管理节点被进一步配置为在发生交易时,接收交易发起节点或所述地址管理节点的临近节点发送的地址查询交易;以及,根据所述地址查询交易向所述交易发起节点发送交易目标节点对应的地址数据。所述地址管理节点还被配置为接收所述第三方区块链节点广播的地址变更信息,以及将存储的地址数据按照所述地址变更信息进行更新。
在本申请提供的技术方案中,第三方区块链可以与公链具有不同的交易标准,主要指代对接现有的区块链网络,如已经成熟的以太坊、比特币网络等,也可能是根据区块链网络原理自行组网的第三方私链、第三方行业链和第三方联盟链等。这种第三方区块链网络一般不具有和公链相同的共识机制和智能合约,因此较难直接进行通信以及直接完成交易。
因此,如图4所示,为了使不同的第三方区块链网络与公链之间能够通信以及完成跨链交易,所述地址管理***还包括由所述公链节点和/或第三方区块链节点组成的平行链。所述平行链节点被配置为能够执行公链节点的全部数据操作,具有公链节点的全部功能和信息;还被配置为能够执行第三方区块链节点的全部数据操作,具有第三方区块链节点的全部功能和信息;至少一个所述平行链节点被配置为所述地址管理节点。实际应用中,平行链节点可以在交易时对交易的信息进行传递,并将交易进行桥接。
例如,子链中的节点需要跨链进行交易时,可先在子链范围内完成区块数据的广播,再通过平行链节点将交易在公链范围内广播,即同时在子链和公链网络中完成对于同一个交易的区块链数据创建、验证、存储等,以形成区块链数据,对交易信息进行分布存储后,完成跨链交易。这种通过平行链进行桥接的跨链交易方式,可以通过最小的节点改造量,实现跨链交易的目的。
地址管理***在进行交易时,由交易发起节点向所述地址管理节点发起地址查询交易,所述地址查询交易包括交易摘要;所述地址管理节点被配置为根据所述地址查询交易遍历存储地址数据;查找与所述交易摘要对应的交易目标链,以及提取所述交易目标链对应平行链节点的地址数据,并发送所述平行链节点的地址数据至所述交易发起点。
由以上技术方案可知,本申请提供一种基于公链的地址管理***,所述***包括公链和接入公链的子链,并且,公链中的部分节点被配置为地址管理节点,存储、同步所述公链和子链中的全部节点地址数据;在发生交易时,地址管理节点可接收地址查询交易;并根据地址查询交易向交易发起节点发送交易目标节点对应的地址数据。地址管理节点还被配置为接收子链节点广播的地址变更信息,以及将存储的地址数据按照地址变更信息进行更新。
本申请提供的地址管理***,可以通过将公链中的部分节点配置为地址管理节点,结合区块链交易特点,可以使交易发起节点快速获取到交易目标节点的地址,因此在交易发起节点中,可无需存储全部节点的地址信息,并且交易目标节点地址的获取过程仅发生在交易发起节点和地址管理节点之间,无需通过广播交易来获取交易目标节点的地址,可以显著减小对网络带宽的占用,提高交易效率。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。