0 引言
区块链是分布式网络中信任传递的关键技术,具有中心化、不可篡改、数据可追溯、可信性、隐私安全等特性,近年来在各领域得到了越来越广泛的应用和普及[1]。但是,目前区块链应用入门门槛较高,缺少区块链服务和工具,基于区块链的应用从建链、建通道等各个环节复杂,交付周期长,系统性能、安全、可用性等问题难以保障,因此,设计开发完善的基础设施成为一个广泛的需求。
1 区块链概述
1.1 区块链的基本含义
区块链是一种分布式记账的技术,可实现多方数据的安全共享[2]。随着区块链应用的普及,其开始与大数据、人工智能、5G 等技术深度结合,已经广泛应用于电子证照、数字票据、冠字号管理、联合网贷、食品溯源、边境贸易、数字医疗等场景[3-5]。
区块链通过共识机制构建可信任的多中心体系,有利于数据价值的可靠共享和传递。目前各研究机构和企业都针对具体应用场景提出了不少优秀的解决方案,取得了显著的成果[6]。但是,由于区块链技术发展迅速,各平台的实现机制并不统一,难以突破特定行业的应用背景,制约了大范围区块链系统的实施[
7]。因此,如何设计通用性好的区块链底层平台,协助用户快速构建区块链应用,具有重要的意义[8-10]。区块链运行于P2P 网络之上,通过去中心化共识算法实现交易的加密链式存储。此外,由于hash 算法的单向性,非常容易对交易进行确认,实现了不可篡改的
一种区块链基础设施的实验
王 剑,吴乃冈,杨国忠,张天浩,丁 丹江苏荣泽信息科技股份有限公司,江苏 南京 210000
摘要:文章针对区块链应用场景的不同需求,研究了区块链基础设施构建的理论和技术,提出了包含集成层、平台层和业务层的逻辑架构,分析了P2P 组网、分布式账本、共识服务、应用组件和辅助功能等区块链基础设施构建中的关键技术,并在此基础之上搭建了实验验证环境,进行贴近实际应用场景的仿真实验。实验结果显示,所提区块链基础设施构建方案能支持主流区块链应用,具有较高的可行性。关键词:新基建;区块链;高可用;系统架构中图分类号:TP319
共识,保障了交易的可信度,其架构如图1所示。
图1 区块链基本架构
1.2 区块链发展阶段
到目前为止,区块链发展共经历了3个阶段。在1.0阶段,区块链是比特币的实现技术;在2.0阶段,出现了以太坊等智能合约平台;在3.0阶段,联盟区块链的应用领域扩展到金融行业之外,开始深入政务、医疗、电子商务等领域,发挥其在知识产权保护、信息安全管理等方面的作用,广泛而深刻地改变人们的生活方式[11]。
此外,从2018年开始,区块链联盟生态得到了社会的广泛认可,推动了区块链应用的快速发展[12]。区块链联盟偏重于促进各种应用在联盟链中的融合,为机构和民众带来更多实际性的行业应用价值[13]。区块链和云计算技术相结合,产生了BaaS 平台,即区块链服务。这种服务化的平台一般包含平台管理和运行管理两个方面:一是底层系统资源管理;二是应用程序管理。
本文研究的通用区块链基础设施正是为上层服务化平台提供支撑,实现高可用、灵活扩展等功能。
父
区块
子区块
父区块哈希
版本
时间戳难度
随机数
区块头区块体
Mcrkel 根Hash:1-8
Hash1234
Hash5678Hash12
Hash34
Hash56
Hash78
Hash1 Hash2 Hash3 Hash4 Hash5 Hash6 Hash7 Hash8交易1 交易2 交易3 交易4 交易5 交易6 交易7 交易8
2 系统架构
区块链基础设施系统架构,主要结合了云平台的服务化特征,兼容各种共识算法,借鉴基于容器的微服务架构、应用企业级分布式存储技术,以支撑区块链基础设施架构能被应用于多种落地场景中。
图2 总体架构
区块链基础设施的总体逻辑架构如图2所示,包含集成层、平台层和业务层3个层次。
(1)集成层
集成层包含了区块链系统所需的计算、网络通信、存储阵列等资源池。集成层中,相关人员通过配置接口和数据安全交换中间件来实现区块链系统和已有业务系统无缝对接和链上链下的互动协同。具体而言,集成层能够实现以下两项功能:
其一,服务管理与集成,提供服务的注册、接入、协议适配与转换的功能,担当各个业务系统间的服务总线,降低系统间交互的复杂性;
其二,数据管理与集成,提供元数据管理、数据整合等基础数据管理功能,并为上层应用和外部系统提供数据共享服务,为各业务系统数据的管控、共享和应用提供支撑。
(2)平台层
平台层由数据受控访问沙箱、大数据应用BaaS 平台、PaaS 及DaaS 管控平台、综合管理系统组成。其中,数据受控访问安全沙箱通过将审计过的模型、算法下发到集成层接口,获取符合检索条件的数据、日志等内容。该组件支持数据所有者在其数据所有权不变的情况下实现数据使用权的可信流通共享。
(3)业务层
业务层根据不同的数据融合需求,基于平台层提供的定制化服务,可迅速实现业务应用与对应业务区块链的生成和对接,同时接入BaaS 平台中的公共链,实现对数据的安全可控检索和使用。
3 系统设计
3.1 P 2P 组网
对等协议(peer-to-peer)能够实现基础组网和通信,每个节点维护一张邻居列表,实现动态自组织网络;并可与现有的安全防护设施配合使用,确保商用网络的安全性,如图3所示。
图3 节点组网示意图
节点分为peer 节点和learn 节点。每个peer 表示共识网络中的一个节点,每个外部服务的learn 为共识网络中的learn 节点,此节点不能参与选举,无法成为其他角色。
3.2 交易账本
区块链交易账本存储在每个peer 节点中,peer 之间通过共识算法实现账本的同步,每个peer 中又可细化为learn 节点和node 节点以及pd 节点,其关系如图4所示。
图4 节点关系示意图
集成层
平
台层
计算资源池
存储资源池
通信网络资源池
安全防护资源池
业务物理接口
物理基础设施、服务器集群、磁盘阵列、高性能网络设备、各类业务平台资源
安全沙箱
日志上链
数据分布式存储(轻量级)
索引链
目录链授权链审计链身份链目录体系数据规范
接入授权
业务链1业务链2业务链3业务链4业务链5电力金融政务不动产
苏康码业务应
用场景业务层
平台管理
系统日志
安全防护系统管理权限管理区块链管理
…………
……
+l
l
p p p
p
l
l
l n
n
n
n
l
l
l
-BaaS 平台
服务化提供
peer之间组成了共识网络,其中peer和learn属于多通道共识。peer存储全量数据,learn在外部节点间也属于一个存储节点。为了实现数据的共识同步,相关人员可以通过配置多个learn和node,选择多种模式实现共识同步。外部存储会将数据分为多个Region,每个Region都会存储备份在多个node上,进而可以配置存储多个副本数。外部节点通过PD注册状态等信息,用于复制不同partition的数据。learn 节点在外部存储服务中相当于leader角色,引导其他节点同步复制数据。
3.3 共识算法
区块链基础设施中的共识算法具有兼容性,可以兼容多种类型的算法。具体体现在:文章中探讨的区块链基础设施,其以Byzantine Paxos、Byzantine Raft 商用共识算法为主,同时支持PBFT等常见的识算法,并且可以根据上层应用对区块链基础设施性能、安全性、容错能力等需求选择不同的算法。
3.4 应用组件
在区块链基础设施的系统设计中,相关人员应在分布式账本适配层抽象出:资产(Ast)、记录(Record)、事务(Transaction)、合约(Contract)等各类组件,为应用层理解和对接提供便利。相关人员既可以通过开发适用于多种业务场景的API接口,供这些场景相关的业务直接使用,也可以在现有框架基础上为用户快速定制接口,以满足业务功能的需求。
3.5 辅助功能
为保障区块链基础设施运行,还需要若干辅助功能。例如,节点部署策略、数据访问权限策略;物理层(CPU、内存、磁盘等)、网络层(时延、断线)和业务层(区块生成、交易验证);建立完善的告警、日志、消息通知机制体系,便于商用系统的运维等。4 仿真验证
为验证文章所提出的区块链基础设施的功能和性能,搭建了如图5所示的仿真验证平台进行实验验证。针对特定的测试环境设计基准的性能测试用例,并组合多种测试情况进行混合场景的性能测试。
在正常的生产数据下,采用阶梯式的方式进行仿真测试。首先,测试人员分别使用并发用户100、500、1 000、5 000个进行测试。其次,测试人员如果在某一个并发用户数,如5 000个并发用户测试时,发现性能下降,那么则逐步减少并发数,找出性能拐点。最后,测试人员使用拐点并发数的70%,继续进行持续1天、10天、30天的稳定性测试。
图 5 仿真拓扑
实验环境中共部署了4个节点:一个本地节点,3个远程节点。实验中的请求和响应实例如下所示:localhost :8081/rbc.api/api/data/history?
sign_type=sm2&sign=ERITJKEIJKJHKKKKKKKHJ EREEEEEEEEEEE&version=1.0&c
hart=UTF-8×tap=41234123&bizContent={
"channeIName":"testchannel",
"modeIName":"DemoModel",
"chainCodeName":"DemoChaincode",
"tableName":"DemoTbale",
“idkey":"2345234154-3241234-efqwf",
"rbcPeer0rg":{
"CAProperties":{},
"mspid":"RBCOrgMSp" ,
"name": "RBC0rg",
"peerConfigList": [{
"EVENT_LOCATION":"grpc://192.168.1.29:7053",
"PEER_NAME":"",
"PEER_LOCATION":"grpc://192.168.1.29:7051"
}]
},
"curityCert":{
"channeIName":"onechannel",
"customerId":",
"customerNo":"admin",
存储设备交换机
远程节点1
远程节点2
远程节点3
区块链节点机
加解密服务器
中心管理服务器
中间件服务器
"devicePath":“。
"rbcUr":"dfsadf3412t34fqf123f2","curityType":"ecdh"}}
响应示例为:{
"msg":"成功","code":"200","data":{"dataHistory":[{"value":{"one" :"dsfa","two":"fa32",
"txTime":“2020-08-07 11:39:32","three":"423f"
}],
"txid":452345453241412*,
"timestamp":"2020-08-07T03:39:32.0972","isDelete":"fal"}}}
实验测得不同并发情况下的实验数据如下所示。登录并发30时的实验数据如表1所示。登录并发100时的实验数据如表2所示。登录并发100,持续300 s 时的实验数据如表3所示。
数据上链并发100,持续300 s 时的实验数据如表4所示。
数据查询并发100,持续300 s 时的实验数据如表5所示。
经过实验,应用系统在登录、数据上链、查询链上数据时,平均响应时间均小于3 s,报错在可控范
表5 数据查询并发100,持续300 s 实验数据
表4 数据上链并发100,持续300 s 实验数据
表1 登录并发30实验数据
表2 登录并发100实验数据
表3 登录并发100,持续300 s 实验数据
Label #Samples Average Median 90%Line 95%Line 99%Line Min Maximum Eror%Throughput RecevedKB SentKB/c 用户登录30960218 1 799 1 803 1 8067518060.00%16.5/c 7.010.00TOTAL
30
960
218
1 799
1 803
1 806
75
1806
0.00%
16.5/c
7.01
0.00
Label #Samples Average Median 90%Line 95%Line 99%Line Min Maximum Eror%Throughput RecevedKB SentKB/c 用户登录100985357 1 866 1 878 1 9003819020.00%50.7/c 21.480.00TOTAL
100
985
357
1 866
1 878
1 900
38
1902
0.00%
50.7/c
21.48
0.00
Label #Samples Average Median 90%Line 95%Line 99%Line Min Maximum Eror%Throughput RecevedKB SentKB/c 用户登录206 63614570140229 1 7011711 7000.00%685.5/c 254.420.00TOTAL
206 636
145
70
140
229
1 701
17
11 700
0.00%
685.5/c
254.42
0.00
Label #Samples Average Median 90%Line 95%Line 99%Line Min Maximum Eror%Throughput Rece
vedKB SentKB/c 用户登录13 268 2 290 1 362 1 67411 45320 26063020 7340.00%41.5/c 11.600.00TOTAL
13 268
2 290
1 362
1 674
11 453
20 260
630
20 734
0.00%
41.5/c
11.60
0.00
Label #Samples Average Median 90%Line 95%Line 99%Line Min Maximum Eror%Throughput RecevedKB SentKB/c 用户登录29 424 1 018842 1 081 1 166 1 3607360 0800.34%98.0/c 87.290.00TOTAL
29 424
1 018
842
1 081
1 166
1 360
73
60 080
0.34%
98.0/c
87.29
0.00
(下转第154页)
不同用户合理分配资源,从而既能满足用户的处理要求,又能实现云数据库整体性能最大化,是一个需要继续深入研究的问题。未来,众多的云数据库产品可以满足不同类型用户的应用需求。用户可以根据云数据库中自己需要的信息,选择适合自己的相应产品。
参考文献
[1]林子雨,赖永炫,林琛,等.云数据库研究[J].软件学报,2012(5):1148-1166.
[2]许振霞.云数据库研究[J].计算机光盘软件与应用,2014(4):109-110.[3]青欣,胥光辉,戢瑶,等.云数据库应用研究[J].计算机技术与发展,2013(5):37-41.
[4]刘正光,刘勇.卫星云图数据库的研究[J].计算机工程与科学,2001,23(3):18-20.
[5]张振勇,文静华.基于架构的关系数据库与云端数据库比较分析[J].电脑知识与技术:学术交流,2009,5(25):7090-7092.
[6]林子雨,赖永炫,林琛,等.云数据库研究[D].北京:中国科学院软件研究所,中国计算机学会,2012.
[7]张振勇,文静华.基于架构的关系数据库与云端数据库比较分析[J].电脑知识与技术,2009(9):7090-7092.
[8]史恒亮,白光一,唐振民,等.基于蚁群优化算法的云数据库动态路径规划[J].计算机科学,2010(5):143-145.
围内,TPS不再增加,无性能瓶颈。各测试场景中各个事务响应时间均可满足业务需求,服务器资源CPU 负载稳定,内存使用率稳定,未出现任何异常现象。5 结语
综上所述,区块链基础设施是数字新基建的重要支撑,由于区块链平台多、技术复杂、研发门槛高,制约了区块链技术的普及和应用。本文在多年区块链系统构建实践的基础上,归纳总计了区块链基础设施构建的理论和方法,进一步研究将对此架构进行国产化部署和封装,进一步提高安全性和可用性。
参考文献
[1]邱雪松.电力数字新基建中区块链及物联网技术的应用[J].电力工程技术,2020,39(6):1.
[2]KAN L,WEI Y,HAFIZ MUHAMMAD A,et al.A Multiple Blockchains Architecture on Inter-Blockchain Commu-nication[C].2018.
[3]郭崇岭,赵野.区块链技术在空间信息智能感知领域的应用综述[J].计算机科学,2020,47(S2):354-358,362.
[4]LI S.Application of Blockchain Technology in Smart City Infrastructure [M].2018 IEEE International Conference on Smart Internet of Things (SmartIoT),2018:276-2766.
[5]XIAOLIAN C,XIAOHAI X,FENG G. Rearch on distributed
authentication of power IoT bad on Hyperledger blockchain [J].
Application of Electronic Technique,2019,45(5):57-60.[6]RADYUKHIN V A,DADINOVA L A,ORLOV I A,et al. Amphipathic condary structure elements and putative cholesterol recognizing amino acid connsus (CRAC) motifs as governing factors of highly specific matrix protein interactions with raft-type membranes in enveloped virus [J].
J Biomol Struct Dyn,2018,36(5):1351.
[7]OUADDAH A,ABOU ELKALAM A,AIT OUAHMAN A. FairAccess:a new Blockchain-bad access control framework for the Internet of Things [J].Security and Communication Networks,2016,9(18):5943.
[8]刘宗媛,赵甜,高睿,等.区块链作为新型基础设施的意义、作用和前景分析[J]. 网络空间安全,2020,11(11):79-83.[9]XIE J,YU F R,HUANG T,et al. A Survey on the Scalability of Blockchain Systems [J].IEEE Network,2019,33(5):166.[10]ZHAOFENG M,XIAOCHANG W,JAIN D K,et al. A Blockchain-Bad Trusted Data Management Scheme in Edge Computing [J].IEEE Transactions on Industrial I
nformatics,
2020,16(3):2013-2021.
[11]AGRAWAL R,CHATTERJEE J M,KUMAR A,et al. Blockchain Technology and the Internet of Things:Challenges and Applications in Bitcoin and Security [M]. Apple Academic Press.
[12]戴珊.基于联盟链的数字版权管理系统[J].科技与创新,2020(19):104-106.
[13]朱岩,王静,郭倩,等.基于区块链的智能合约技术研究进展[J].网络空间安全,2020,11(9):19-24,54.
(上接第151页)