一种面向云计算的高性能区块链架构方法与流程

专利2022-05-09  20



1.本申请涉及计算机技术,具体涉及一种面向云计算的高性能区块链架构方法。


背景技术:

2.区块链是分布式共识、密码学、对等网络、分布式数据存储等计算机技术的综合创新应用,其核心优势是去中心化、防篡改、可追溯。基于边和端的区块链系统:边和端区块链系统存在安全问题,由于终端感知设备性能有限,无法建立有效的防病毒软件、防火墙、入侵检测及防御系统、无成熟的密码库保护机制,不利于维护设备持续的安全可靠性;边和端系统本身的性能方面,在存储和计算方面弱于云端系统,工业场景下可能存在的高密度物联网设备场景会产生大量认证和存证数据,从而对边和端的存储计算空间提出更高要求,同时也对区块链架构的数据防膨胀算法提出新需求。cn201980004299.9该方案设计了一种基于云平台的自动区块链部署的方法和系统。实现计算机上创建虚拟计算环境,该计算机连接到云平台;生成区块链的初始区块并将区块链的初始区块传输到云平台;促使在虚拟计算环境中初始化区块链;在区块链的初始化完成后,基于云平台监控区块链。该方案属于基于baas的区块链部署方案。该专利云计算的区块链系统可以解决边和端区块链存在的安全问题和存储受限等方面的问题。但仍然显示了一些局限性,如过多的cpu调度,低效的块广播和新的节点加入区块链网络时初始块同步的高延迟等问题。目前基于云的区块链部署方案较为低效,仍然沿用适用于边、端部署的区块链系统,仅仅改变了部署位置,而缺少专门针对云计算的区块链网络、系统架构和共识算法设计。同时,适用场景单一,没有针对单独用户企业部署区块链这类场景去考虑实际问题。


技术实现要素:

