首页 / 专利库 / 银行与财务事项 / 区块链交易 / 一种支持区块链业务的NDN网络通信方法

一种支持链业务的NDN网络通信方法

阅读:1036发布:2020-06-13

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

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

说明书全文

一种支持链业务的NDN网络通信方法

技术领域

[0001] 本发明属于数据通信的技术领域,尤其涉及一种支持区块链业务的NDN网络通信方法。

背景技术

[0002] 命名数据网络(NDN,Named-Data Networking)作为一种新型的网络架构,能够天然支持内容分发、多播广播、移动性等能,保证数据的安全性。NDN最初的提出是针对互联网的使用逐步转变成用户对内容的获取,设计了以用户请求驱动的主动“拉取”内容的网络通信模式,并在解决现有IP网络问题及内容分发性能上取得了很好的效果。然而对于像区块链业务这种由内容生成者产生内容并需要及时推送给其他用户的应用模式,NDN的体系架构中就欠缺了相关的考虑或者说效能保证。特别是在基于区块链技术的应用处于当前各个行业领域积极推行的时刻,因此结合NDN本身的优势,如何进一步加强对于区块链业务的支持,成为目前急需解决的问题之一。
[0003] 关于在NDN网络中全面地支持如比特币业务这种分布式的区块链系统,目前已有的实现方法主要还是基于NDN现有的网络通信模式和规则,首先定义了针对区块链业务的命名规则,一种是获取区块的请求命名(包括制定每个区块的名字规则),一种是获取区块同步情况的请求命名。一旦参与区块链业务的每个节点存储了新的区块后,都会持续在网络中发送对新区块之后的下一个区块的请求,若有节点生成新区块则会满足该请求,否则请求得不到数据包回应则会持续发送。并且也会向整个区块链业务系统中的其他节点发送同步请求,也即将自己当前存有的最新区块信息广播给系统中的所有其他节点,如果其他节点有比自己更新的区块,则将这些新的区块全部以数据包的形式,反向传输发送给请求节点,直至整个系统都保持存储同步的区块链,从而避免中断导致的丢包问题。通过这样的命名规则和通信方法来保证对于区块链业务的支持。
[0004] 目前在NDN网络中实现对于区块链业务的支持时,仍然是基于原有的NDN网络通信模式,即用户请求驱动数据由内容生产者处发送。然而区块链业务交易数据的产生并不是每时每刻都在发生,这些交易可能是用户随时发起的,也就是说这些交易可以是一段时间内突发进行很多笔、也可以是很长一段时间内一直不发生交易。因此,在目前的方案中,如果仍然是靠参与区块链业务的节点不断向网络中发起请求新区块的兴趣包,则是对带宽资源、NDN路由器处理能力的一种浪费。另外,整个区块链业务系统通过节点间彼此发送同步请求而达到稳定状态,也会带来数据包的重复传输,并不是最简单直接的办法。

发明内容

