一种区块链节点内存池交易数据收集、广播的方法和装置转让专利

申请号 : CN202310028641.7

文献号 : CN115766745B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 余胜朱建锋

申请人 : 杭州安碣信息安全科技有限公司

摘要 :

本专利公开了一种区块链节点内存池交易数据收集、广播的方法和装置。包括遍历区块链网络,记录发现的对等区块链节点连接字符串,根据发现的对等区块链节点连接字符串,分析全网区块链节点的ip地理区域分布情况,对区块链节点进行区域划分,在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播等步骤,本发明建立了节点行为画像,识别出重要节点信息,有效降低了区块链网络中交易数据传播的网络延迟,有效降低了运行成本。

权利要求 :

1.一种区块链节点内存池交易数据收集、广播的方法,其特征在于,包括:

遍历区块链网络,记录发现的对等区块链节点网络连接字符串;

根据发现的对等区块链节点网络连接字符串,分析全网区块链节点的ip地理区域分布情况,对区块链节点进行区域划分;

在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播,所述探针不拥有区块的验证存储功能,探针通过网络连接管理单元与目的区块链节点和区域内的区块链节点保持连接,各区域的区块链节点中的交易数据直接经过探针转发到目的区块链节点的内存池,目的区块链节点中生成的新交易通过探针快速广播到各区域的区块链节点,网络连接管理单元与目的区块链节点的通信采用支持断开重连的websocket;

在收集和广播交易数据的同时,记录探针所连接区块链节点的网络行为,并对记录结果进行统计分析和评分,形成统计分析和评分结果;

根据记录、统计分析和评分结果,采用相应的网络连接策略,其中,所述网络连接策略包括根据统计分析结果识别怠工和作弊的区块链节点,将这类节点加入黑名单,屏蔽节点连接。

2.根据权利要求1所述的区块链节点内存池交易数据收集、广播的方法,其特征在于,所述的分析全网区块链节点的ip地理区域分布情况,对区块链节点进行区域划分,部分节点的ip地理区域信息查询不准确时,测定节点的网络延迟,将网络延迟大于50ms的节点排除在该区域外。

3.根据权利要求1所述的区块链节点内存池交易数据收集、广播的方法,其特征在于,所述的在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播中,所述的探针缓存高度为11052984、

14811135、15466495、1920000和最近的1024个区块信息,即可应答区域内区块链节点的RequestOneHeader、RequestHeaderByNumber和RequestBodies请求,而不被断开连接,持续进行交易数据的收集和广播。

4.根据权利要求1所述的区块链节点内存池交易数据收集、广播的方法,其特征在于,所述根据记录、统计分析和评分结果,采用相应的网络连接策略中,所述的策略还包括:将评分结果中评分靠前10%的区块链节点,加入白名单,探针重启或节点断开后会定期不断尝试重新建立连接;根据统计分析结果中不同探针记录的交易数据到达时间差异,判定出区块链网络中重要节点的区域信息,提高这些区域的探针数量或者系统配置,将交易优先广播到该区域;节点断开时记录当前连接状态,重启后尝试连接该状态下的节点;记录节点断开消息提示,继续尝试连接提示“TooManyPeer”的节点;估算区块链节点的节点连接度,尝试不断连接节点连接度大于100的节点;其中所述的重要节点为出块节点、交易主要生成节点。

5.一种区块链节点内存池交易数据收集、广播装置,其特征在于,

p2p网络发现单元,用于遍历区块链网络,记录发现的对等区块链节点网络连接字符串;

IP地理位置查询分析单元,用于根据发现的对等区块链节点网络连接字符串,分析全网区块链节点的ip地理区域分布情况,对区块链节点进行区域划分;

网络连接管理单元,用于在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播,所述探针不拥有区块的验证存储功能,探针通过网络连接管理单元与目的区块链节点和区域内的区块链节点保持连接,各区域的区块链节点中的交易数据直接经过探针转发到目的区块链节点的内存池,目的区块链节点中生成的新交易通过探针快速广播到各区域的区块链节点,网络连接管理单元与目的区块链节点的通信采用支持断开重连的websocket;

