APP下载

基于国产化平台的区块链构建方法

2020-03-30余林倚赖宇昊马骁骁孙雪施运梅

电脑知识与技术 2020年1期
关键词:龙芯挖矿区块链

余林倚 赖宇昊 马骁骁 孙雪 施运梅

摘要:近期关于区块链的应用研究越来越多,一般都是区块链在金融、物联网等领域的应用研究,或是基于区块链的安全的研究,经过调研没有发现在国产化平台上所构建的区块链上开展研究的。本项目将探索在国产化平台上搭建区块链的方法,采用国产的龙芯机器作为实验环境,基于以太坊构建区块链,最后通过模拟挖矿验证区块链是否搭建成功。实验证明,在国产的龙芯平台上可以用以太坊构建区块链系统。

关键词:区块链;以太坊;龙芯;挖矿

中图分类号:TP393 文献标识码:A

文章编号:1009-3044(2020)01-0025-02

前一段时日区块链在网上频频引发热议,吸引了众多没接触过区块链的网友的关注,然而区块链并非一时兴起,其源头可追溯到十多年前。

2008年,中本聪首次提出了“比特币”的概念,比特币的底层记账系统就是现在我们说的区块链技术;这是以“比特币”为代表的货币区块链技术的区块链1.0时代。

在2013年下半年,VitalikButerin提出了“以太坊”的概念;2014年,以太坊基金会成立,创建了以太坊项目;这是以“以太坊”为代表的合同区块链技术的区块链2.0时代。

在2015年,IBM联手Linux基金会共同推动了区块链领域的基础项目——Hyperledger,也叫作超级账本;2017年7月,由IBM领导的Fabric项目正式发布1.0版本,同年10月,百度金融加入Hyperledger项目,目前约有27个组织参与了Fabric项目并做出贡献。这是以“fabric”为代表的企业级联盟链区块链技术的区块链3.0时代。

前人栽树,后人乘凉,以太坊和Hyperledger Fabric是两个搭建区块链最常用的平台。据目前了解在互联网领域内,使用国产芯片十分罕见,且没有在区块链国产化平台上构建的,从而我们开始探索在国产化平台上构建区块链的方法。本篇文章将提出基于国产化平台上区块链的搭建及应用,调研国产处理器与区块链技术的适配程度,采用恰当的区块链技术在国产化平台上部署区块链环境。

1相关知识

1.1区块链技术

图1为区块链结构。

区块链由区块链接组成,每个区块包含一个区块头和一系列交易作为其负载。区块主要由区块头部和区块体组成,区块头主要包括:区块号、区块的哈希值、前一区块的哈希值、时间戳、随机数和Merkle树根节点。区块体中以Merkle树形式存储着每一笔交易记录。区块链就是基于网络的、可以分散可信存储、交换和访问数据的管理系统。

区块链不仅是一个数据结构,还包括可信数据存储、交换和数据访问的相关操作机制。区块链可以看作是一种去中心化的数据管理系统,也可以看作是P2P网络上的一类应用。使用区块链需要区块链环境的支撑,好的平台会考虑区块链平台使用的安全性,那么基于fabric和基于以太坊是两种构建区块链不错的方法。

(1)Hyperledger Fabric

Fabric是介于操作系统和区块链之间的软件,出身于Hy-perledger项目,由IBM主导,作为开源的区块链实现平台,它采用不可篡改的区块链结构来保存数据、采用非对称加密技术来进行身份识别与认证、支持智能合约等等。企业级的分布式账本是它区别于其他区块链实现平台的特色,为跨越多个企业边界的活动提供不可篡改的分布式记账平台。

Fabric的区块链网络在总体上分为Orderer及Peer两类节点,当发起一个区块链交易后,将此交易提交到Peer节点上,这些Peer节点在完成必要的交易验证核实后,再将交易数据发送到一个或多个Orderer节点,经过Orderer节点特定的共识算法验证筛选后,合格的交易被打包成一个区块,广播到整個Peer节点网络中,成为持久化存储的账本。

(2)以太坊

以太坊是一个保存数字交易永久记录的公共数据库。这个数据库不需要任何中央权威机构来维持和保护它,它以一个个体在不需要信任任何第三方或对方的情况下进行点对点交易的架构。

以太坊的整体架构分为三层:底层服务、核心层、顶层应用,各层结构相互协同又各司其职,共同组成一个完整的以大坊系统。

底层服务包含P2P网络服务、LeveIDB数据库、密码学算法以及分片(sharding)优化等基础服务。这些底层服务共同促使区块链系统平稳地运行。

核心层包含区块链、共识算法和以太坊虚拟机等核心元件,其以区块链技术为主体,以共识算法为辅,并以EVM作为载体,这三部分是以太坊的核心组成部分。

这一层包括API接口、智能合约以及去中心化应用等,所有的智能合约都运行在EVM上,远程调用,该层是最接近用户的层。

1.2国产化平台

