APP下载

Hyperledger Fabric技术构建学习记录共享账本研究

2020-03-04夏浩飞许谦

现代电子技术 2020年2期
关键词:模拟实验

夏浩飞 许谦

摘  要: 为打破教育机构之间的壁垒,推进学习记录数据互认,搭建校企数据共享平台,采用虚拟机、Linux系统、Docker容器等软件架构运行环境,运用超级账本技术设计数据共享平台,通过Fabric网络搭建智能合约设计、安装、调用等步骤,进行学习记录共享账本构建模拟实验,实现了基于区块链技术的分布式学习记录数据库创建与查询。实验结果表明,超级账本作为区块链技术的重要分支,适用于学习记录数据共建共享领域,为教育大数据建设提供了一种全新的技术支持与设计思路。

关键词: 学习记录; 共享账本; 数据共享平台; Hyperledger Fabric技术; 架构模型; 模拟实验

中图分类号: TN911.2?34                          文献标识码: A                       文章编号: 1004?373X(2020)02?0080?04

Learning record sharing account book construction with Hyperledger

Fabric technology

XIA Haofei, XU Qian

Abstract: The operating environment is structured with virtual machine, Linux system, Docker container and so on, and the data sharing platform is designed with the Hyperledger technology to break the barriers between educational institutions, promote the mutual recognition of learning record data, and build a school?enterprise data sharing platform. The simulation experiment of building learning record sharing account book is carried out by means of the Fabric network construction, intelligent contract design, installation, invocation and other steps to realize the creation and query of the distributed learning record database based on the blockchain technology. The experimental results show that as an important branch of the blockchain technology, the Hyperledger is suitable for the field of learning record data co?construction and sharing, and provides a new technical support and design thought for the large data construction in education.

Keywords: learning record; sharing account book; data sharing platform; Hyperledger Fabrictechnology; architecture model; simulation experiment

0  引  言

比特幣作为最早的区块链技术,仍只关注电子货币的创建与交易。以太坊借助智能合约,在数字货币发行与交易、众筹、线上自治组织建设等领域都有应用[1]。Hyperledger项目致力于打造新一代以分布式共享账本为核心的交易应用平台,在金融服务、供应链服务、商品身份溯源等领域已建立起相关应用[2]。

在教育领域,区块链技术也日趋受到关注。李青等认为可以借助区块链技术推动教育的开放和公信[3]。许涛等提出区块链技术在教育教学中的应用主要包括区块链成绩单、学习者资源管理、建立学习账本[4]。杨现民等阐述了利用区块链技术建立个体学信大数据、开发学位证书系统等[5]。在国外,尼科西亚大学把学生的专业证书储存在分布式账簿上,保证了记录的安全和可信[3,6];麻省理工学院的媒体实验室应用区块链技术研发了学习证书平台[3,7];霍伯顿学校将学历证书信息放在区块链上进行共享[8]。

文中借助Hyperledger Fabric技术,以解决目前存在的教育机构之间的学习记录数据共享壁垒[3],用人机构获取学习记录数据的不便[3?4],非传统教育机构学习记录数据缺失[5]等问题为出发点,简要分析Hyperledger Fabric技术的特点及优势,开展了学习记录共享账本建设与应用的模拟实验,提出一种依托区块链技术的普遍参与的、高安全性的分布式学习记录数据共享平台设计理念。

1  Hyperledger概述及Fabric架构

1.1  Hyperledger概述

Hyperledger项目致力于借助区块链技术打造一个企业间共享的、经过授权的、冗余的账本,账本由链上的成员共同维护和管理,并引入监管机构进行账本的独立监管,以构建一个全新的企业间生态[9]。

系统具有以下特点:账本在每个节点间进行复制,保证所有的项目参与方共享同样的帐本;链上成员通过背书参与数据验证,网络依赖排序机制保持数据一致;引入身份管理和加密算法确保参与者仅能查看与其相关的账本内容,交易是授权的、保密的和可追溯的;交易中嵌入可编程内容,即智能合约,实现交易的功能化。

1.2  Fabric架构

Fabric是Hyperledger项目中应用最为广泛的子项目,由身份管理、账本管理、交易管理和智能合约四个主要部分组成[10]。

