一种基于WebRTC构建实时区块链网络的方法及系统与流程

文档序号:23174866发布日期:2020-12-04 14:05阅读:142来源:国知局
一种基于WebRTC构建实时区块链网络的方法及系统与流程

本发明涉及区块链技术领域,特别是一种基于webrtc构建实时区块链网络的方法及系统。



背景技术:

区块链是信用时代的重要基础设施,在这个基础设施之上将提供人们工作、生活、学习的需求,在社会发展节奏越来越快的今天及未来,人们对需求响应的即时性将越来越高,甚至会将越来越多的要求实时的响应,而提供实时响应的基础需要区块链网络本身支持实时响应。在实现网络实时响应的过程中,由于各通信节点之间互相不知道彼此的存在,很难直接找到对方,所在传统的实现手段中,往往需要一台中心服务器做协调,才能实现不同地区两个节点直接的实时通信,这种实现方式,直接放在去中心的区块链网络中将变的不可行。目前市面上采用较多的方案是,让通信的双方,设计为互为服务器和客户端,这样当一方向要跟另一方建立通信时,只需要采用一方的客户端连接另一方的服务端,这样虽然能解决两个节点互相直连并实时通信的问题,但是由于需要建立服务端,其对所节点的节点配置要求往往较高,这限制了这种场景下可以接入设备的范围,同时这种方式在遇到两个不同网络内的节点要建立实时连接将变的很难。那么,有没有一种方式可以在各种网络内的节点之间建立实时连接,又不用对所连接节点的设备有很高配置要求的方法,成为一个急需解决的问题。



技术实现要素:

本发明旨在提出一种基于webrtc构建实时区块链网络的方法及系统,通过在区块链网络中建立分布式的信令服务器,所述服务器在自身服务范围内同步信令通道,为中心化通道的建立,以及跨网络区域的通道搭建建立自己的协同服务,从而实现在跨网络中节点之间的实时通信,本方法具体如下所示:

一种基于webrtc构建实时区块链网络的方法,包括节点,所述方法包括:

s1、节点启动作业并提取本地节点列表,若本地没有节点列表则跳过扩展节点列表,若本地有节点列表则开始检查信令服务并循环所有节点;

s2、当完成节点列表扩展后,访问创世节点,若创世节点不能访问则跳过合并创世节点列表,若创世节点能访问则连接创世节点并获取所述创世节点的信令服务列表,检查所述创世节点的信令服务列表后合并本地节点列表和创世节点列表;

s3、所述节点检查所处的网络,若网络不在局域网内则跳过局域网扫描,若网络在局域网内则进行局域网扫描,通过扫描公网获取并连接公网ip地址;

s4、通过获取对应公网ip地址所在的节点列表和信令服务列表,检查对应公网ip地址所处节点列表与创世节点列表后合并对应公网ip地址所处节点列表和创世节点列表;

s5、当完成公网扫描后,更新所有节点信息,提取本地合并后的节点能到达的信令列表,循环检验所述信令列表的有效性后检查数据发送状态。

进一步的,所述s1中检查信令服务的过程包括:

s11、读取并连接节点,获取对应节点的节点列表并校验合法性,当获取到对应节点的信令列表后,提取信令信息;

s12、尝试向所述信令发送探测信息,若探测信息发送成功则记录所述信令可访问结果,若探测信息发送失败则记录所述信令自身无法访问但节点可访问结果;

s13、将完成检查的信令并入本地信令列表,完成信令的检查。

进一步的,所述s5中所述检验所述信令列表的有效性包括:提取信令信息并检查信令目标是否与发送目标匹配,若匹配则向信令发送数据,当数据发送成功记录数据发送成功结果,当数据发送失败时重试发送直至指定重试次数用完并记录发送失败结果;若不匹配则继续搜索下一个顺位的信令。

进一步的,当记录发送失败后,提取本地合并后其它节点能达到的信令列表,通过提取信令信息并尝试向节点建立中继连接,若能建立中继连接则将数据发送至节点并循环本地信令列表,若不能建立中继连接则重新进入节点扫描。

进一步的,所述方法还包括通过循环并叠加步骤s1-s5进行多重区块链网络的构建。

本发明还提出一种基于webrtc构建实时区块链网络系统,所述系统包括:

信令管理器:用于为网络中各节点提供信令服务,包括但不限于会话发现、会话同步、会话建立、会话转发,信令服务器通过与区块链上的各节点进行集成,作为区块链的网络层使用;

节点管理器:用于发现网络中的新节点并维护已经存在的节点,通过对节点列表做进一步的扩展发现节点所在,

所述信令管理器与节点管理器在系统中互相交叉网状连接。

进一步的,所述信令管理器包括:

节点发现模块:用于检测当前节点列表中正在使用webrtc协议进行通信的节点,还用于在节点之间创建新的webrtc通信连接;

信令通道模块:用于为通信双方节点建立直连通信通道并为所述通道保存通信会话,节点双方通过通道互相收发数据;

信令同步模块:用于同步网络中节点所管理信令通道的通信会话,所述同步方式包括己方委托对方建立会话连接和己方要求对方移交会话连接并有己方管理;

网络穿透模块:用于当网络分布在不同节点时,找到对方的穿透节点或者对方所使用的中继通信服务,并在后续通信中,在上层应用中为直连通信;

中继通信模块:用于当跨网络中的两个节点不能通过委托或移交的方式建立信令同步时,通过代理通信中转会话的方式提供网络连接。

进一步的,所述节点管理器包括:

网络连接模块:用于为信令服务的通信提供网络支持,根据上层应用的环境选择网络连接方式,所述网络连接方式包括但不限于有线网络、无线网络、蜂窝网络、3g网络、4g网络、蓝牙,上层协议采用webrtc,在辅助通信上采用包括但不限于http、https、webscoket在内的协议;

节点扫描模块:用于探测当前可触及的网络范围是否有启用信令服务的节点,根据节点所依据执行的协议,从发起扫描节点到确认节点以及从节点返回的协议数据获取节点连接速度、节点响应时间以及节点操作系统;

节点列表模块:用于记录由节点扫描模块返回的信息,并记录后续与节点交互过程中产生的信息。

进一步的,所述代理通信中转会话的方式包括:先跟代理通信的节点建立会话,再跟中继目标建立会话,当中继目标依然不能达到目标时,根据最优到达路径继续寻找下一级中继节点,当依然不能到达时重新搜索并计算最优到达路径直至跟中继节点建立会话。

本发明实现了既可以在各种网络内的节点之间建立实时连接,又避免对所连接节点的设备又很高配置要求的难题,实现了去中心的实时网络通信,解决了跨网实时通信的问题。

附图说明

图1为本发明所提及基于webrtc构建实时区块链网络方法的流程示意图;

图2是本发明所提及检查信令服务过程的工作流程图;

图3是本发明所提及基于webrtc构建实时区块链网络系统的组成示意图;

图4是本发明所提及信令管理器的组成示意图;

图5是本发明所提及节点管理器的组成示意图,

其中:1信令服务器;2节点管理器;101节点发现模块;102信令通道模块;103信令同步模块;104网络穿透模块;105中继通信模块;201网络连接模块;202节点扫描模块;节点列表模块

具体实施方式

下面结合附图和具体实施例对本发明作进一步详述。在此需要说明的是,下面所描述的本发明各个实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。

在社会发展节奏越来越快的今天以及未来,即时网络通信越来越受关注,在实现网络实时响应的过程中,由于需要建立服务端,监理过程本身对节点配置要求往往很高,这样一来便限制可接入设备的范围,与此同时这种方式在遇到两个分属不同网络内的节点要建立实时连接将变得很难,为了解决这一问题,本发明提出了一种基于webrtc构建实时区块链网络的方法,在解释本发明具体过程之前对webrtc和信令服务进行简单概述:webrtc是谷歌推出的一种实时通信协议,它可以在两个网页之间建立通信通道,但这个通信通道由一个信令服务器来建立,这个信令服务器相当于一个会话管家,帮助他们建立一个互相直连的实时通信通道,但是当两个节点不在一个信令服务的覆盖范围时,他们无法找到彼此将无法建立直连,这里,将把这个信令服务分散在区块链网络中,只要这两个信令服务能通过某种方式建立联系,那么就可以将这两个信令服务作为彼此的中转服务,从而可以建立跨网络的实时通信连接。也就是,底层通信部分由webrtc协议提供,它一般被内置到浏览器等基础工具中

