一种支持区块链业务的NDN网络通信方法技术

技术编号:18840436 阅读:29 留言:0更新日期:2018-09-05 08:26
本发明专利技术公开一种支持区块链业务的NDN网络通信方法,针对NDN网络具有优良的内容分发能力,包括对多播广播等的支持,但是缺乏对于区块链业务高效完善的支撑能力等问题,在现有NDN网络基本通信模式和规则的基础上,设计增加了支持区块链业务的通信规则,并在原有NDN通信网络节点模型中设计增加一个专门针对推送服务待定兴趣表(PPIT),同时设计完善的读写表过程,用于记录区块链业务实时推送新交易、新区块的请求包信息、指导数据包回传的路径,以记录区块链业务请求,从而保证该业务在不浪费NDN网络带宽资源和节点处理能力的基础上实现实时可达的通信。

A NDN network communication method supporting block chaining business

The invention discloses a NDN network communication method supporting block chain service. In view of the excellent content distribution capability of NDN network, including support for multicast, etc., but the lack of efficient and perfect support capability for block chain service, an increase is designed based on the existing basic communication mode and rules of NDN network. The communication rules supporting block chain services are added, and a special push service pending interest table (PPIT) is added to the original NDN network node model. At the same time, a complete read-write table process is designed to record the real-time push of new transactions, the request packet information of new blocks, and the instruction packet return of block chain services. Path is used to record block chain service requests, so as to ensure that the service can achieve real-time communication without wasting NDN network bandwidth resources and node processing capacity.

