一种在网络级采用硬件实现共识验证的方法技术

技术编号:16001207 阅读:120 留言:0更新日期:2017-08-15 15:27
本发明专利技术公开了一种在网络级采用硬件实现共识验证的方法,利用硬件设备FPGA作为节点,FPGA节点之间通过实现TCP/IP协议进行点对点连接,采用ARP、ICMP、DHCP辅助TCP/IP协议和其他FPGA节点交互,缩短TCP/IP堆栈,有效减少时间延迟。FPGA节点采用区块链共识协议如PBFT/SBFT/RBFT等传播消息进行共识,选出领导节点,其他节点收到共识消息后发送收到信息的反馈并投票。这些共识协议传播过程中均经过加密并附有数字签名,保证了数据的安全性。本发明专利技术在没有增加数据中心的前提下,在硬件平台实现共识协议,有效的缩短了时间延迟,达到硬件加速共识的目的。

A method of hardware implementation of consensus verification at the network level

The invention discloses a realization method of the hardware in the network consensus validation, utilization of hardware as FPGA node, FPGA node between point-to-point connections through the implementation of the TCP/IP protocol, using ARP, ICMP, DHCP TCP/IP and other auxiliary FPGA node interaction, shorten the TCP/IP stack, reducing the time delay. FPGA nodes use block chain consensus protocols, such as PBFT/SBFT/RBFT, to communicate consensus messages and select leader nodes. Other nodes receive feedback and vote after receiving consensus messages. These protocols are encrypted and digitally signed, which ensures the security of the data. The invention realizes the consensus protocol on the hardware platform without increasing the data center, effectively shortens the time delay and achieves the goal of accelerating the consensus of hardware.