我国国内CPU产业有龙芯、申威、飞腾、兆芯等。其中龙芯作为“国家队”,坚持自主研发CPU,其产品线包括龙芯1号小CPU、龙芯2号中CPU和龙芯3号大CPU三个系列。

龙芯1号系列为32位低功耗、低成本,主要面向低端嵌入式和专用应用领域;龙芯2号主要面向工控和终端等领域;龙芯3号主要面向桌面和服务器等领域,这三个系列并行发展。目前龙芯3号系列产品主要包括龙芯3A1000、3A2000/3A1500I/382000、3A3000/383000几款芯片。前三款封装设计一致,3A3000/383000起可向下兼容其他主板。龙芯3号系列又分为A、B两个系列,3A3000为面向桌面版本,用于台式机或桌面机上;383000为面向服务器版本,用于服务器上,支持双路及多路互连系统。

2国产化平台上区块链的构建

2.1环境准备

硬件平台:内置龙芯cpu的台式机

芯片规格:龙芯3A3000处理器,四核64位,支持MIPS64指令集、支持LISA64指令集

操作系统:Ubuntu 16

其他软件:Go语言安装包、以太坊安装包

2.2构建方法

经过反复比对龙芯各型号cpu,本文选择龙芯3A3000处理器。在初期,通过移植了mips版本的ubuntu系统,希望借助官方源完成搭建docker等fabric所需环境。后因为docker不支持mios版本系统,进行docker原生编译,原生编译过程中因为mios架构导致不兼容。后改用龙芯官方支持,通过loongnix系统yum服务器进行docker安装,但在拉取docker hub上的fabric相关镜像时,不支持zips架构,转而放弃fabric,转用以太坊进行搭建。

对于基于以太坊的区块链构建,其层次结构如图2所示,最底层是内置龙芯3A3000型号处理器的主机,在此基础上装有操作系统,龙芯cpu不支持Windows,但能使用Ubuntu,所以倒数第二是Linux系统;部署区块链时需要以太坊作为中间件,所以以太坊环境作为第二层,区块链为顶层。

在操作系统上构建以太坊环境需要安装软件Go-ethereum运行以太坊节点,简称Geth,Geth采用g0语言…,因此确保基础环境包含go语言;如图3所示,是通过Geth构建区块链的方式,区块链属于以太坊的核心层,基于创世区块生成根节点后,其他人就可以通过来连接此根节点进行交易,有了创始区块作为根本,挖矿可以产生出其它的区块。

2.3构建过程

go语言环境

搭建go语言环境用于支持以太坊客户端,而loongson底层是mips架构,一般的dab包上不了,所以从源代码开始编译go环境,是以在X86平台上先生成一个可在loongson平台上使用包,再于loongson平台上编译。

以太坊环境

以太坊的搭建首先安装软件Geth,准备好创世区块,初始化生成根节点,此后配好环境变量后便可启动节点。

3区块链测试

比特币依托于区块链,通过“挖矿”产生,从而我们在此利用“挖矿”实验去测试区块链环境在龙芯平台上的构建是否成功。

挖矿测试中,挖到的矿就是比特币。设置这样一个应用场景,每挖出一个区块奖励5个币,将默认的挖矿收益账户设置为accounts,记录该账户挖矿前后资金进行比对,若满足“账户初始金额+挖出的区块数×5=挖矿后账户金额”,则说明挖矿成功,从而表明区块链搭建方法可行,并证明了区块链能在国产化平台上使用。

经过测试,比特币增量恰恰就是20,挖矿测试成功,区块链技术能在国产化平台上使用,且构建方法可行。

4结束语

目前对于区块链的研究与使用广泛基于比较普遍的机器诸如联想、戴尔、惠普等计算机,内置的基本都是intel的cpu,也就是说针对区块链的使用往往需要依赖于国外的技术,习总书记在网络安全和信息化工作座谈会上曾指出“如果核心元器件严重依赖外国,供应链的‘命门掌握在别人手里,就好比在别人的墙基上砌房子,再大再漂亮也可能经不起风雨,甚至会不堪一击。”本文提出一种在龙芯国产化硬件平台上基于以太坊的区块链应用方案,研究过程从针对国产化硬件平台进行調研,到在国产化硬件平台上部署区块链,用两种不同的区块链技术进行试验,探索出在龙芯3A3000机器上构建区块链的可行方案,最后通过模拟挖矿测试方案效果。现在区块链在国产平台领域中的应用尚处于探索磨合阶段,存在硬件与技术不兼容的问题,希望本文能为区块链在国产化平台上的使用提供一些借鉴或灵感。

5致谢

由北京信息科技大学2019年人才培养质量提供经费(51019234001支持。

This work is supported by 2019 Talent—Development.

猜你喜欢

龙芯挖矿区块链
基于国产化龙芯的动环数据采集系统
合力攻坚 全面治理高校“挖矿”
多措并举 全流程整治“挖矿”
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
“龙芯之父”胡伟武
用“区块链”助推中企走出去
龙芯发布新一代处理器产品