[0005] 针对区块链业务本身的特征、以及以上现有方案存在的一些问题和不足,本发明力求在保留原有NDN网络优良特性的基础上,设计研究对于区块链业务的支撑,希望尽可能的减少NDN网络中不必要的通信资源浪费,并保证区块链业务的实时性和可达性需求。首先,区块链业务,以比特币为例,是由用户主动发起交易行为,由系统中其他节点对这笔交易进行认证记账,从而确保该笔交易成功完成且不可篡改。这就意味着,一旦有用户发起交易,所有参与记账的节点都需要尽快收到这笔交易,然后进行新区块的创建,并广播给其他参与记账节点,通过工作量证明使得所有记账节点达成共识,最终完成这笔交易的记账。因此,为了保证区块链业务的实时可达,本发明在设计时会首先考虑让整个系统的通信节点互相建立路由信息,然后在NDN路由器节点中专设计支持区块链业务类型的请求包记录表,使得这类业务的通信是主动由数据信息生成者发起的,请求路径建立好后,再由数据信息生成者按此路径发送数据包。从而实现产生数据便建立通信的过程,无需额外的资源浪费。
[0006] 为实现上述目的,本发明采用如下的技术方案:
[0007] 一种支持区块链业务的NDN网络通信方法,包括以下步骤:
[0008] 步骤1、对于区块链业务系统中的每个通信节点,在NDN网络的通信环境中,若欲接收到产生数据对象的节点推送的其产生的区块链业务数据对象,则所有的通信节点不定期向NDN网络中发送请求包,建立区块链业务的NDN网络初始路由;
[0009] 步骤2、在原有的NDN网络节点上,增加一个专门针对推送服务待定兴趣表(PPIT),用于记录区块链业务实时推送新交易、新区块的请求包信息、指导数据包回传的路径,PPIT的写表规则是记录请求包在每个节点的出端口,然后再由区块生成者或者交易发起者将新的区块数据包或者新的交易数据包发送给业务系统参与节点;具体处理流程包括:
[0010] 当有请求包到达时,
[0011] 首先在内容缓存器(CS)中查找是否已经缓存有该内容,若有则直接返回该内容数据包;
[0012] 否则判定该请求包的类型;
[0013] 若为区块链应用请求包,则查询PPIT;
[0014] 如果该请求内容的名字已经在PPIT中存在,则相应记录请求包的出端口;
[0015] 如果该请求内容的名字在PPIT中不存在,则相应的添加该请求包全部信息条目,其包含:内容名字、请求包出端口号、推送内容序列号,再通过路由信息表进行路由和转发到下一节点;
[0016] 如果判定该请求包类型为分发类服务请求包,则按照常规的待定兴趣表PIT操作进行处理;
[0017] 而在数据包处理的过程中;
[0018] 首先判断数据包的类型;
[0019] 如果是分发类业务的数据包,则按照常规的命名数据网络流程处理;
[0020] 如果是区块链业务的数据包,则在相应的PPIT中进行查询;
[0021] 若数据包中的内容序列号大于等于PPIT中对应条目的序列号,则按照PPIT中记录的端口号进行转发,表明该数据包中包含的是其它用户实时请求的当前最新产生的业务数据或者相应业务数据后续内容块的持续推送;
[0022] 若数据包中的内容序列号小于PPIT中对应条目的序列号,尽管该数据包也是区块链业务的,但是却不是实时业务,则通过PIT表进行下一步的处理。
[0023] 作为优选,步骤1中建立区块链业务的NDN网络初始路由包括:
[0024] 如果请求包中表达自身为活跃状态,则在NDN路由器中相应的添加此条路由项,再转发到下一路由器重复上述过程;
[0025] 如果请求包中节点表达自身为退出状态,则路由器删除相应的路由项;
[0026] 接收到该种请求包的节点再继续响应一个表明已添加该节点到接收推送区块链业务信息联系人列表或者已删除该联系人的数据包。
[0027] 作为优选,步骤2中在数据回传的过程中,PPIT将不会删除已完成记录条目,同时会增加记录数据包序列号的功能。附图说明
[0028] 图1支持区块链业务的NDN网络控制信令请求包格式;
[0029] 图2支持区块链业务的NDN网络控制信令响应数据包格式;
[0030] 图3支持区块链业务的NDN网络传输请求包通信流程图
[0031] 图4支持区块链业务的NDN网络传输数据包通信流程图;
[0032] 图5支持区块链业务的NDN网络通信场景实例。

具体实施方式

