首页 > 专利 > 北京比新科技有限公司 > 一种基于区块链overlay网络的路由信息交互方法专利详情

一种基于区块链overlay网络的路由信息交互方法   0    0

实质审查 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2018-12-27
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2021-10-26
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2038-12-27
基本信息
有效性 实质审查 专利类型 发明专利
申请号 CN201811607367.4 申请日 2018-12-27
公开/公告号 CN109412953A 公开/公告日 2019-03-01
授权日 预估到期日 2038-12-27
申请年 2018年 公开/公告年 2019年
缴费截止日
分类号 H04L12/741 主分类号 H04L12/741
是否联合申请 独立申请 文献类型号 A
独权数量 1 从权数量 9
权利要求数量 10 非专利引证数量 0
引用专利数量 0 被引证专利数量 0
非专利引证
引用专利 被引证专利
专利权维持 99 专利申请国编码 CN
专利事件 转让 事务标签 公开、申请权转移、实质审查
申请人信息
申请人 第一申请人
专利权人 北京比新科技有限公司 当前专利权人 王春峰
发明人 王春峰、任志军、彭赟 第一发明人 王春峰
地址 北京市海淀区永嘉北路6号5幢2层东侧162 邮编 100094
申请人数量 1 发明人数量 3
申请人所在省 北京市 申请人所在市 北京市海淀区
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
北京邦创至诚知识产权代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
吴强
摘要
本发明提供了一种基于区块链over lay网络的路由信息交互方法,用于区块链上网络节点之间非广播性信息的交互,区块链上每个所述网络节点均保存并维护一个路由信息表;收到所述非广播性信息的网络节点为接收节点,接收节点读取非广播性信息并从中解析出指定节点的地址信息;如果接收节点在自己的路由信息表中查找到与指定节点地址相同的可达地址,且该可达地址对应的下一跳地址为空,则该接收节点为指定节点,非广播性信息不再传递,该接收节点解析并读取非广播性信息中的发送节点地址信息以及消息负载;本发明可用于区块链中的两个或多个节点之间的通信,如基于区块链over lay网络之上的社交,可有效避免现有的广播式信息所带来的效率低下、资源浪费的问题。
  • 摘要附图
    一种基于区块链overlay网络的路由信息交互方法
  • 说明书附图:图1
    一种基于区块链overlay网络的路由信息交互方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-10-26 实质审查的生效 IPC(主分类): H04L 12/741 专利申请号: 201811607367.4 申请日: 2018.12.27
2 2020-01-21 专利申请权的转移 登记生效日: 2020.01.03 申请人由北京比新科技有限公司变更为王春峰 地址由100094 北京市海淀区永嘉北路6号5幢2层东侧162变更为100080 北京市海淀区中关村路19号中科院人才交流中心
3 2019-03-01 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于区块链overlay网络的路由信息交互方法,其特征在于,用于区块链上网络节点之间非广播性信息的交互,其包括:
S1:区块链上每个所述网络节点均保存并维护一个路由信息表;
S2:所述路由信息表包括若干条路由记录;
每条所述路由记录包括:可达地址、下一跳地址、时延和超时时间;
若干条所述路由记录包括:关于网络节点自身的本机路由记录、以及关于该网络节点的信息可到达的可达节点的可达路由记录;
21)本机路由记录的可达地址为网络节点自身的本机路由地址,本机路由地址对应的下一跳地址为空,对应的时延和超时时间为0ms;
22)可达路由记录的可达地址为可达节点的可达路由地址;
自本机路由地址到可达路由地址的路由线路上,可达节点的下一跳地址不为空;
时延为网络节点到可达节点的路由过程的时间延迟;可达路由记录中的时延和超时时间大于0ms;
S3:区块链上网络节点之间通过发送非广播性信息进行信息交互,发送非广播性信息的网络节点为发送节点,非广播性信息的最终送达的目的节点为指定节点;
S4:当发送节点向指定节点发送非广播性信息时:
41)如果指定节点为发送节点所述路由信息表上的一个可达节点;
如果所述发送节点的路由信息表仅包括一条关于该指定节点的可达路由记录,则发送节点将非广播性信息发送到该可达路由记录中登记的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
如果所述发送节点的路由信息表包括若干条关于该指定节点的可达路由记录,发送节点选择时延最小的一个可达路由记录,将非广播性信息发送到该时延最短的可达路由记录中登记的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
42)如果指定节点不属于发送节点的可达节点,即发送节点的路由信息表上不包括关于该指定节点的可达路由记录,则发送节点将非广播性信息发送到所有与其直联的网络节点;
S5:收到所述非广播性信息的网络节点为接收节点,接收节点读取非广播性信息并从中解析出指定节点的地址信息;
51)如果接收节点在自己的路由信息表中查找到与指定节点地址相同的可达地址,且该可达地址对应的下一跳地址为空,则该接收节点为指定节点,非广播性信息不再传递,该接收节点解析并读取非广播性信息中的发送节点地址信息以及消息负载;
52)如果接收节点在自己的路由信息表中查找到与指定节点地址相同的可达地址,而该可达地址对应的下一跳地址不为空,则该接收节点将所述非广播性信息传递给可达地址对应的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
53)如果接收节点在自己的路由信息表中未查询到与指定节点地址相同的可达地址,则接收节点将非广播性信息发送到所有与其直联的节点;
S6:重复步骤S5中的52)和/或53),直到步骤51)发生为止。