身份管理模块负责证书的颁发、管理和基于PKI(Public Key Infrastructrue)的身份认证;账本由区块账本和状态账本组成,区块账本用来记录交易的流水,只能增加不可修改,状态账本由Key?Value数据库LevelDB或支持jason数据格式的数据库couchdb提供支持,用来记录最新的交易结果数据,支持修改,操作灵活;交易管理由提案、背书、排序和记账环节组成,是Fabric的核心技术;智能合约是Fabric的可编程部分,是生成交易的来源,设计有两个必须实现的接口:init()和invoke(),分别用于初始化工作和更新、查询状态数据库。

1.3  技术优势

相比中心化存储模式,Hyperledger依托区块链技术分布式存储、数据共识、安全可靠、不可篡改等特点,提出把传统的单个机构的信息系统建设,提升为机构群组的信息系统生态圈建设的理念[9],打造一种全新的数据存储方式。

相比比特币系统和以太坊:Hyperledger取消数字货币机制,把区块链技术应用方向扩展至社会各领域;以云服务平台或高性能服务器来架构区块服务,打破区块链网络的计算机性能瓶颈,改进共识算法,大幅提升数据吞吐量和系统效率[11];加入权限管理机制,在保障用户隐私和自由交易的同时,确保用户行为的可追责且不可陷害;引入通道机制,支持多系统建设;基于Docker容器运行,各功能模块相互独立,提升数据安全性。

2  学习记录共享账本建设模拟实验

2.1  系统架构模型

学习记录共享账本模型如图1所示。

2.2  实验环境搭建

实验环境基于virtualBox虚拟机系统搭建,相关软件包括:virtualBox version 5.2;git version 2.18.0.windows.1,vagrant version 2.1.2,box ubuntu 14.4;Fabric项目运行软件配置包括Docker version 18.03.1?ce,Docker compose version 1.17.0,Go version,go1.9.5,Node version v8.11.3,Npm version 5.6.0。

2.3  Fabric网络设置及角色模拟

表1为Fabric网络配置及服务模拟的对象,排序算法采用Fabric1.0 默认的solo算法,账本数据库采用couchdb,证书服务由Fabric?ca模块提供,cli模拟应用程序,Fabric网络配置信息写入docker?compose?learnRecord.yaml文件。

2.4  智能合约设计

1) 智能合约名称为learnRecord。

2) 学习记录数据结构代码如下:

type Record struct {

Creator  string ′json:"creator"′

StudentID  string ′json:"studentID"′

StudentName string ′json:"studentName"′

Major  string ′json:"major"′

CourseAndCredit []string ′json:"courseAndCredit"′

}

3) 智能合約函数及其作用。Init(APIstub shim.ChaincodeStubInterface)作用,初始化账本;Invoke(APIstub shim.ChaincodeStubInterface)作用,调用智能合约;createRecord(APIstub shim.ChaincodeStubInterface, args []string)作用,创建学习记录;queryRecord(APIstub shim.ChaincodeStubInterface, args []string)作用,查询学习记录;main()作用,启动智能合约。

2.5  实验过程

2.5.1  启动Fabric网络,创建通道,安装并实例化智能

合约

1) docker?compose命令激活docker?compose?learnRecord.yaml配置文件,启动cli, ca1.example.com,ca2.example.com,orderer.example.com,couchdb及peer服务。

2) 进入cli容器内部,创建基于orderer.example.com排序服务的通道 mychannel,Fabric网络节点成员Jxtvu,Tztvu,Jxvtc,Nyvtc加入mychannel通道。

3)使用install命令为成员节点安装智能合约,instantiate命令完成智能合约的实例化。实例化过程中设置通道的背书策略为AND (′Org1MSP.member′,

′Org2MSP.member′),即交易需要获得org1成员和org2成员的共同背书签名才是有效的,背书策略保证学习记录的创建必须经过两个组织成员的共同认证。

2.5.2  成员注册

enrollAdmin.js实现管理员认证,管理员信息写在ca1(ca2).example.com网络配置文件模块中,图2为admin用户注册成功的截图。registerUser.js文件用于注册组织的用户信息,依赖于admin用户,注册成功的用户才能访问Fabric网络,图3为用户注册成功截图。

2.5.3  学习记录创建

regitserUser.js已注册用户XHF可以调用完成实例化的智能合约learnRecord中的函数。调用createRecord函数新增学习记录的部分关键代码如下:

var request={

chaincodeId: ′learnRecord′,

fcn: ′createRecord′,

args:[‘RECORD0′, ′Jxtvu′, ′Jxtvu0001′, ′LiWei′,

′Computer′, ′Course:Maths Credit:4′,

′Course:Graphics  Credit:3′,  ‘Course:C Language  Credit:5′],

ChainId:′mychannel′,

txId:tx_id

};

代码执行以交易方式进行,交易经过提案、背书、排序后,获得足够签名,认证有效的交易信息记录在区块文件中,图4为交易处理流程。区块文件在节点加入通道时由系统生成,以blockfile为前缀,以六位数字为后缀,依次增加,如blockfile_000000,blockfile_000001,状态数据则写人到couchdb数据库中,账本数据记账至网络中的各节点,即账本拷贝。

2.5.4  学习记录数据查询

成员节点的注册用户调用queryRecord,给出查询参数RECORD0,实现指定学习记录的查询,图5为查询结果。Key为学习记录数据的编号,Record为学习记录数据的内容,查询操作不产生交易,操作流程不记录在区块账本中。

3  结  论

实验运用Hyperledger Fabric技术,依托区块链的数据可追溯、不可抵赖、安全可信、去中心化等特性,采用虚拟机的不同端口,模拟4个分布式网络节点,通过交易提案、背书、共识、账本更新等环节,实现由Jxtvu,Tztvu,Jxvtc,Nyvtc四个节点成员共同参与建设并共享数据的分布式学习记录账本构建,证明Hyperledger Fabric技术应用于该领域的可行性,为教育大数据建设提供了一种全新的技术支持与设计思路。

参考文献

[1] 谈国鹏.盘点以太坊十大应用[EB/OL].[2017?03?26].http://www.8btc.com/ethereum?top?10?app.

[2] 夏勇. Hyperledger Fabric应用案例赏析[EB/OL].[2017?06?18]. http://wenku.it168.com/d_001737173.shtml.

[3] 李青,张鑫.区块链:以技术推动教育的开放和公信[J].远程教育杂志,2017(1):36?44.

[4] 许涛.区块链技术在教育教学中的应用与挑战[J].现代教育技术,2017(1):108?114.

[5] 杨现民,李新,吴焕庆,等.区块链技术在教育领域的应用模式与现实挑战[J].现代远程教育研究,2017(2):34?45.

[6] University of Nicosia. Professional certification programs [EB/OL]. [2015?12?29]. https://digitalcurrency.unic.ac.cy/professional?certification?programs/.

[7] Simon Fraser University. Degree requirements [EB/OL]. [2017?08?21]. http://www.sfu.ca/computing/current?students/graduate?students/academic?programs/degree?requirements.html.

[8] Holberton School. Holberton School to authenticate its academic certificates with the bitcoin blockchain [EB/OL].  [2017?07?16]. http://www.marketwired.com/press?release/ts?ac?ademic?certificates?with?bitcoin?blockchain?2065768.htm.

[9] 董宁.区块链商用之道[EB/OL].[2017?04?15].http://www.docin.com/p?1864142241.html.

[10] 张增骏,董宁,朱轩彤,等.深度探索区块链:hyperledger技术与应用[M].北京:机械工业出版社,2017.

[11] 邵奇峰,金澈清,张召,等.区块链技术:架构及进展[J].计算机学报,2018(5):969?988.

作者简介:夏浩飞(1981—),男,浙江嘉兴人,講师,研究方向为软件设计、数据库、区块链技术。

许  谦(1956—),男,浙江嘉兴人,教授,研究方向为数学建模。

猜你喜欢

模拟实验
模拟实验在科学教学中的应用研究
珠一坳陷近源及远源油气富集主控地质因素统计与油气运移物理模拟实验
煤矿勘查中煤岩瓦斯解吸过程模拟实验装置
断块油藏注采耦合物理模拟实验
模拟实验在中职学校会计教育中的重要性研究
输气管道砂冲蚀的模拟实验
基于模拟实验研究不均匀沉降对加宽路面结构的影响
射孔井水力压裂模拟实验相似准则推导
弹道修正模拟实验装置的研究
大气介质定压条件下煤的瓦斯解吸规律模拟实验研究