【技术实现步骤摘要】
一种在网络级采用硬件实现共识验证的方法
本专利技术属于区块链
,具体涉及一种在网络级采用硬件实现共识验证的方法。
技术介绍
在当前严格的效率要求下,数据中心面临着越来越大的数据量和工作量复杂性的需求。为了满足高性能、可扩展性和可伸缩性的目标,服务通常运行在数百到数千台机器上。这就需要一些合作共识来维护机器的一致性。不可避免的性能开销和需要的附加资源往往会降低一致性,导致较少的用户必须建立更复杂的应用程序来处理潜在的不一致性。一致性需要的高成本来自于达成协议所需的多轮沟通,传统的网络栈没有对时间延迟或者特定的通信模式进行优化,使共识协议的加速变成了一个瓶颈。如今各式的硬件是当前一个日益可行的选择,能够在低能源成本下提高系统的性能。除了考虑性能及效率之外,对于智能网络,可以在网络中加入节点,使用中间件来定制它的应用,所以要想把共识作为网络的一种属性,而不是只让它在应用层上实现,需要在实现的复杂度和中间件可达到的吞吐量中找到平衡点,则在网络中加入区块链共识协议提高系统效率是很好的选择,如PBFT(PracticalByzantineFaultTolerance,实用拜占庭容错算法)/SBFT(SimpleByzantineFaultTolerance,简化拜占庭容错算法)/RBFT(RedundantByzantineFaultTolerance,冗余拜占庭容错算法)等共识协议,而FPGA(Field-ProgrammableGateArray,现场可编程门阵列)具有低功耗的特点,不受传统的CPU在数据处理方面的线速限制,在上面运行共识协议能够降低时间延迟,通过扩展中间件的功能或添加廉价的共识给网络处理节点,将共识协议更多的价值推广到网络。
技术实现思路
鉴于上述,本专利技术提出了一种在网络级采用硬件实现共识验证的方法,不增加数据中心的容量,在FPGA上实现PBFT/SBFT/RBFT等区块链共识协议,降低了时间延迟。一种在网络级采用硬件实现共识验证的方法,包括如下步骤:(1)构建在网络级采用FPGA实现共识验证的系统运行框架;(2)FPGA节点之间通过执行TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/因特网互联协议)协议进行点对点连接;(3)FPGA节点采用ARP(AddressResolutionProtocol,地址解析协议)、ICMP(InternetControlMessageProtocol,Internet控制报文协议)、DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)辅助TCP/IP协议与其他FPGA节点交互,缩短TCP/IP堆栈,使FPGA处于真实网络中;(4)FPGA节点将数据消息转化为满足共识协议需要的报文格式;(5)由FPGA节点采用PBFT、SBFT或RBFT的区块链共识协议对数据消息进行传递广播,其他FPGA节点收到后发送反馈并进行投票。所述步骤(1)的具体实现方法为:在网络中布置一定量的FPGA作为节点,任意两个FPGA节点之间存在通道可进行交互,各FPGA节点均通过连接交换机以实现同一时刻多对端口之间的数据传输,FPGA节点利用其内部BRAM(嵌入式块RAM)缓冲区较小的特点,以释放DRAM(动态随机存取存储器)内存空间用于共识和应用逻辑的执行。所述步骤(2)的具体实现方法如下:由FPGA节点内部缓冲区动态分配TCP会话,使客户端请求数据小于以太网MTU(MaximumTransmissionUnit,最大传输单元)大小;FPGA节点只与其他节点之间相互重传,而不考虑与客户端之间的超时设定,以减少TCP的压栈;通过硬件实现网络协议允许建立两条真正的数据流通道对应实现隔离发送和接收路径,两条通道互不影响对方且通过数据结构共享连接状态。所述数据结构包括会话查找表、端口状态表以及由定时器支持的事件引擎;其中,会话查找表包含IP地址、目的地址和源端口,FPGA在实施时把其作为一个内容可寻址的存储器;端口状态表用于跟踪每个TCP端口的状态并为每个打开的TCP连接存储状态信息;事件引擎负责管理活动以及发送接口传入的请求并指示相应的输出引擎工作。所述步骤(3)的具体实现方法为:在FPGA设备间进行点对点通信,如果数据因为缓存空间不足或线路中断而丢失,则通过ICMP向数据的源端报告,相关事件接收方会发送重发请求的通知;发送数据包时,若发送方没有接收方的MAC地址但知道接收方的IP地址,则广播一个请求接收方MAC地址的消息;由DHCP服务器为FPGA节点分配一个空闲的IP地址,并打上有效时间戳;在ARP、ICMP、DHCP这些协议上发送和接收数据时,应用程序使用会话与网络堆栈通信,再直接将数据转发到特定应用程序的网络模块中;数据包在以太网上直接传播的过程中,利用序列号来探测数据是否丢失,所述序列号随着逻辑请求的增加而增加。所述步骤(4)的具体实现方法为:将数据消息分为需要的模块,用Metadata表示传输的元数据,用Payload表示有效载荷;规范共识协议中的组成部分,用Signature表示节点与节点交互的数字签名,用Timestamp表示消息的时间戳,用Cert表示FPGA加入网络注册需要的证书。规范报文格式后利于区块链共识协议PBFT/SBFT/RBFT等识别数据。所述步骤(5)的具体实现方法为:在加入网络的FPGA节点生成注册证书的前提下,首先选出领导节点,由领导节点将需要广播的数据消息使用哈希函数SHA-256生成摘要,然后生成一个随机数nonce并利用硬件加密模块进行ECDSA(椭圆曲线数字签名算法)计算,生成对摘要的签名,进而采用PBFT、SBFT或RBFT的区块链共识协议对签名后的数据信息进行传递广播;其他FPGA节点收到数据信息后,验证签名是否是数据发出者的,确定数据合法性,然后发出收到消息的反馈通知并对数据进行投票工作。本专利技术为了提高一致性而不降低性能,选择在硬件上实现共识协议,而不是增加更多的数据中心。本专利技术在硬件FPGA系统上实现PBFT/SBFT/RBFT等区块链共识协议,创建了能够增加中间件或者智能网络硬件的可再使用方案,并且可以使用硬件或逐步开始出现的硬件平台来处理TCP/IP网络协议和特定的网络协议工作。FPGA可以在大多情况下访问DRAM芯片中的日志,读取高速缓冲存储器头,适合PBFT/SBFT/RBFT等区块链共识协议在FPGA硬件上实现。传统的算法中,从TCP流中得到的有效载荷必须填满整个MTU数据包大小,所以为了等待更多的数据填满就必须等待一段时间,每个小于MTU大小的请求都会因为超时设定而延迟一段时间。而在本专利技术方案中,客户端请求总是小于以太网MTU大小1500B的,这样就能更好的缩短时间延迟。附图说明图1为节点之间交互关系示意图。图2为FPGA硬件的整体结构示意图。图3为TCP堆栈结构示意图。具体实施方式为了更为具体地描述本专利技术,下面结合附图及具体实施方式对本专利技术的技术方案进行详细说明。本实施方式布置了三个FPGA硬件设备作为节点,节点使用FPGA评估板,该评估板具有多个以太网接口。系统分为三个模块,网络协议模块、报文格式修改本文档来自技高网
...
一种在网络级采用硬件实现共识验证的方法