[0033] 本发明针对NDN网络具有优良的内容分发能力,包括对多播广播等的支持,但是缺乏对于区块链业务高效完善的支撑能力等问题,在现有NDN网络基本通信模式和规则的基础上,设计增加了支持区块链业务的通信规则并在原有NDN通信网络节点模型中设计增加了新的表项,同时设计完善的读写表过程,用于记录区块链业务请求,从而保证该业务在不浪费NDN网络带宽资源和节点处理能力的基础上实现实时可达的通信。
[0034] 首先,对于区块链业务系统中的每个通信节点(用户终端或者服务器),在NDN网络的通信环境中,如果想接收到产生数据对象的节点推送的其产生的区块链业务数据对象,就需要所有的通信节点不定期(可以是当节点状态发生变化时触发,也可以是系统规定好时间周期)向NDN网络中发送请求包,这部分请求包的类型即为控制信令类型,如图1所示,用于表达自身节点的活跃状态(继续参与被动推动和主动请求的应用场景或者退出该应用场景)。如表1所示,为支持区块链业务的NDN网络初始路由的建立流程。
[0035] 1、如果请求包中表达自身为活跃状态,则在NDN路由器中相应的添加此条路由项,再转发到下一路由器重复上述过程;
[0036] 2、如果请求包中节点表达自身为退出状态,则路由器删除相应的路由项;
[0037] 3、接收到该种请求包的节点再继续响应一个表明已添加该节点到接收推送区块链业务信息联系人列表或者已删除该联系人的数据包,数据格式如图2所示。
[0038] 由此,NDN网络中的路由器就是根据节点发送的请求包带有的信息来建立区块链业务系统在整个网络中的初始路由,便于后续通信的路由和转发。
[0039] 表1:
[0040]
[0041] 在支持区块链业务的NDN网络通信方法设计中,本发明将会详细的区分区块链业务这种内容产生者主动推送类型的请求服务和普通用户主动从内容源获取类型的请求服务。因此,在原有的NDN网络节点模块的原型基础上,增加了一个专门针对推送服务待定兴趣表(PPIT),用于记录区块链业务实时推送新交易、新区块的请求包信息,而NDN节点模型中原有的待定兴趣表(PIT)仍然只负责记录用户发起的非实时分发类业务的请求包信息。PPIT的功能类似于PIT,负责指导数据包回传的路径,需要在请求包发的过程中记录下请求的内容名和数据包回传应该经过的端口号。不同的是,区块链业务请求包是由区块生成者或者交易发起者主动发出的,因此PPIT的写表规则是记录请求包在每个节点的出端口,然后再由区块生成者或者交易发起者将新的区块数据包或者新的交易数据包发送给业务系统参与节点。具体算法实现过程如表2所示。而数据包的可达性则是通过前边所述的系统节点活跃度交互来保证。这样就避免了接收当频繁主动的发起请求,却未必能得到响应,减少交互次数,提高链路利用率并减小内容传输延迟。
[0042] 表2:
[0043]
[0044] 同时考虑到区块链业务的持续推送,避免对同一内容后续内容块再继续发送请求包或数据包重复发送造成时延、体验差等问题,在数据回传的过程中,PPIT将不会删除已完成记录条目,同时会增加记录数据包序列号的功能。具体通信流程图如图3和图4所示。
[0045] 当有请求包到达时,
[0046] (1)首先在内容缓存器CS中查找是否已经缓存有该内容,若有则直接返回该内容数据包;
[0047] (2)否则判定该请求包的类型;
[0048] (3)若为区块链应用请求包,则查询PPIT;
[0049] (4)如果该请求内容的名字已经在PPIT中存在,则相应记录请求包的出端口;
[0050] (5)如果该请求内容的名字在PPIT中不存在,则相应的添加该请求包全部信息条目(内容名字、请求包出端口号、推送内容序列号),再通过路由信息表进行路由和转发到下一节点。
[0051] (6)如果判定该请求包类型为分发类服务请求包,则按照常规的待定兴趣表PIT操作进行处理。
[0052] 而在数据包处理的过程中,
[0053] (1)首先判断数据包的类型;
[0054] (2)如果是分发类业务的数据包,则按照常规的命名数据网络流程处理;
[0055] (3)如果是区块链业务的数据包,则在相应的PPIT中进行查询;
[0056] (4)若数据包中的内容序列号大于等于PPIT中对应条目的序列号,则按照PPIT中记录的端口号进行转发,表明该数据包中包含的是其它用户实时请求的当前最新产生的业务数据或者相应业务数据后续内容块的持续推送;
[0057] (5)若数据包中的内容序列号小于PPIT中对应条目的序列号,尽管该数据包也是区块链业务的,但是却不是实时业务,则通过PIT表进行下一步的处理。
[0058] 本发明通过新增NDN路由器的表结构,支持实时区块链业务,只需要发送一次请求就可以对应获得一个数据包。
[0059] 实施例1
[0060] 本发明设计的应用场景比特币为代表,在NDN网络中实现通信和交易过程。比特币作为一个典型的公有链形式,是区块链技术最早且最有代表性的应用场景。如图5所示,是在基于本发明部署的比特币应用场景。当用户A想要使用比特币向商家Z付款完成一笔交易时,
[0061] (1)首先A发送正常的请求包给Z获取Z的收款地址(该地址用于存放比特币);
[0062] (2)Z收到该请求包后创建一个新地址用于接收A的款项,并将该地址通过数据包回传给A;
[0063] (3)A收到Z的数据包后,在自己的“钱包”(包含多个比特币地址)中选择付款地址,并用相应的私钥(每个地址对应一个私钥)加密该笔交易申请
[0064] (4)这里我们假定参与比特币交易的矿工为图中所示的旷工C到G,用户A已经添加矿工C到G为自己的联系人列表。此时用户A发送区块链业务请求包给所有联系人列表成员(包括所有的矿工和商家Z),网络中的路由器节点进行写PPIT表过程,构造一条用户A向所有矿工和商家Z共同发送关于该笔交易的数据包的路径,并由系统节点间控制信令的交互来保证数据的可达性;
[0065] (5)然后用户A将该笔交易申请以数据包的形式发送出去,网络中的路由器节点根据PPIT中记录的信息转发该数据包到所有比特币应用场景中的通信节点;
[0066] (6)矿工C到G收到数据包后,使用相应的公钥验证该笔交易的合法性,将一段时间内的交易数据打包成一个新的交易块,计算新的哈希值,从而形成新的账本;
[0067] (7)最先计算出符合规则的哈希值的矿工(比如矿工D),会获得比特币奖励,包含在这个新的区块中,矿工D同样发送区块链业务请求包给所有其它矿工,建立PPIT之后,D再发送它计算好的区块以数据包形式给其他矿工,以记录下这笔交易,保证交易生效和账本不可篡改。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