【技术实现步骤摘要】
一种支持区块链业务的NDN网络通信方法
本专利技术属于数据通信的
,尤其涉及一种支持区块链业务的NDN网络通信方法。
技术介绍
命名数据网络(NDN,Named-DataNetworking)作为一种新型的网络架构,能够天然支持内容分发、多播广播、移动性等能力,保证数据的安全性。NDN最初的提出是针对互联网的使用逐步转变成用户对内容的获取,设计了以用户请求驱动的主动“拉取”内容的网络通信模式,并在解决现有IP网络问题及内容分发性能上取得了很好的效果。然而对于像区块链业务这种由内容生成者产生内容并需要及时推送给其他用户的应用模式,NDN的体系架构中就欠缺了相关的考虑或者说效能保证。特别是在基于区块链技术的应用处于当前各个行业领域积极推行的时刻,因此结合NDN本身的优势,如何进一步加强对于区块链业务的支持,成为目前急需解决的问题之一。关于在NDN网络中全面地支持如比特币业务这种分布式的区块链系统,目前已有的实现方法主要还是基于NDN现有的网络通信模式和规则,首先定义了针对区块链业务的命名规则,一种是获取区块的请求命名(包括制定每个区块的名字规则),一种是获取区块同步情况的请求命名。一旦参与区块链业务的每个节点存储了新的区块后,都会持续在网络中发送对新区块之后的下一个区块的请求,若有节点生成新区块则会满足该请求,否则请求得不到数据包回应则会持续发送。并且也会向整个区块链业务系统中的其他节点发送同步请求,也即将自己当前存有的最新区块信息广播给系统中的所有其他节点,如果其他节点有比自己更新的区块,则将这些新的区块全部以数据包的形式,反向传输发送给请求节点,直至整个系统都保持存储同步的区块链,从而避免中断导致的丢包问题。通过这样的命名规则和通信方法来保证对于区块链业务的支持。目前在NDN网络中实现对于区块链业务的支持时,仍然是基于原有的NDN网络通信模式,即用户请求驱动数据由内容生产者处发送。然而区块链业务交易数据的产生并不是每时每刻都在发生,这些交易可能是用户随时发起的,也就是说这些交易可以是一段时间内突发进行很多笔、也可以是很长一段时间内一直不发生交易。因此,在目前的方案中,如果仍然是靠参与区块链业务的节点不断向网络中发起请求新区块的兴趣包,则是对带宽资源、NDN路由器处理能力的一种浪费。另外,整个区块链业务系统通过节点间彼此发送同步请求而达到稳定状态,也会带来数据包的重复传输,并不是最简单直接的办法。
技术实现思路
针对区块链业务本身的特征、以及以上现有方案存在的一些问题和不足,本专利技术力求在保留原有NDN网络优良特性的基础上,设计研究对于区块链业务的支撑,希望尽可能的减少NDN网络中不必要的通信资源浪费,并保证区块链业务的实时性和可达性需求。首先,区块链业务,以比特币为例,是由用户主动发起交易行为,由系统中其他节点对这笔交易进行认证记账,从而确保该笔交易成功完成且不可篡改。这就意味着,一旦有用户发起交易,所有参与记账的节点都需要尽快收到这笔交易,然后进行新区块的创建,并广播给其他参与记账节点,通过工作量证明使得所有记账节点达成共识,最终完成这笔交易的记账。因此,为了保证区块链业务的实时可达,本专利技术在设计时会首先考虑让整个系统的通信节点互相建立路由信息,然后在NDN路由器节点中专门设计支持区块链业务类型的请求包记录表,使得这类业务的通信是主动由数据信息生成者发起的,请求路径建立好后,再由数据信息生成者按此路径发送数据包。从而实现产生数据便建立通信的过程,无需额外的资源浪费。为实现上述目的,本专利技术采用如下的技术方案:一种支持区块链业务的NDN网络通信方法,包括以下步骤:步骤1、对于区块链业务系统中的每个通信节点,在NDN网络的通信环境中,若欲接收到产生数据对象的节点推送的其产生的区块链业务数据对象,则所有的通信节点不定期向NDN网络中发送请求包,建立区块链业务的NDN网络初始路由;步骤2、在原有的NDN网络节点上,增加一个专门针对推送服务待定兴趣表(PPIT),用于记录区块链业务实时推送新交易、新区块的请求包信息、指导数据包回传的路径,PPIT的写表规则是记录请求包在每个节点的出端口,然后再由区块生成者或者交易发起者将新的区块数据包或者新的交易数据包发送给业务系统参与节点;具体处理流程包括:当有请求包到达时,首先在内容缓存器(CS)中查找是否已经缓存有该内容,若有则直接返回该内容数据包;否则判定该请求包的类型;若为区块链应用请求包,则查询PPIT;如果该请求内容的名字已经在PPIT中存在,则相应记录请求包的出端口;如果该请求内容的名字在PPIT中不存在,则相应的添加该请求包全部信息条目,其包含:内容名字、请求包出端口号、推送内容序列号,再通过路由信息表进行路由和转发到下一节点;如果判定该请求包类型为分发类服务请求包,则按照常规的待定兴趣表PIT操作进行处理;而在数据包处理的过程中;首先判断数据包的类型;如果是分发类业务的数据包,则按照常规的命名数据网络流程处理;如果是区块链业务的数据包,则在相应的PPIT中进行查询;若数据包中的内容序列号大于等于PPIT中对应条目的序列号,则按照PPIT中记录的端口号进行转发,表明该数据包中包含的是其它用户实时请求的当前最新产生的业务数据或者相应业务数据后续内容块的持续推送;若数据包中的内容序列号小于PPIT中对应条目的序列号,尽管该数据包也是区块链业务的,但是却不是实时业务,则通过PIT表进行下一步的处理。作为优选,步骤1中建立区块链业务的NDN网络初始路由包括:如果请求包中表达自身为活跃状态,则在NDN路由器中相应的添加此条路由项,再转发到下一路由器重复上述过程;如果请求包中节点表达自身为退出状态,则路由器删除相应的路由项;接收到该种请求包的节点再继续响应一个表明已添加该节点到接收推送区块链业务信息联系人列表或者已删除该联系人的数据包。作为优选,步骤2中在数据回传的过程中,PPIT将不会删除已完成记录条目,同时会增加记录数据包序列号的功能。附图说明图1支持区块链业务的NDN网络控制信令请求包格式;图2支持区块链业务的NDN网络控制信令响应数据包格式;图3支持区块链业务的NDN网络传输请求包通信流程图;图4支持区块链业务的NDN网络传输数据包通信流程图;图5支持区块链业务的NDN网络通信场景实例。具体实施方式本专利技术针对NDN网络具有优良的内容分发能力,包括对多播广播等的支持,但是缺乏对于区块链业务高效完善的支撑能力等问题,在现有NDN网络基本通信模式和规则的基础上,设计增加了支持区块链业务的通信规则并在原有NDN通信网络节点模型中设计增加了新的表项,同时设计完善的读写表过程,用于记录区块链业务请求,从而保证该业务在不浪费NDN网络带宽资源和节点处理能力的基础上实现实时可达的通信。首先,对于区块链业务系统中的每个通信节点(用户终端或者服务器),在NDN网络的通信环境中,如果想接收到产生数据对象的节点推送的其产生的区块链业务数据对象,就需要所有的通信节点不定期(可以是当节点状态发生变化时触发,也可以是系统规定好时间周期)向NDN网络中发送请求包,这部分请求包的类型即为控制信令类型,如图1所示,用于表达自身节点的活跃状态(继续参与被动推动和主动请求的应用场景或者退出该应本文档来自技高网
...

【技术保护点】
1.一种支持区块链业务的NDN网络通信方法,其特征在于,包括以下步骤:步骤1、对于区块链业务系统中的每个通信节点,在NDN网络的通信环境中,若欲接收到产生数据对象的节点推送的其产生的区块链业务数据对象,则所有的通信节点不定期向NDN网络中发送请求包,建立区块链业务的NDN网络初始路由;步骤2、在原有的NDN网络节点上,增加一个专门针对推送服务待定兴趣表(PPIT),用于记录区块链业务实时推送新交易、新区块的请求包信息、指导数据包回传的路径,PPIT的写表规则是记录请求包在每个节点的出端口,然后再由区块生成者或者交易发起者将新的区块数据包或者新的交易数据包发送给业务系统参与节点;具体处理流程包括:当有请求包到达时,首先在内容缓存器(CS)中查找是否已经缓存有该内容,若有则直接返回该内容数据包;否则判定该请求包的类型;若为区块链应用请求包,则查询PPIT;如果该请求内容的名字已经在PPIT中存在,则相应记录请求包的出端口;如果该请求内容的名字在PPIT中不存在,则相应的添加该请求包全部信息条目,其包含:内容名字、请求包出端口号、推送内容序列号,再通过路由信息表进行路由和转发到下一节点;如果判定该请求包类型为分发类服务请求包,则按照常规的待定兴趣表PIT操作进行处理;而在数据包处理的过程中;首先判断数据包的类型;如果是分发类业务的数据包,则按照常规的命名数据网络流程处理;如果是区块链业务的数据包,则在相应的PPIT中进行查询;若数据包中的内容序列号大于等于PPIT中对应条目的序列号,则按照PPIT中记录的端口号进行转发,表明该数据包中包含的是其它用户实时请求的当前最新产生的业务数据或者相应业务数据后续内容块的持续推送;若数据包中的内容序列号小于PPIT中对应条目的序列号,尽管该数据包也是区块链业务的,但是却不是实时业务,则通过PIT表进行下一步的处理。...

【技术特征摘要】
1.一种支持区块链业务的NDN网络通信方法,其特征在于,包括以下步骤:步骤1、对于区块链业务系统中的每个通信节点,在NDN网络的通信环境中,若欲接收到产生数据对象的节点推送的其产生的区块链业务数据对象,则所有的通信节点不定期向NDN网络中发送请求包,建立区块链业务的NDN网络初始路由;步骤2、在原有的NDN网络节点上,增加一个专门针对推送服务待定兴趣表(PPIT),用于记录区块链业务实时推送新交易、新区块的请求包信息、指导数据包回传的路径,PPIT的写表规则是记录请求包在每个节点的出端口,然后再由区块生成者或者交易发起者将新的区块数据包或者新的交易数据包发送给业务系统参与节点;具体处理流程包括:当有请求包到达时,首先在内容缓存器(CS)中查找是否已经缓存有该内容,若有则直接返回该内容数据包;否则判定该请求包的类型;若为区块链应用请求包,则查询PPIT;如果该请求内容的名字已经在PPIT中存在,则相应记录请求包的出端口;如果该请求内容的名字在PPIT中不存在,则相应的添加该请求包全部信息条目,其包含:内容名字、请求包出端口号、推送内容序列号,再通过路由信息表进行路由和转发到下一节点;如果判定该请求包类型为分发类服务请求包,则按照常规的待定兴趣表PIT操作...

【专利技术属性】
技术研发人员:刘江霍如鄂新华黄韬张娇谢人超杨帆潘恬
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1