2.根据权利要求1所述的基于区块链overlay网络的路由信息交互方法,其特征在于,所述非广播性信息至少包括:指定节点的地址、发送节点的地址、消息类型、消息长度、消息序列以及消息负载。

3.根据权利要求1所述的基于区块链overlay网络的路由信息交互方法,其特征在于,所述接收节点自不同路径收到多条所述非广播性信息,如果多条非广播性信息的所述消息序列相同,则认为多条非广播性信息为相同消息,接收节点只处理第一个被接收的非广播性信息,删除其他后接收相同的非广播性信息。

4.根据权利要求1所述的基于区块链overlay网络的路由信息交互方法,其特征在于,所述非广播性信息被封装在TCP或者SSL之上。

5.根据权利要求1所述的基于区块链overlay网络的路由信息交互方法,其特征在于,所述网络节点在其初始化时建立一条到达自己本身的路由信息,根据该路由信息在所述路由信息表上记录所述本机路由地址。

6.根据权利要求1所述的基于区块链overlay网络的路由信息交互方法,其特征在于,还包括网络节点之间交换路由信息的步骤:
S7:新加入区块链网络中的新节点至少与一个区块链中的在先加入的全功能节点建立TCP/SSL双向连接,新节点与在先加入的全功能节点之间彼此向对方请求路由信息,即新节点与先加入的全功能节点之间共享彼此的路由信息表,将两者的路由信息表中的信息融合后并分别保存;
和/或,相邻两个网络节点之间定期共享和同步路由信息。

7.根据权利要求6所述的基于区块链overlay网络的路由信息交互方法,其特征在于,两个网络节点之间互相请求并共享路由信息,两个网络节点分为:发出请求路由信息的请求方,以及向请求方发出回应信息和/或共享自己路由信息表的回复方;
其中,请求方计算发出请求路由信息和收到回应信息的时间差,并将该时间差作为请求方和回复方之间的两节点时延。

8.根据权利要求7所述的基于区块链overlay网络的路由信息交互方法,其特征在于,所述请求方将接收的路由信息融合并记录在自己的路由信息表中,其中遵循融合规则如下:
1)如果收到的一条回复方路由记录为新地址信息,和/或,请求方的路由记录中的可达地址与所述回复方路由记录中可达地址相同,而请求方路由记录中的下一跳地址不同于回复方的本地地址,则请求方在其路由信息表中增加一条新可达路由记录;
新可达路由记录的可达地址为回复方路由记录中的可达地址;
新可达路由记录中下一跳地址为回复方的本地地址;
新可达路由记录中时延为所述回复方路由记录中的时延与所述两节点时延之和;
新可达路由记录中超时时间更新为设定时间;
2)如果收到的一条回复方路由记录的可达地址与请求方的路由信息表中已有记录的可达地址相同,且请求方的路由记录的下一跳地址为回复方的本地地址,则请求方更新所述已有记录的时延和超时时间;
已有记录的新时延为所述回复方路由记录中的时延与所述两节点时延之和;
已有记录的新超时时间更新为设定时间。