【技术保护点】
一种在网络级采用硬件实现共识验证的方法,包括如下步骤:(1)构建在网络级采用FPGA实现共识验证的系统运行框架;(2)FPGA节点之间通过执行TCP/IP协议进行点对点连接;(3)FPGA节点采用ARP、ICMP及DHCP辅助TCP/IP协议与其他FPGA节点交互,缩短TCP/IP堆栈,使FPGA处于真实网络中;(4)FPGA节点将数据消息转化为满足共识协议需要的报文格式;(5)由FPGA节点采用PBFT、SBFT或RBFT的区块链共识协议对数据消息进行传递广播,其他FPGA节点收到后发送反馈并进行投票。

【技术特征摘要】
1.一种在网络级采用硬件实现共识验证的方法,包括如下步骤:(1)构建在网络级采用FPGA实现共识验证的系统运行框架;(2)FPGA节点之间通过执行TCP/IP协议进行点对点连接;(3)FPGA节点采用ARP、ICMP及DHCP辅助TCP/IP协议与其他FPGA节点交互,缩短TCP/IP堆栈,使FPGA处于真实网络中;(4)FPGA节点将数据消息转化为满足共识协议需要的报文格式;(5)由FPGA节点采用PBFT、SBFT或RBFT的区块链共识协议对数据消息进行传递广播,其他FPGA节点收到后发送反馈并进行投票。2.根据权利要求1所述的方法,其特征在于:所述步骤(1)的具体实现方法为:在网络中布置一定量的FPGA作为节点,任意两个FPGA节点之间存在通道可进行交互,各FPGA节点均通过连接交换机以实现同一时刻多对端口之间的数据传输,FPGA节点利用其内部BRAM缓冲区较小的特点,以释放DRAM内存空间用于共识和应用逻辑的执行。3.根据权利要求1所述的方法,其特征在于:所述步骤(2)的具体实现方法如下:由FPGA节点内部缓冲区动态分配TCP会话,使客户端请求数据小于以太网MTU大小;FPGA节点只与其他节点之间相互重传,而不考虑与客户端之间的超时设定,以减少TCP的压栈;通过硬件实现网络协议允许建立两条真正的数据流通道对应实现隔离发送和接收路径,两条通道互不影响对方且通过数据结构共享连接状态。4.根据权利要求3所述的方法,其特征在于:所述数据结构包括会话查找表、端口状态表以及由定时器支持的事件引擎;其中,会话查找表包含IP地址、目的地址和源端口,FPGA在实施时把其作为一个内容可寻址的存储器;端口状态表用于跟踪每个TCP端口的状态并为每个打开的TCP连接存储状态信息;事件引擎负责管...

【专利技术属性】
技术研发人员:孙羽羿黄步添王备王云霄杨文龙陈建海
申请(专利权)人:杭州云象网络技术有限公司
类型:发明
国别省市:浙江,33

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

1