节点网络行为监测单元,用于在收集和广播交易数据的同时,记录探针所连接区块链节点的网络行为,并对记录结果进行统计分析和评分,形成统计分析和评分结果;

网络策略管理单元,用于根据记录、统计分析和评分结果,采用相应的网络连接策略,其中,所述网络连接策略包括根据统计分析结果识别怠工和作弊的区块链节点,将这类节点加入黑名单,屏蔽节点连接。

说明书 :

一种区块链节点内存池交易数据收集、广播的方法和装置

技术领域

[0001] 本专利涉及区块链网络技术领域,具体地,涉及一种区块链节点内存池交易数据收集、广播的方法和装置。

背景技术

[0002] 区块链节点内存池中的交易数据是通过区块链p2p网络传播进行收集和广播的。一般地,一笔交易数据从用户区块链节点生成以来,会在区块链p2p网络中通过广播的方式向临近节点传播,临近节点收到交易,对交易进行验证后再继续广播,如此重复以上广播、验证过程数次最终到达目的区块链节点内存池。
[0003] 中国专利申请202211113706X,针对智能合约漏洞攻击的交易阻断方法和装置中步骤1接收区块链节点提供的内存池中的攻击交易和步骤8向区块链节点广播所述构建后
的新交易,要求节点收集到内存池中的交易数据需尽可能的快(低延迟),以给智能合约漏洞攻击的交易阻断提供足够的处理时间,以免未完成处理攻击交易就已经上链。那么依托
传统的区块链p2p网络收集和广播交易数据存在以下问题。
[0004] 1)节点怠工或者作弊问题
[0005] 由于区块链去中心化业务的随机性和特殊性,区块链节点的网络行为复杂多变,难以对其进行评估排查,导致不少节点出现怠工甚至作弊的行为,给一些网络攻击(比如日蚀攻击)提供了便利条件,也不利于区块链中交易数据的传播。
[0006] 2)网络延迟问题
[0007] 据统计,在以太坊p2p网络中,一笔交易数据需要经过平均4.5个、最多7个区块链节点才能到达出块节点的内存池。那么按一次广播、验证耗时20ms估算,通过以太坊p2p网络收集每笔交易平均延迟90ms,通过在全球部署多个节点测试表明,同一笔交易最先到达
节点和最后到达节点的时间差往往超过1s,平均约为120ms。究其原因,主要有三点:一是p2p广播是一种效率低下的网络传播方式,会产生大量的数据重复传播的现象,浪费网络资源,影响的新交易的快速传达;二是p2p网络缺乏路由表信息,会出现一份交易数据从伦敦广播到洛杉矶后再广播回法兰克福的传播路径,极大地增加网络延迟;三是区块链节点为
了减少广播冗余数据,会对交易数据进行编解码并验证签名等操作,完成这类验证操作后
再进行广播,这些操作也需要时间,进一步提高交易传播的网络延迟。这种网络延迟不利于智能合约漏洞攻击的交易阻断处理。
[0008] 3)部署运行成本问题
[0009] 目前区块链节点部署配置要求较高,例如以太坊的推荐配置要求为:4核CPU、16GB内存和1TB快速SSD,另外每月还需网络费用。项目需要在全球主要地区部署多个节点,成本过高不利于项目持续发展。

发明内容