9.根据权利要求7所述的基于区块链overlay网络的路由信息交互方法,其特征在于,所述网络节点之间共享并同步更新彼此存在的路由信息表中的路由记录;网络节点自动删除在设定时段内无法同步更新的路由记录。

10.根据权利要求7所述的基于区块链overlay网络的路由信息交互方法,其特征在于,直联的两个所述网络节点之间定期向彼此请求路由信息,其中,所述请求方遵循所述融合规则将接收的路由信息融合并记录在自己的路由信息表中。
说明书

技术领域

[0001] 本发明涉及互联网技术领域,尤其是涉及区块链一种基于区块链overlay网络的路由信息交互方法。

背景技术

[0002] 区块链技术作为分布式账本和数字货币的基础,正在被广泛的研究和应用。区块链技术成功解决了各个参与方的信任问题以及各个分布式全功能节点间的信息同步问题。当一个区块链节点收到交易请求之后,它会把交易发送到和自己相连的所有节点,其它节点收到这个请求后,也将交易发送到它所相连的节点,最终交易信息在整个区块链网络中广播。区块链网络中的全功能节点对这些交易进行校验、确认以及存储。
[0003] 有交易的场景其实也意味着参与交易方有社交的需要,所以也逐渐有人开始探索基于区块链的社交网络。
[0004] 目前的区块链技术,重点在于解决信任问题和分布式节点之间的数据同步问题,交易依赖点对点网络广播到所有的区块链节点。对于仅涉及到双方或多方之间的信息交互,而不需要在整个区块链网络中广播的信息,比如基于区块链网络之上的社交需求,这些信息只有参与的双方或多方关心,如果将这些信息在区块链中广播,无疑是在浪费带宽。区块链网络缺乏对这种应用场景的支持。

发明内容