实施例1

如图1所示,一种基于webrtc构建实时区块链网络的方法,其具体操作步骤包括:

s1、节点启动作业并提取本地节点列表,若本地没有节点列表则跳过扩展节点列表,若本地有节点列表则开始检查信令服务并循环所有节点;

s2、当完成节点列表扩展后,访问创世节点,若创世节点不能访问则跳过合并创世节点列表,若创世节点能访问则连接创世节点并获取所述创世节点的信令服务列表,检查所述创世节点的信令服务列表后合并本地节点列表和创世节点列表;

s3、所述节点检查所处的网络,若网络不在局域网内则跳过局域网扫描,若网络在局域网内则进行局域网扫描,通过扫描公网获取并连接公网ip地址;

s4、通过获取对应公网ip地址所在的节点列表和信令服务列表,检查对应公网ip地址所处节点列表与创世节点列表后合并对应公网ip地址所处节点列表和创世节点列表;

s5、当完成公网扫描后,更新所有节点信息,提取本地合并后的节点能到达的信令列表,循环检验所述信令列表的有效性后检查数据发送状态。

优选的,如图2所示,所述s1中检查信令服务的过程包括:

s11、读取并连接节点,获取对应节点的节点列表并校验合法性,当获取到对应节点的信令列表后,提取信令信息;

s12、尝试向所述信令发送探测信息,若探测信息发送成功则记录所述信令可访问结果,若探测信息发送失败则记录所述信令自身无法访问但节点可访问结果;

s13、将完成检查的信令并入本地信令列表,完成信令的检查。

优选的,所述s5中所述检验所述信令列表的有效性包括:提取信令信息并检查信令目标是否与发送目标匹配,若匹配则向信令发送数据,当数据发送成功记录数据发送成功结果,当数据发送失败时重试发送直至指定重试次数用完并记录发送失败结果;若不匹配则继续搜索下一个顺位的信令。

优选的,当记录发送失败后,提取本地合并后其它节点能达到的信令列表,通过提取信令信息并尝试向节点建立中继连接,若能建立中继连接则将数据发送至节点并循环本地信令列表,若不能建立中继连接则重新进入节点扫描。

上述步骤s1-s5的过程直接以两个局域网通信为例,在此基础上通过多重叠加和多重中继通信可以实现不同层级和跨网通信。

实施例2

如图3所示,除了实施例1所提出的一种基于webrtc构建实时区块链网络的方法,在此基础上本发明还提出一种基于webrtc构建实时区块链网络系统,其包括:

信令管理器1:用于为网络中各节点提供信令服务,包括但不限于会话发现、会话同步、会话建立、会话转发,信令服务器通过与区块链上的各节点进行集成,作为区块链的网络层使用;

节点管理器2:用于发现网络中的新节点并维护已经存在的节点,通过对节点列表做进一步的扩展发现节点所在,

所述信令管理器1与节点管理器2在系统中互相交叉网状连接。

如图4所示,优选的,所述信令管理器1包括:

节点发现模块101:用于检测当前节点列表中正在使用webrtc协议进行通信的节点,还用于在节点之间创建新的webrtc通信连接;

信令通道模块102:用于为通信双方节点建立直连通信通道并为所述通道保存通信会话,节点双方通过通道互相收发数据;

信令同步模块103:用于同步网络中节点所管理信令通道的通信会话,所述同步方式包括己方委托对方建立会话连接和己方要求对方移交会话连接并有己方管理;

网络穿透模块104:用于当网络分布在不同节点时,找到对方的穿透节点或者对方所使用的中继通信服务,并在后续通信中,在上层应用中为直连通信;

中继通信模块105:用于当跨网络中的两个节点不能通过委托或移交的方式建立信令同步时,通过代理通信中转会话的方式提供网络连接。

如图5所示,优选的,所述节点管理器2包括:

网络连接模块201:用于为信令服务的通信提供网络支持,根据上层应用的环境选择网络连接方式,所述网络连接方式包括但不限于有线网络、无线网络、蜂窝网络、3g网络、4g网络、蓝牙,上层协议采用webrtc,在辅助通信上采用包括但不限于http、https、webscoket在内的协议;