[0010] 本发明针对现有技术的不足之处作了改进,主要是根据地理位置划分区块链节点区域,并在每个区域部署网络探针,网络探针再向目的区块链节点汇总,从而组建一张树形网络拓扑图,形成交易数据的收集、广播网络,另外,探针记录区块链节点的网络行为数据,对节点的网络连接效果进行评分,根据这些数据结果制定网络连接策略并执行,以保持网
络运行高效。
[0011] 本发明是通过以下技术方案来实现的:
[0012] 本发明公开了一种区块链节点内存池交易数据收集、广播的方法,包括:
[0013] 遍历区块链网络,记录发现的对等区块链节点连接字符串;
[0014] 根据发现的对等区块链节点连接字符串,分析全网区块链节点的ip地理区域分布情况,对区块链节点进行区域划分;
[0015] 在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播;
[0016] 在收集和广播交易数据的同时,记录探针所连接区块链节点的网络行为,并对记录结果进行统计分析和评分,形成统计分析和评分结果;
[0017] 根据记录、统计分析和评分结果,采用相应的网络连接策略,保持网络的即时交易上链率高于80%,即时交易通过率高于95%。
[0018] 作为进一步的改进,所述的根据发现的对等区块链节点连接字符串,分析全网区块链节点的ip地理区域分布情况,对区块链节点进行区域划分,部分节点的ip地理区域信
息查询不准确时,测定节点的网络延迟,将网络延迟大于50ms的节点排除在该区域外。
[0019] 作为进一步的改进,所述的在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播,探针仅缓存高度为11052984、14811135、15466495、1920000和最近的1024个区块信息,即可应答区域内区块链节点的RequestOneHeader、RequestHeaderByNumber和RequestBodies请求,而不被
断开连接,持续进行交易数据的收集和广播。
[0020] 作为进一步的改进,所述的根据记录、统计分析和评分结果,采用相应的网络连接策略,策略包括:一是根据统计分析结果识别怠工和作弊的区块链节点,将这类节点加入黑名单,屏蔽节点连接,节省网络资源;二是将评分结果中评分靠前10%的区块链节点,加入白名单,探针重启或节点断开后会定期不断尝试重新建立连接;三是根据统计分析结果中不同探针记录的交易(区块)数据到达时间差异,判定出区块链网络中重要节点(出块节点、交易主要生成节点)的区域信息,提高这些区域的探针数量或者系统配置,将交易优先广播到该区域;四是节点断开时记录当前连接状态,重启后尝试连接该状态下的节点;五是记录节点断开消息提示,继续尝试连接提示“Too Many Peer”的节点;六是估算区块链节点的度,尝试不断连接度大于100的节点。
[0021] 本发明还公开了一种区块链节点内存池交易数据收集、广播装置,包括:
[0022] p2p网络发现单元,用于遍历区块链网络,记录发现的对等区块链节点连接字符串。该单元可发现区块链网络中的新节点,提供新节点的网络连接字符串信息;
[0023] IP地理位置查询分析单元,用于分析全网区块链节点的区域分布情况,对区块链节点进行区域划分。该单元可查询节点的IP地理区域信息,并统计分析节点的区域分布情
况;
[0024] 网络连接管理单元,用于在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播。该单元是连通区域内区块链节点和目的区块链节点的组件。该单元向上与目的区块链节点内存池进行通
信,包括交易数据提交和发送,向下根据网络连接字符串和节点区域的配置要求与区域内
的区块链节点建立连接,并负责连接的后续管理。
[0025] 节点网络行为监测单元,用于在收集和广播交易数据的同时,记录探针所连接区块链节点的网络行为,并对记录结果进行统计分析和评分,形成统计分析和评分结果;
[0026] 网络策略管理单元,用于根据记录、统计分析和评分结果,采用相应的网络连接策略,保持网络的即时交易上链率高于80%,即时交易通过率高于95%。
[0027] 本发明的有益效果如下:
[0028] (1) 建立了节点行为画像,识别出重要节点信息
[0029] 本发明通过探针记录区块链节点网络行为数据发现部分怠工和作弊节点并加入连接黑名单,降低了探针的资源开销;另外通过对比不同探针记录的历史数据,根据数据时效性统计分析判定出一些重要的区块链节点的信息,比如币安智能链的26个验证节点中15
个在欧洲,利用该信息在发送新交易时会优先发往处于欧洲区域的探针;
[0030] (2) 有效降低了区块链网络中交易数据传播的网络延迟
[0031] 在全球部署了14个以太坊网络探针向目的区块链节点推送收集交易数据,经统计,即时交易通过率达到95%,即时交易上链率从之前的40%提高到80%。因此本发明有效降低了区块链网络中交易数据传播的网络延迟;
[0032] (3) 有效降低了运行成本
[0033] 本发明的主要程序为探针,因该探针主要从事交易数据网络转发工作,不拥有区块的验证存储等功能。所以部署服务器的配置2核CPU、4GB内存和40GB普通机械硬盘就足够支持2000+区块链节点的网络连接,另外运行中断开了怠工和作弊节点降低了网络费用,所以本发明有效降低了运行成本。