[0005] 本发明提供了一种基于区块链overlay网络的路由信息交互方法,以解决现有技术中存在的至少一个上述技术问题。
[0006] 为解决上述技术问题,本发明提供的一种基于区块链overlay网络的路由信息交互方法,用于区块链上网络节点之间非广播性信息的交互,其包括:
[0007] S1:区块链上每个所述网络节点均保存并维护一个路由信息表(非广播信息基于路由信息表在区块链overlay网络中传播);
[0008] S2:所述路由信息表包括若干条路由记录;
[0009] 每条所述路由记录包括:可达地址、下一跳地址、时延和超时时间等多个字段;
[0010] 若干条所述路由记录包括:关于网络节点自身的本机路由记录、以及关于该网络节点的信息可到达的可达节点的可达路由记录;
[0011] 21)本机路由记录的可达地址为网络节点自身的本机路由地址,本机路由地址对应的下一跳地址为空(或为零),对应的时延和超时时间为0ms;
[0012] 22)可达路由记录的可达地址为可达节点的可达路由地址;
[0013] 自本机路由地址到可达路由地址的路由线路上,可达节点的下一跳地址不为空;
[0014] 时延为网络节点到可达节点的路由过程的时间延迟;可达路由记录中的时延和超时时间大于0ms;
[0015] S3:区块链上网络节点之间通过发送非广播性信息进行信息交互,发送非广播性信息的网络节点为发送节点,非广播性信息的最终送达的目的节点(目的地)为指定节点;
[0016] S4:当发送节点向指定节点发送非广播性信息时:
[0017] 41)如果指定节点为发送节点所述路由信息表上的一个可达节点;
[0018] 如果所述发送节点的路由信息表仅包括一条关于该指定节点的可达路由记录,则发送节点将非广播性信息发送到该可达路由记录中登记的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
[0019] 如果所述发送节点的路由信息表包括若干条关于该指定节点的可达路由记录,发送节点选择时延最小(即延迟最短)的一个可达路由记录,将非广播性信息发送到该时延最短的可达路由记录中登记的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
[0020] 42)如果指定节点不属于发送节点的可达节点,即发送节点的路由信息表上不包括关于该指定节点的可达路由记录,则发送节点将非广播性信息发送到所有与其直联的网络节点;
[0021] S5:收到所述非广播性信息的节点为接收节点,接收节点读取非广播性信息并从中解析出指定节点的地址信息;
[0022] 51)如果接收节点在自己的路由信息表中查找到与指定节点地址相同的可达地址,且该可达地址对应的下一跳地址为空,则该接收节点为指定节点,非广播性信息不再传递,该接收节点解析并读取非广播性信息中的发送节点地址信息以及消息负载;
[0023] 52)如果接收节点在自己的路由信息表中查找到与指定节点地址相同的可达地址,而该可达地址对应的下一跳地址不为空,则该接收节点将所述非广播性信息传递给可达地址对应的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
[0024] 53)如果接收节点在自己的路由信息表中未查询到与指定节点地址相同的可达地址,则接收节点将非广播性信息发送到所有与其直联的节点;
[0025] S6:重复步骤S5中的52)和/或53),直到步骤51)发生为止。
[0026] 进一步地,所述非广播性信息至少包括:指定(或目的)节点的地址、发送节点的地址、消息类型、消息长度(Msglen,包括消息头)、消息序列(Sequence)以及消息负载(即消息内容)等多个字段。
[0027] 所述非广播性信息具有标准化格式,例如,字段格式参照下表1:
[0028] 表1
[0029]
[0030] 其中,消息类型可将非广播性信息分为:
[0031] 1:路由请求类
[0032] 2:路由相应类
[0033] 3:路由改变通知类
[0034] 4~64:预留分类
[0035] 65:应用层消息类,等等。
[0036] 进一步地,所述接收节点自不同路径收到多条所述非广播性信息,如果多条非广播性信息的所述消息序列相同,则认为多条非广播性信息为相同消息,接收节点只处理第一个被接收的非广播性信息,删除其他后接收相同的非广播性信息。
[0037] 基于区块链overlay网络的路由信息交互方法,其非广播性信息是被封装在区块链的overlay网络(即业务叠加网络)之上。其中优选地,所述非广播性信息被封装在TCP或者SSL之上。当然本申请中基于区块链overlay网络的路由信息交互方法不限于上述的协议,只要能够实现overlay网络技术的其他协议也在本申请权利涵盖之下。
[0038] 具体而言,非广播性信息作为TCP或者SSL的负载发送到相邻网络节点的。TCP/SSL的负载现有技术,且具有标准格式,按照TCP为例包括:
[0039] 以太头(14字节,目的MAC,源MAC,ethernettype:0x0800(ipv4));
[0040] IP头(一般是20字节):目的IP,源IP地址,IP头长度,IP报文长度;
[0041] TCP头(一半20个字节):源端口号,目的端口号,发送序列号,ack序列号,flags,发送窗口大小等;
[0042] TCP头之后就是TCP的负载,该文档中的报文就是放在TCP头之后。
[0043] 进一步地,所述网络节点在其初始化时建立一条到达自己本身的路由信息,根据该路由信息在所述路由信息表上记录所述本机路由地址。
[0044] 进一步地,还包括网络节点之间交换路由信息的步骤:
[0045] S7:新加入区块链网络中的新节点(全功能节点或者钱包)至少与一个区块链中的在先加入的全功能节点建立TCP/SSL双向连接,新节点与在先加入的全功能节点之间彼此向对方请求路由信息,即新节点与先加入的全功能节点之间共享彼此的路由信息表,将两者的路由信息表中的信息融合后并分别保存;
[0046] 和/或,相邻两个网络节点之间定期共享和同步路由信息,最终每个网络节点得到区块链网络上的所有路由信息。
[0047] 新节点向在先加入的全功能节点请求路由信息,在先加入的全功能节点向新节点请求路由信息。
[0048] 其中路由信息包括但不限于路由记录中的相关信息。
[0049] 进一步地,两个网络节点之间互相请求并共享路由信息,两个网络节点分为:发出请求路由信息的请求方,以及向请求方发出回应信息和/或共享自己路由信息表的回复方;
[0050] 其中,请求方计算发出请求路由信息和收到回应信息的时间差,并将该时间差作为请求方和回复方之间的两节点时延。
[0051] 进一步地,所述请求方将接收的路由信息融合并记录在自己的路由信息表中,其中遵循融合规则如下:
[0052] 1)如果收到的一条回复方路由记录为新地址信息,和/或,而请求方路由记录中的下一跳地址不同于回复方的本地地址,则请求方在其路由信息表中增加一条新可达路由记录;
[0053] 新可达路由记录的可达地址为回复方路由记录中的可达地址;
[0054] 新可达路由记录中下一跳地址为回复方的本地地址;
[0055] 新可达路由记录中时延为所述回复方路由记录中的时延与所述两节点时延(请求方和回复方两个节点间的时延)之和;
[0056] 新可达路由记录中超时时间更新为设定时间;
[0057] 本发明方法中,只要收到其他的节点发送过来的路由信息,则认为该条路由信息为有效状态,即依然在被使用中,那么请求方(接收端)则只需更新这个路由信息的超时时间为设定时间,例如为5-10分钟。
[0058] 如果在使用中,长时间收不到这条路由的反馈信息,就说明这条路由已经失效,或已经没人用了,就会删掉该条路由信息的路由记录。
[0059] 按照10分钟这个超时时间为例举个例子:
[0060] 1.1.增加一条路由记录(到达B目的的下一跳是A)的时候把超时时间更新为10分钟之后(当前系统启动时间+10分钟)
[0061] 1.2.如果在10分钟之内没有收到该条路由信息(从A到达B的路由信息),这条路由信息就会被从路由信息表中删掉;
[0062] 1.3.如果在10分钟内收到了该路由的信息,则把超时时间再设置为10分钟之后(当前系统启动时间+10分钟)。
[0063] 2)如果收到的一条回复方路由记录的可达地址与请求方的路由信息表中已有记录的可达地址相同,且请求方的路由记录的下一跳地址为回复方的本地地址,则请求方更新所述已有记录的时延和超时时间;
[0064] 已有记录的新时延为所述回复方路由记录中的时延与所述两节点时延(请求方和回复方两个节点间的时延)之和;
[0065] 已有记录的新超时时间更新为设定时间(例如5~10分钟)。
[0066] 即,对于同一个目的地址来说,请求方的本地有该目的地址(指定节点地址)的下一跳信息,也可能收到相邻节点发送过来的该目的地址的路由信息,但下一跳和本地存的路由信息表中下一跳可能不一样,这种情况下,需要在本地新建一条到这个目的地址(指定节点)的路由信息。这样在该节点上,就会出现到同一目的的两条路由信息。
[0067] 进一步地,所述网络节点之间共享并同步更新彼此存在的路由信息表中的路由记录(路由信息项);
[0068] 网络节点自动删除在设定时段(例如30-60分钟)内无法同步更新的路由记录。
[0069] 例如,对于长时间没有得到更新的表项,通过超时机制来删除,默认的超时时间为30分钟。
[0070] 进一步地,直联的两个所述网络节点之间定期向彼此请求路由信息,其中,所述请求方遵循所述融合规则将接收的路由信息融合并记录在自己的路由信息表中。
[0071] 其中,请求方向回复方发出请求信息时,可以设定超时时间为10-60分钟,如果超时,则认为对应的回复方已经断开连接,请求方在路由信息表中删除与回复方地址相关的路由记录。
[0072] 进一步地,当网络节点保存的路由信息发生改变时,该网络节点主动向与自己直联的网络节点请求以及共享路由信息。
[0073] 进一步地,所述网络节点为全功能节点和轻量级节点;
[0074] 所述全功能节点为保存了整个区块链网络中全部交易数据,且负责校验每一笔新交易信息的节点;所述轻量节点为区块链中不需要存储交易数据的节点。
[0075] 其中,所述全功能节点通过P2P网络连接组成一个mesh网络;每个全功能节点不需要通过其它节点就可以直接加入到区块链的节点。而轻量节点,又称作SPV(simple payment verification)节点,是区块链网络中需要通过连接一个或者多个全功能节点才可加入到区块链网络中的节点。
[0076] 轻量节点处在整个网络的边缘,轻量节点不需要存储区块链网络中的交易数据。例如,所述轻量节点可以是区块链上的钱包模块节点,钱包模块节点为基于区块链的具有钱包功能的程序应用,而区块链网络中的全功能节点通常也包含了钱包的功能。钱包模块节点可以通过把自己的地址分享出去来接收其它钱包的汇款。而钱包地址也是接收转账汇款之外信息的标识。
[0077] 进一步地,路由的所述超时时间为20-60分钟。
[0078] 进一步地,如果所述网络节点在超时时间内无法收到连接某个所述可达节点或者所述下一跳节点的路由的更新信息,则认为该可达节点或者下一跳节点不可达,则从所述路由信息表中删除该可达节点或者下一跳节点的路由信息。
[0079] 超时时间为基于系统启动时间设定,修改系统时间不会引起路由信息表项的提前或者延迟删除。
[0080] 采用上述技术方案,本发明具有如下有益效果:
[0081] 本发明提供的一种基于区块链overlay网络的路由信息交互方法,可用于区块链中的两个或多个节点之间的通信,如基于区块链overlay网络之上的社交,可有效避免现有的广播式信息所带来的效率低下、资源浪费的问题。