节点扫描模块202:用于探测当前可触及的网络范围是否有启用信令服务的节点,根据节点所依据执行的协议,从发起扫描节点到确认节点以及从节点返回的协议数据获取节点连接速度、节点响应时间以及节点操作系统;

节点列表模块203:用于记录由节点扫描模块202返回的信息,并记录后续与节点交互过程中产生的信息。

优选的,所述代理通信中转会话的方式包括:先跟代理通信的节点建立会话,再跟中继目标建立会话,当中继目标依然不能达到目标时,根据最优到达路径继续寻找下一级中继节点,当依然不能到达时重新搜索并计算最优到达路径直至跟中继节点建立会话。

一种基于webrtc构建实时区块链网络系统在具体操作过程的内容如下所示:

首先是建立一个信令通信并发送一条数据,此时节点开始启动运作,节点扫描管理模块202提取本地节点列表,当本地没有节点列表则跳过扩展节点列表,当本地有节点列表则通过网络连接模块201开始读取并连接节点,获取对应节点的节点列表并校验合法性,当通过节点列表模块203获取到对应节点的信令列表后,通过信令服务器1当中的节点发现模块101检测到节点列表中正在使用webrtc协议进行通信的节点,通过信令通道模块102提取信令信息;尝试向所述信令发送探测信息,若探测信息发送成功则记录所述信令可访问结果,若探测信息发送失败则记录所述信令自身无法访问但节点可访问结果;通过信令同步模块103同步网络中节点所管理信令通道的通信会话,但是网络中有时候是直接找不到可以连接的节点,此时需要网络穿透模块104找到对方的穿透节点或者对方所使用的中继通信服务,并在后续通信中,在上层应用中为直连通信,当两个节点不能通过委托或移交的方式建立信令同步时,通过中继通信模块105代理通信中转会话的方式提供网络连接,将完成检查的信令并入本地信令列表,完成信令的检查,通过对所有节点循环从读取并连接节点到完成信令检查的过程;

其次是当完成节点列表扩展后,由节点扫描模块202扫描并访问创世节点,若创世节点不能访问则跳过合并创世节点列表,若创世节点能访问则连接创世节点并获取所述创世节点的信令服务列表,通过节点列表模块203检查所述创世节点的信令服务列表后合并本地节点列表和创世节点列表;在连接过程中由网络连接模块201提供网络支撑,接着循环重复信令服务器1中各个组成模块的操作步骤进行创世节点列表的信令检查;

然后是节点服务器2检查节点自身所在的网络,如果不在局域网内,节点扫描模块202则跳过局域网扫描环节,如果在局域网内,则有节点扫描模块202获取局域网ip获取当前所在局域网的出口ip;通过网络连接模块201检查节点所在的公网,由节点扫描模块202扫描附近公网网段,如果未扫描到更多的公网ip则跳过公网扫描环节,如果扫描到更多公网ip,则由网络连接模块201连接该公网ip,再由节点列表模块203获取该节点的节点列表并通过信令服务器1重复操作信令列表检查,完成节点列表和信令列表后合并对应公网ip地址所处节点列表和创世节点列表;

最后是当节点扫描模块202完成公网扫描后,节点列表模块203更新所有节点信息,提取本地合并后的节点能到达的信令列表,循环检验所述信令列表的有效性后检查数据发送状态,具体检验过程包括节点发现模块101发现目标匹配时,经由信令通道模块102建立起的信令通道向该信令发送数据,当数据发送成功后,由信令同步模块103记录成功结果,当数据发送失败时,循环重试,当设定次数用完仍未成功则通过中继通信模块105尝试向该节点建立中继连接,当能建立中继连接时将数据发送到该节点,该节点接收到数据后继续本地信令列表的检验步骤,当不能建立中继连接时就重新节点扫描;当节点发现模块101发现目标不匹配时,则需要继续下一个信令的发现直至目标匹配。

本发明实现了既可以在各种网络内的节点之间建立实时连接,又避免对所连接节点的设备又很高配置要求的难题,实现了去中心的实时网络通信,解决了跨网实时通信的问题

以上所述,仅是本发明的较佳实施例而已,并非对本发明的技术范围作任何限制,故但凡依本发明的权利要求和说明书所做的变化或修饰,皆应属于本发明专利涵盖的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1