附图说明

[0034] 图1是本发明中交易数据收集、广播方法的流程示意图;
[0035] 图2是交易数据收集、广播装置的设计示意图;
[0036] 图3是以太坊节点的主要国家分布情况图;
[0037] 图4是以太坊的交易发起区域情况图。

具体实施方式

[0038] 本发明记载一种区块链节点内存池交易数据收集方法,根据地理位置划分区块链节点区域,并在每个区域部署网络探针,网络探针再向目的区块链节点汇总,从而组建一张树形网络拓扑图,形成交易数据的收集、广播网络,达到目的区块链节点快速收集和广播交易数据的目的。由于区块链网络中交易数据的发出时间没法确定,无法直接测量交易数据
传播的网络延迟,另外,交易在全球各地随机发出,不同交易传播延迟差别较大,所以定义了两个指标对该方法构建的网络效果进行衡量——即时交易上链率和即时交易通过率。
即时交易上链率是指区块生成时内存池中已存在的该区块中的交易数占该区块中总交易
数的比率;即时交易通过率是指内存池收集的交易数据来源于新建的网络的比重。如图1所示,该方法的包括以下步骤:
[0039] 步骤1:遍历区块链网络,记录发现的对等区块链节点连接字符串。
[0040] 使用p2p网络发现单元,引入PostgreSQL数据库,记录发现的对等区块链节点的网络连接字符串,连接字符串的结构如下:
[0041] “enode://a8feebacd58c723941cf8d8adf04839eebb03180ff90a5da279b3d297ef3a57faeb4a2e80add18569193a8e5f0873442904ec547c23c14b6b8e346fb6c2c8b0c@
79.173.187.198:30303”
[0042] 从该字符串解析出节点的Id、IP信息,数据库存储结构如下:
[0043]字段 用途
id 节点Id,用于记录判重
enode 网络连接字符串
ip 节点IP,后续用于分析节点区域分布
reason 尝试连接结果
lat 经度
lng 维度
country 节点所在国家
continent 节点所在大洲
region 节点所在省级行政区
facilitator 节点网络服务商
[0044] p2p网络发现单元会尝试连接该节点,待尝试连接结束后,更新连接结果,根据连接结果可以过滤掉大部分其他区块链网络的节点。连接结果为以下三种情况的记录排除在
后续分析之外:
[0045] reason 场景network ID mismatch 链ID不同,说明节点处于不同的区块链网络
genesis mismatch 创世区块不同,说明节点处于不同的区块链网络
fork ID rejected 节点处于不同的硬分叉里面
[0046] 步骤2:根据发现的对等区块链节点连接字符串,分析全网区块链节点的ip地理区域分布情况,对区块链节点进行区域划分。
[0047] 步骤1中的p2p网络发现单元运行1周后,记录全网的约90%区块链节点的网络连接字符串,根据该字符串解析出的IP,查询其地理位置信息,在数据库中更新节点的区域分布情况。对结果数据进行统计分析,比如以太坊节点的主要国家分布情况如图3所示。
[0048] 根据太坊节点的主要国家分布情况,将以太坊区块节点划分为14个区域,各区域的中心分别为加拿大魁北克省、美国弗吉尼亚、美国加利福利亚、美国俄勒冈、美国俄亥俄、日本东京、中国杭州、中国香港、新加坡、澳大利亚悉尼、印度孟买、巴林、德国法拉克福、英国伦敦。
[0049] 另外,由于部分ip地理区域信息查询的不准确性,使用SRTT作为区块链节点网络延迟,并结合区域大小,设定将网络延迟大于50ms的节点排除在该区域外,并将该节点的网络连接字符串发给其他区域进行连接测试。
[0050] 步骤3:在每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播。
[0051] 在步骤2中划分的14个区域中心的云服务器上部署探针,探针通过网络连接管理单元与目的区块链节点和区域内的区块链节点保持连接。这样目的区块链节点通过14个探
针与全网区块链节点形成了一张树形结构的网络,各区域的区块链节点中的交易数据直接
经过探针转发到目的区块链节点的内存池。相应的,目的区块链节点中生成的新交易也可
以通过探针快速广播到各区域的区块链节点。
[0052] 以太坊上,探针仅缓存高度为11052984、14811135、15466495、1920000和最近的1024个区块信息,即可应答区域内区块链节点的RequestOneHeader、
RequestHeaderByNumber和RequestBodies请求,而不被区域内区块链节点断开网络连接,
这样既维持了网络连接的稳定性又减少了探针运行环境的存储要求,可以节约运营成本。
[0053] 步骤4:在收集和广播交易数据的同时,记录探针所连接区块链节点的网络行为,并对记录结果进行统计分析和评分,形成统计分析和评分结果。
[0054] 探针在进行交易数据收集和广播的同时,节点网络行为监测单元会记录探针所连区块链节点的网络行为,包括:
[0055] 网络行为名称 解释 参数定义节点连接度 区块链节点当前连接的节点数量 N1
连接保持时间 节点连接建立到现在的时长 N2
IP托管因素 相同IP上拥有多少个节点 N3
网络延迟    
交易优先到达数量 区块链节点最先广播的到探针的交易数量 E1
区块优先到达数量 区块链节点最先广播的到探针的区块数量 E2
节点交易广播记录 区块链节点广播交易到达及时间,存最近2个小时的记录  
节点区块广播记录 区块链节点广播区块到达及时间,存最近1天的记录  
交易知晓率 新区块到达时区块链节点广播的交易中已存在的新区块中的交易占新区块中总交易数的比重的平均值 E3交易请求回复失败率 交易hash请求未回复或超时或回复结果未通过验证的请求数量与总请求数量的比值 E4区块请求回复失败率 区块hash请求未回复或超时或回复结果未通过验证的请求数量与总请求数量的比值 E5无效交易数 广播的交易未通过验证的数量 E6
无效区块数 广播的区块未通过验证的数量 E7
[0056] 节点网络行为监测单元每3h计算一次连接节点的网络行为评分,计算公式如下:
[0057] Score =a *(w1*N1+w2*N2+w3*N3)+w5*E1+w6*E2+w7*E3+w8*E4+w9*E5+w10*E6+w11*E7;
[0058] 其中,a < 1, w1、w2、w5、w6、w7 > 0,w3、w8、w9、w10、w11< 0。
[0059] 计算结束后,按评分由高到低进行排序。
[0060] 另一方面,网络行为监测单元统计了以太坊网络中最近24h内,不同探针的相同交易到达时间,根据最先到达探针的交易数量,分析后得到以太坊交易的发起区域情况图4,由以太坊交易的发起区域可知,以太坊中的交易主要诞生在美国佛吉尼亚、德国法兰克福
和日本东京三个区域。
[0061] 同样的,网络行为监测单元统计了币安智能链中最近24h内,区块广播到达时间,根据最先到达探针的验证节点签名的区块数量,统计分析后得出结论:币安智能链的26个
验证节点中15个在欧洲、8个在美国、3个在日本。具体情况如下:
[0062] 地址 名称 所处区域0x72b61c6014342d914470eC7aC2975bE345796c2b Validator: BNB48 Club 法兰克福
0x3f349bBaFEc1551819B8be1EfEA2fC46cA749aA1 Validator: Legend II 弗吉尼亚
0xCc8E6d00C17eB431350C6c50d8b8F05176b90b11   法兰克福
0xa6f79B60359f141df90A0C745125B131cAAfFD12 Validator: Avengers 法兰克福
0xD1d6bF74282782B0b3eb1413c901D6eCF02e8e28   法兰克福
0x7AE2F5B9e386cd1B50A4550696D957cB4900f03a Validator: Fuji 法兰克福
0xea0A6E3c511bbD10f4519EcE37Dc24887e11b55d Validator: Defibit 法兰克福
0x2D4C407BBe49438ED859fe965b140dcF1aaB71a9 Validator: NodeReal 伦敦
0xb218C5D6aF1F979aC42BC68d98A5A0D796C6aB01 Validator: Alan Turing 伦敦
0xBe807Dddb074639cD9fA61b47676c064fc50D62C Validator: Certik 伦敦
0x295e26495CEF6F69dFA69911d9D8e4F3bBadB89B Validator: Legend 弗吉尼亚
0xE9AE3261a475a27Bb1028f140bc2a7c843318afD Validator: HashQuark 东京
0xee226379dB83CfFC681495730c11fDDE79BA4c0C Validator: InfStones 弗吉尼亚
0x685B1ded8013785d6623CC18D214320b6Bb64759 Validator: Namelix 伦敦
0xAAcF6a8119F7e11623b5A43DA638e91F669A130f Validator: Neptune 法兰克福
0x70F657164e5b75689b64B7fd1fA275F334f28e18 Validator: BscScan 弗吉尼亚
0xEF0274E31810C9Df02F98FAFDe0f841F4E66a1Cd Validator: Tranchess 弗吉尼亚
0x61Dd481A114A2E761c554B641742C973867899D3   弗吉尼亚
0x8b6C8fd93d6F4CeA42Bbb345DBc6F0DFdb5bEc73 Validator: Legend III 弗吉尼亚
0xac0E15a038eedfc68ba3C35c73feD5bE4A07afB5 Validator: Bison Trails 弗吉尼亚
0x2465176C461AfB316ebc773C61fAEe85A6515DAA Validator: TW Staking 伦敦
0xe2d3A739EFFCd3A99387d015E260eEFAc72EBea1 Validator: MathWallet 伦敦
0x9F8cCdaFCc39F3c7D6EBf637c9151673CBc36b88 Validator: Ankr 法兰克福
0x0BAC492386862aD3dF4B666Bc096b0505BB694Da Validator: Claude Shannon 伦敦
0xFE6E72b223f6d6Cf4edc6bFf92f30e84b8258249   东京
0x73564052D8e469ED0721c4e53379DC3C91228930   东京
[0063] 步骤5:根据记录、统计分析和评分结果,采用相应的网络连接策略,保持网络的即时交易上链率高于80%,即时交易通过率高于95%。
[0064] 先行的网络连接策略包括。
[0065] 根据步骤4中记录的交易知晓率,设定交易知晓率小于10%的区块链节点为怠工节点,探针会断开这类节点的网络连接,并将其加入黑名单,以节省网络资源。
[0066] 根据步骤4中记录的无效交易数和无效区块数,设定无效交易数 > 1000 或 无效区块数 > 20的区块链节点为作弊节点,探针会断开这类节点的网络连接,并将其加入黑名单,以节省网络资源。
[0067] 根据步骤4的评分结果排序,将评分靠前10%的区块链节点加入白名单,探针重启或节点断开后会不断尝试重新建立连接,另外当节点连接数达到设定的最大连接数时,探
针会断开评分靠后10%的区块链节点,以供其他区块链节点建立新连接。
[0068] 根据步骤4的统计分析结果,细化了以太坊网络在美国佛吉尼亚、德国法兰克福、日本东京等的区域范围,多部署了几个探针。另外在币安智能链中目的区块链节点内存池
产生新交易的时候,优先将交易广播到处于欧洲区域的探针,以便新交易尽快到达验证节
点的内存池。
[0069] 另外,还实现了以下网络连接策略,一是节点断开时记录当前连接状态,重启后尝试连接该状态下的节点;二是记录节点断开消息提示,不断尝试连接提示“Too Many Peer”的节点;三是根据步骤3中记录的节点连接度,当节点断开后,会尝试连接该值大于100的节点。
[0070] 本发明还包含了一种区块链节点内存池交易数据收集、广播的装置。如附图2所示,其主要单元如下:
[0071] p2p网络发现单元,用于遍历区块链网络,记录发现的对等区块链节点连接字符串。该单元可发现区块链网络中的新节点,提供新节点的网络连接字符串信息。
[0072] p2p网络发现单元使用RLPx协议,协议基于被广泛使用的分布式散列表(DHT)Kademlia的路由算法实现了节点发现。p2p网络发现单元通过不断地运行RLPx协议,可以逐渐发现全网的所有节点并将节点的网络连接字符串发送给IP地理位置查询分析单元。
[0073] IP地理位置查询分析单元,用于分析全网区块链节点的区域分布情况,对区块链节点进行区域划分。该单元可查询节点的IP地理区域信息,并统计分析节点的区域分布情
况。
[0074] IP地理位置查询分析单元,该单元采用高精度全球IP地理区域信息,地理区域信息包括,所处大洲、国家、省级行政单位、服务商和经维度,可以支持区域的细致划分。IP地理区域信息库包含全球42.9亿个IP信息,使用纯真IP库文件格式算法,存储空间仅30MB,使用分布式部署方式,支持低延迟的频繁查询。
[0075] IP地理位置查询分析单元根据查询的IP地理区域信息结果进行统计分析,生成区块链节点的区域分布情况。
[0076] 网络连接管理单元,用于每一个区域部署探针,作为沟通区域内区块链节点和目的区块链节点的桥梁,形成树形网络拓扑图,进行交易数据的收集和广播。该单元是连通区域内区块链节点和目的区块链节点的组件。该单元向上与目的区块链节点内存池进行通
信,包括交易数据提交和发送,向下根据网络连接字符串和节点区域的配置要求与区域内
的区块链节点建立连接,并负责连接的后续管理。
[0077] 网络连接管理单元管理着用于p2p应用程序会话建立的DEVp2p和以太坊应用程序级协议ETH(当前的版本主要为66和67)。网络连接管理单元根据区块链节点的区域分布情况和连接配置要求选择节点建立一个安全的TCP连接,DEVp2p将在两个连接的对等节点之
间协商一个应用程序会话,并定期发送PING/PONG消息对以维持会话活跃。ETH协议则在该
会话之上与网络中的区块链节点进行应用通信,负责编解码协议数据。网络连接管理单元
还会接受网络策略管理单元下发的网络连接指令对会话进行管理操作。
[0078] 另外,网络连接管理单元与目的区块链节点的通信采用支持断开重连的websocket。websocket异步通信协议可以支持频繁的交易数据提交,由于探针与目的区块
链节点往往处于不同的大洲,其网络传输的稳定性不能保障,所以断开重连的功能是必要
的。网络连接管理单元还支持通过HTTP协议与公共区块链节点进行通信,使用公共区块链
节点提供的RPC接口进行交易提交和基本状态获取。
[0079] 节点网络行为监测单元,用于记录探针所连接区块链节点的网络行为,并对记录结果进行统计分析和评分,形成统计分析和评分结果。
[0080] 节点网络行为监测单元负责记录区块链节点网络行为数据,并对结果进行统计分析和评分,给网络策略管理单元的网络策略制定和执行提供数据支撑。目前使用的网络行
为数据指标包括节点连接度、连接保持时间、IP托管因素、交易优先到达数量、区块优先到达数量、节点交易广播记录、节点区块广播记录、交易知晓率、交易请求回复失败率、区块请求回复失败率、无效交易数、无效区块数。
[0081] 网络策略管理单元,用于根据记录、统计分析和评分结果,采用相应的网络连接策略。保持网络的即时交易上链率高于80%,即时交易通过率高于95%。
[0082] 根据节点网络行为监测单元的记录、统计分析和评分结果,网络策略管理单元可以灵活地制定多项网络连接策略,并控制网络策略的生效条件和执行周期。网络连接策略
生效时,网络策略管理单元向网络连接管理单元发送网络连接指令,并对网络连接指令执
行结果进行跟踪记录。
[0083] 本领域普通技术人员可以理解,以上所述仅为发明的单个实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡
在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。