实施方案

[0084] 下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0085] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0086] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0087] 下面结合具体的实施方式对本发明做进一步的解释说明。
[0088] 本实施例提供的一种基于区块链overlay网络的路由信息交互方法,用于区块链上网络节点之间非广播性信息(例如社交信息)的交互,其包括:
[0089] S1:区块链上每个网络节点均保存并维护一个路由信息表;
[0090] S2:路由信息表包括若干条路由记录;
[0091] 参见表2所示,每条路由记录包括:可达地址、下一跳地址、时延和超时时间等多个字段;
[0092] 若干条路由记录包括:关于网络节点自身的本机路由记录、以及关于该网络节点的信息可到达的可达节点的可达路由记录;
[0093] 表2中No.0记录为本机路由记录,其他记录为可达路由记录。
[0094] 21)本机路由记录的可达地址为网络节点自身的本机路由地址,本机路由地址对应的下一跳地址为空(或为零),不需要通过TCP发送的下一跳,对应的时延和超时时间为0ms;
[0095] 22)可达路由记录的可达地址为可达节点的可达路由地址;
[0096] 自本机路由地址到可达路由地址的路由线路上,可达节点的下一跳地址不为空;例如,下一跳是peer节点(对等节点)的IP地址。时延为网络节点到可达节点的路由过程的时间延迟;可达路由记录中的时延和超时时间大于0ms。
[0097] 表2
[0098]
[0099] 如果在超时时间内没有收到路由更新或可达节点的回复,则从本地路信息表中将该条路由记录删除,超时时间是基于系统启动时间设定的,修改系统时间不会导致路由记录因为提前或者延迟而被删除。默认情况下,路由信息的timeout时间为30分钟。
[0100] 见表2,No.1和No.2是与(本地)网络节点直接相连的可达节点的路由信息记录,其下一跳是peer的IP地址;
[0101] No.3和No.4是(本地)网络节点间接相连的可达节点的路由信息记录,本地网络节点可以分别通过直连节点182.1.1.2和182.1.1.3可达,路由记录中同时也记录了本地网络节点到可达节点的时延。本地网络节点可以通过多条路径达到同一可达地址,时延可能会有差异,如上例中的No.3和No.4两条记录。
[0102] S3:区块链上网络节点之间通过发送非广播性信息进行信息交互,发送非广播性信息的网络节点为发送节点,非广播性信息的最终送达的目的节点为指定节点;
[0103] S4:当发送节点向指定节点发送非广播性信息时:
[0104] 41)如果指定节点为发送节点路由信息表上的一个可达节点;
[0105] 如果发送节点的路由信息表仅包括一条关于该指定节点的可达路由记录,则发送节点将非广播性信息发送到该可达路由记录中登记的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
[0106] 如果发送节点的路由信息表包括若干条关于该指定节点的可达路由记录,发送节点选择时延最小(即延迟最短)的一个可达路由记录,将非广播性信息发送到该时延最短的可达路由记录中登记的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
[0107] 42)如果指定节点不属于发送节点的可达节点,即发送节点的路由信息表上不包括关于该指定节点的可达路由记录,则发送节点将非广播性信息发送到所有与其直联的网络节点;
[0108] S5:收到非广播性信息的节点为接收节点,接收节点读取非广播性信息并从中解析出指定节点的地址信息;
[0109] 51)如果接收节点在自己的路由信息表中查找到与指定节点地址相同的可达地址,且该可达地址对应的下一跳地址为空,则该接收节点为指定节点,非广播性信息不再传递,该接收节点解析并读取非广播性信息中的发送节点地址信息以及消息负载;
[0110] 52)如果接收节点在自己的路由信息表中查找到与指定节点地址相同的可达地址,而该可达地址对应的下一跳地址不为空,则该接收节点将非广播性信息传递给可达地址对应的下一跳地址,由该下一跳地址的下一跳节点将非广播性信息发送给指定节点;
[0111] 53)如果接收节点在自己的路由信息表中未查询到与指定节点地址相同的可达地址,则接收节点将非广播性信息发送到所有与其直联的节点;
[0112] S6:重复步骤S5中的52)和/或53),直到步骤51)发生为止。
[0113] 其中,非广播性信息至少包括:指定(或目的)节点的地址、发送节点的地址、消息类型、消息长度(Msglen,包括消息头)、消息序列(Sequence)以及消息负载(即消息内容)等多个字段。
[0114] 非广播性信息具有标准化格式,例如,字段格式参照下表:
[0115]
[0116] 其中,消息类型可将非广播性信息分为:
[0117] 1:路由请求类
[0118] 2:路由相应类
[0119] 3:路由改变通知类
[0120] 4~64:预留分类
[0121] 65:应用层消息类,等等。
[0122] 接收节点自不同路径收到多条非广播性信息,如果多条非广播性信息的消息序列相同,则认为多条非广播性信息为相同消息,接收节点只处理第一个被接收的非广播性信息,删除其他后接收相同的非广播性信息。
[0123] 其中,非广播性信息被封装在区块链的overlay网络(即业务叠加网络)之上。例如,非广播性信息被封装在TCP或者SSL之上。
[0124] 网络节点在其初始化时建立一条到达自己本身的路由信息,根据该路由信息在路由信息表上记录本机路由地址。
[0125] 而网络节点之间交换路由信息的步骤如下:
[0126] S7:新加入区块链网络中的新节点(全功能节点或者钱包)至少与一个区块链中的在先加入的全功能节点建立TCP/SSL双向连接,新节点与在先加入的全功能节点之间彼此向对方请求路由信息,即新节点与先加入的全功能节点之间共享彼此的路由信息表,将两者的路由信息表中的信息融合后并分别保存。
[0127] 当有一个新节点(全功能节点或者钱包)加入区块链网络时,它会和一个或者多个区块链网络中的全功能节点建立TCP/SSL双向连接,如本图1所示,新节点X和节点A、节点B建立连接。一旦建立连接,新节点X会分别向节点A、B请求路由信息,同时节点A、B也会向新节点B请求路由信息。
[0128] 新节点向在先加入的全功能节点请求路由信息,在先加入的全功能节点向新节点请求路由信息。或者,相邻两个网络节点之间定期共享和同步路由信息,最终每个网络节点得到区块链网络上的所有路由信息。
[0129] 两个网络节点之间互相请求并共享路由信息,两个网络节点分为:发出请求路由信息的请求方,以及向请求方发出回应信息和/或共享自己路由信息表的回复方;
[0130] 其中,请求方计算发出请求路由信息和收到回应信息的时间差,并将该时间差作为请求方和回复方之间的两节点时延。
[0131] 请求方将接收的路由信息融合并记录在自己的路由信息表中,并遵循融合规则如下:
[0132] 1)如果收到的一条回复方路由记录为新地址信息,和/或,而请求方路由记录中的下一跳地址不同于回复方的本地地址(例如:如果A收到了B的路由信息,A会把收到的路由信息中的下一跳都设置为B,这样如果有数据报文发到这条路由,A就会把报文转给B了),则请求方在其路由信息表中增加一条新可达路由记录;
[0133] 新可达路由记录的可达地址为回复方路由记录中的可达地址;
[0134] 新可达路由记录中下一跳地址为回复方的本地地址;
[0135] 新可达路由记录中时延为回复方路由记录中的时延与两节点时延(请求方和回复方两个节点间的时延)之和;
[0136] 新可达路由记录中超时时间更新为设定时间,例如10分钟。
[0137] 2)如果收到的一条回复方路由记录的可达地址与请求方的路由信息表中已有记录的可达地址相同,且请求方的路由记录的下一跳地址为回复方的本地地址,则请求方更新已有记录的时延和超时时间;
[0138] 已有记录的新时延为回复方路由记录中的时延与两节点时延(请求方和回复方两个节点间的时延)之和;
[0139] 已有记录的新超时时间更新为10分钟之后。
[0140] 网络节点之间共享并同步更新彼此存在的路由信息表中的路由记录(路由信息项);
[0141] 网络节点自动删除在设定时段(例如30-60分钟)内无法同步更新的路由记录。
[0142] 例如,对于长时间没有得到更新的表项,通过超时机制来删除,默认的超时时间为30分钟。
[0143] 直联的两个网络节点之间定期向彼此请求路由信息,其中,请求方遵循融合规则将接收的路由信息融合并记录在自己的路由信息表中。
[0144] 其中,请求方向回复方发出请求信息时,可以设定超时时间为10-60分钟,如果超时,则认为对应的回复方已经断开连接,请求方在路由信息表中删除与回复方地址相关的路由记录。
[0145] 当网络节点保存的路由信息发生改变时,该网络节点主动向与自己直联的网络节点请求以及共享路由信息。
[0146] 网络节点为全功能节点和轻量级节点;
[0147] 全功能节点为保存了整个区块链网络中全部交易数据,且负责校验每一笔新交易信息的节点;轻量节点为区块链中不需要存储交易数据的节点。
[0148] 其中,全功能节点通过P2P网络连接组成一个mesh网络;每个全功能节点不需要通过其它节点就可以直接加入到区块链的节点。而轻量节点,又称作SPV(simple payment verification)节点,是区块链网络中需要通过连接一个或者多个全功能节点才可加入到区块链网络中的节点。
[0149] 轻量节点处在整个网络的边缘,轻量节点不需要存储区块链网络中的交易数据。例如,轻量节点可以是区块链上的钱包模块节点,钱包模块节点为基于区块链的具有钱包功能的程序应用,而区块链网络中的全功能节点通常也包含了钱包的功能。钱包模块节点可以通过把自己的地址分享出去来接收其它钱包的汇款。而钱包地址也是接收转账汇款之外信息的标识。
[0150] 如果网络节点在超时时间内无法收到连接某个可达节点或者下一跳节点的路由的更新信息,则认为该可达节点或者下一跳节点不可达,则从路由信息表中删除该可达节点或者下一跳节点的路由信息。
[0151] 超时时间为基于系统启动时间设定,修改系统时间不会引起路由信息表项的提前或者延迟删除。
[0152] 其中,路由信息表包含了直接或间接可达节点地址、下一跳信息、路径质量以及路径是否有效的信息;节点接入区块链网络时会和直联节点交换路由信息,以及节点之间定期交换路由信息;同时,当网络节点的路由信息改变时,也会主动通知直联节点更新路由信息;节点断开时,删除相关路由表项,以及删除长时间没有更新的路由信息。
[0153] 另外,路由请求和路由响应的时间差作为评价两个网络节点之间路径质量的标准,在路由交换过程中,累加路径延迟,信息传输过程中选择延迟最小的路径。
[0154] 本发明可用于区块链中的两个或多个节点之间的通信,如基于区块链overlay网络之上的社交,可有效避免现有的广播式信息所带来的效率低下、资源浪费的问题。
[0155] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

附图说明

[0082] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0083] 图1为本发明实施例中提供的节点间的TCP连接过程中新节点与直联节点路由信息请求和交换的示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号