3.基于上述问题,本申请提供一种基于rdma技术构建新型区块链网络架构,为用户提供共享内存,基于共享内存设计拜占庭容错的共识算法,进而实现一种面向云计算的高性能区块链系统。利用rdma数据零拷贝、内核旁路、远程无cpu参与等优良特性,可极大提高共识速度、区块确认速度,减少区块链数据同步延迟。其技术方案为,
4.一种面向云计算的高性能区块链架构方法,包括面向云计算的区块链网络架构和面向云计算的区块链系统架构,
5.面向云计算的区块链网络架构,使各区块链节点通过与rdma直接相连,可以绕过操作系统内核实现直接与网卡进行通信;
6.面向云计算的区块链系统架构,具体包含网络层、共识层、区块链层;
7.网络层为共识层提供通信服务,共识层设有基于共享内存设计的区块链共识算法,用于对新提议的区块达成共识,区块链层用于存储数据,保持系统的数据稳定性。
8.优选的,所述网络层包含rdma代码库、基础通信api和链路管理器;rdma代码库提供了rdma基础的技术支撑,定义了远程存储访问所需的函数;基础通信api是区块链针对rdma通信方式,规定统一的通信接口,也是对于rdma代码库的实例化;链路管理器负责管理
节点之间的通信信道。
9.优选的,所述共识层包含密码学库、共享内存管理器、区块链共识核心;密码学库支持区块链所需的基础密码学功能;密码学库是区块链安全的重要保证;共享内存管理器负责共享内存的建立、使用、销毁等操作。
10.优选的,所述区块链层包含钱包、客户端、区块链数据库;钱包是区块链数字资产的存储空间,用于告知用户账户余额、数字资产状态等信息;客户端负责收发交易、提供前端操作界面,进行简单的身份验证;区块链数据库存储区块链所需数据,包含区块链账本数据、状态数据。
11.优选的,共识协议为:每个区块链节点利用共享内存管理器在云服务器中获取属于自己的共享内存区域m
i
,并获取对m
i
的最高权限,可以执行读、写操作,除了节点i之外的其他任何节点只能读取m
i
,但并不能修改m
i
中的数据,上述操作由密码学库与共享内存管理器共同负责。
12.优选的,共识过程分为四个阶段:领导人选举、生成区块、验证区块与投票、区块上链;具体过程为,
13.领导人选举:领导人选举过程需要节点共同执行基于共享内存的领导人选举算法,保证仅有一个节点在本轮胜出,领导人将负责领导后续的共识过程;
14.生成区块:在领导人选举完成后,由领导人打包交易、生成区块,并将区块写入共享内存区域,其他节点可读取该共享内存区域以获得区块信息;
15.验证区块与投票:除领导人外的其他节点在获取区块信息后,对区块进行正确性验证,若区块无误,可对区块进行多轮投票,最终对区块链形成统一意见,即接收或抛弃;
16.区块上链:在共识达成后,如果共识结果为接收,节点将会把新区块存入区块链数据库,更新相关信息;否则,抛弃该区块,进入下一轮。
17.优选的,其系统部署方法,包括以下步骤:
18.s1.建立系统运行环境;
19.s2.注册区块链节点;
20.s3.区块链节点配置,对新注册的区块链节点分配指定的共享内存区域,配置好的区块链节点将会参与共识过程;每轮共识过程中,区块链节点通过基于共享内存的领导者选举算法选取主节点,最终存在唯一的区块链节点成功竞争为主节点并生成区块,其它区块链节点对该区块进行验证于投票;系统中的区块链节点根据投票意见,统一决定是否进行区块链的上链,满足上链条件则本地区块链更新,并系统进入新一轮的共识阶段。
21.有益效果
22.1)面向云计算的高性能区块链的架构,通过rdma实现了网络通信,可以提高块广播速度,减少块同步延迟。
23.2)设计基于共享内存的区块链共识协议,针对模型提出了相应的解决共识流程;设计低能耗、高可靠的共识机制,可最大限度利用节点资源并获得更高的吞吐量和更低的延迟。
24.3)是一套完整的基于云的高性能区块链系统部署和运行流程设计。
25.术语解释
26.区块链:区块链是分布式共识、密码学、对等网络、分布式数据存储等计算机技术
的综合创新应用,其核心优势是去中心化、防篡改、可追溯。区块链通过结合密码学技术、分布式共识机制以及经济奖励激励模型,使参与的各个节点在无需彼此信任的前提下通信和协作,从而提供一个可信计算环境,为单点故障、数据存储不可信等问题提供了新的解决方案。
27.共识机制:共识机制是区块链的核心技术之一。共识机制是指在整个分布式的系统中帮助各个节点在同一个时间内对事物的前后顺序达成共识的一种算法,它保证了整个区块链网络对新生成的区块达成共识,以保证区块链的一致性。
28.云计算:云计算本质是各种远程计算资源和服务的集合。云计算通过虚拟化、分布式并行处理等关键技术实现对数据计算、数据存储、网络传输以及硬件设备等资源的抽象,进而把这些资源动态地按需提供给用户。云计算作为一种付费服务,用户需要在充分评估自身情况的前提下按需购买相对应的云计算服务。这为用户提供了一种更加灵活、便捷、经济的方式来动态地根据需求获取计算资源和存储资源。
29.远程直接数据存取(rdma)技术:rdma技术通过硬件的支持,可以直接访问远程节点的用户态数据,绕过tcp/ip协议栈,并且无需远程主机cpu的干预,可以有效地降低集群中节点通信的开销,最大化利用网络带宽,提升集群系统整体的处理能力。
附图说明
30.图1为rdma通信模式;
31.图2为面向云计算的区块链网络架构;
32.图3为面向云计算的区块链系统架构;
33.图4为基于共享存储的rdma架构;
34.图5为系统部署流程;
具体实施方式
35.以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。
36.一种面向云计算的高性能区块链架构方法,其特征在于,包括面向云计算的区块链网络架构和面向云计算的区块链系统架构,
37.面向云计算的区块链网络架构,使各区块链节点通过与rdma直接相连,可以绕过操作系统内核实现直接与网卡进行通信,rdma通信模式如图1所示,与传统的tcp/ip网卡相比,rdma网卡省略了内核(cpu)的参与,所有数据的传输直接从应用程序到达网卡。
38.如图2所示,面向云服务的网络架构,各区块链节点(也称为云节点)通过与rdma直接相连,可以绕过操作系统内核实现直接与网卡进行高效通信模式。引入rdma的网络通信,可利用rdma本身的性能无损网络实现高带宽,零复制技术减少系统中断次数和内存拷贝,实现超低延时。
39.面向云计算的区块链系统架构,具体包含网络层、共识层、区块链层,如图3所示,
40.网络层:网络层主要包含rdma代码库、基础通信api和链路管理器。rdma代码库提
供了rdma基础的技术支撑,定义了远程存储访问所需的所有函数;基础通信api是区块链针对rdma通信方式,规定统一的通信接口,也是对于rdma代码库的实例化,例如:对远程内存读、写操作等;链路管理器负责管理节点之间的通信信道,支持信道的建立、添加、删除等操作。网络层为共识层提供基本的通信服务。
41.共识层:区块链共识核心是共享内存设计的区块链共识算法,用于对新提议的区块达成共识,主要包含密码学库、共享内存管理器、区块链共识核心。密码学库支持区块链所需的基础密码学功能,例如:哈希函数、数字签名。密码学库是区块链安全的重要保证;共享内存管理器负责共享内存的建立、使用、销毁等操作。
42.区块链层:用于存储数据,保持系统的数据稳定性。区块链层主要包含钱包、客户端、区块链数据库。钱包是区块链数字资产的存储空间,用于告知用户账户余额、数字资产状态等信息;客户端负责收发交易、提供前端操作界面,进行简单的身份验证;区块链数据库存储区块链所需数据,包含但不仅限于:区块链账本数据、状态数据等。
43.基于共享内存的区块链共识协议具体为,基于共享内存的区块链共识协议由共识层负责执行,每个区块链节点利用共享内存管理器在云服务器中获取属于自己的共享内存区域m
i
(图4中,填充内容相同的代表区块链节点获取的属于自己的共享内存区域),并获取对m
i
的最高权限,可以执行读、写等任何操作,除了节点i之外的其他任何节点只能读取m
i
,但并不能修改m
i
中的数据。上述操作由密码学库与共享内存管理器共同负责,如图4所示。
44.区块链共识核心负责对新区块的共识过程,主要分为四个阶段:领导人选举、生成区块、验证区块与投票、区块上链。具体过程如下,
45.1)领导人选举:领导人选举过程需要节点共同执行基于共享内存的领导人选举算法,保证仅有一个节点在本轮胜出,领导人将负责领导后续的共识过程;
46.2)生成区块:在领导人选举完成后,由领导人打包交易、生成区块,并将区块写入共享内存区域。其他节点可读取该共享内存区域以获得区块信息。
47.3)验证区块与投票:除领导人外的其他节点在获取区块信息后,对区块进行正确性验证,若区块无误,可对区块进行多轮投票,最终对区块链形成统一意见,即接收或抛弃。这里的投票过程可以是任何类型的传统共识算法,可根据应用需求提供不同等级的容错性。
48.4)区块上链:在共识达成后,如果共识结果为接收,节点将会把新区块存入区块链数据库,更新相关信息。否则,抛弃该区块,进入下一轮。
49.图5,一种面向云计算的高性能区块链架构的系统部署方法,包括以下步骤:
50.s1.建立系统运行环境,系统的运行环境可选择为linux/windows/macos等操作系统,或docker/kubernetes等应用容器引擎。
51.s2.注册区块链节点,系统会对节点注册成为区块链节点进行资源配置;
52.s3.区块链节点配置,对新注册的区块链节点分配指定的共享内存区域,配置好的区块链节点将会参与共识过程;每轮共识过程中,区块链节点通过基于共享内存的领导者选举算法选取主节点,最终存在唯一的节点成功竞争为主节点并生成区块,其它区块链节点对该区块进行验证于投票;系统中的区块链节点根据投票意见,统一决定是否进行区块链的上链,满足上链条件则本地区块链更新,并系统进入新一轮的共识阶段。
53.以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技
术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术特征:
1.一种面向云计算的高性能区块链架构方法,其特征在于,包括面向云计算的区块链网络架构和面向云计算的区块链系统架构,面向云计算的区块链网络架构,使各区块链节点通过与rdma直接相连,可以绕过操作系统内核实现直接与网卡进行通信;面向云计算的区块链系统架构,具体包含网络层、共识层、区块链层;网络层为共识层提供通信服务,共识层设有基于共享内存设计的区块链共识算法,用于对新提议的区块达成共识,区块链层用于存储数据,保持系统的数据稳定性。2.根据权利要求1所述的一种面向云计算的高性能区块链架构方法,其特征在于,所述网络层包含rdma代码库、基础通信api和链路管理器;rdma代码库提供了rdma基础的技术支撑,定义了远程存储访问所需的函数;基础通信api是区块链针对rdma通信方式,规定统一的通信接口,也是对于rdma代码库的实例化;链路管理器负责管理节点之间的通信信道。3.根据权利要求1所述的一种面向云计算的高性能区块链架构方法,其特征在于,所述共识层包含密码学库、共享内存管理器、区块链共识核心;密码学库支持区块链所需的基础密码学功能;密码学库是区块链安全的重要保证;共享内存管理器负责共享内存的建立、使用、销毁等操作。4.根据权利要求1所述的一种面向云计算的高性能区块链架构方法,其特征在于,所述区块链层包含钱包、客户端、区块链数据库;钱包是区块链数字资产的存储空间,用于告知用户账户余额、数字资产状态等信息;客户端负责收发交易、提供前端操作界面,进行身份验证。5.根据权利要求3所述的一种面向云计算的高性能区块链架构方法,其特征在于,共识协议为:每个区块链节点利用共享内存管理器在云服务器中获取属于自己的共享内存区域m
i
,并获取对m
i
的最高权限,可以执行读、写操作,除了节点i之外的其他任何节点只能读取m
i
,但并不能修改m
i
中的数据,上述操作由密码学库与共享内存管理器共同负责。6.根据权利要求1所述的一种面向云计算的高性能区块链架构方法,其特征在于,共识过程分为四个阶段:领导人选举、生成区块、验证区块与投票、区块上链;具体过程为,领导人选举:领导人选举过程需要节点共同执行基于共享内存的领导人选举算法,保证仅有一个节点在本轮胜出,领导人将负责领导后续的共识过程;生成区块:在领导人选举完成后,由领导人打包交易、生成区块,并将区块写入共享内存区域,其他节点可读取该共享内存区域以获得区块信息;验证区块与投票:除领导人外的其他节点在获取区块信息后,对区块进行正确性验证,若区块无误,可对区块进行多轮投票,最终对区块链形成统一意见,即接收或抛弃;区块上链:在共识达成后,如果共识结果为接收,节点将会把新区块存入区块链数据库,更新相关信息;否则,抛弃该区块,进入下一轮。7.根据权利要求1所述的一种面向云计算的高性能区块链架构方法,其特征在于,其系统部署包括以下步骤:s1.建立系统运行环境;s2.注册区块链节点;s3.区块链节点配置,对新注册的区块链节点分配指定的共享内存区域,配置好的区块链节点将会参与共识过程;每轮共识过程中,区块链节点通过基于共享内存的领导者选举
算法选取主节点,最终存在唯一的区块链节点成功竞争为主节点并生成区块,其它区块链节点对该区块进行验证于投票;系统中的区块链节点根据投票意见,统一决定是否进行区块链的上链,满足上链条件则本地区块链更新,并系统进入新一轮的共识阶段。
技术总结
本发明公开了一种面向云计算的高性能区块链架构方法,包括面向云计算的区块链网络架构和面向云计算的区块链系统架构,所述面向云计算的区块链网络架构使各区块链节点通过与RDMA直接相连,可以绕过操作系统内核实现直接与网卡进行高效通信模式;面向云计算的区块链系统架构,具体包含网络层、共识层、区块链层,其优点在于,通过RDMA实现了网络通信,可以提高块广播速度,减少块同步延迟。减少块同步延迟。减少块同步延迟。


技术研发人员:于东晓 窦金峰 徐明辉 刘硕 邹逸飞
受保护的技术使用者:山东大学
技术研发日:2021.03.02
技术公布日:2021/6/24

转载请注明原文地址:https://doc.8miu.com/read-250363.html

最新回复(0)