区块链技术最近大热,币圈的人在忙着炒币,链圈的人忙着研究相关技术。做为一个技术人员,如果不了解点区块链技术都有点落伍的感觉。那么对技术人员来说,可能更关心的是区块链技术能做什么,如何从0开始做一个区块链的项目。下面我们就是探讨这个话题,抛去需求分析等不谈,我们就谈谈如何搭建一个开发生产环境。无非两种方式:采用传统的本地搭建和采用云的方式。区块链有很多开源技术可选择,在企业应用领域,一般采用Hyperledger Fabric,我们就以它为例子。
先来看看如果你想在本地搭建一个Hyperledger Fabric1.0运行和开发环境。需要哪些步骤。我们以最新的Hyperledger Fabric1.0为例,需要的软件及版本可参见:https://hyperledger-fabric.readthedocs.io/en/release-1.0/prereqs.html
操作系统我们以Oracle Linux 7为例子。
We use Oracle Linux 7, for example.
因为Docker EE版本已经不开源,所以只能安装Docker CE 版本,以Oracle Linux 7为例,具体安装可参考
because the Docker EE version is no longer open-sourced, only the Docker CE version can be installed, for example, with Oracle Linux 7, which can be consulted
https://blogs.oracle.com/hlsu/install-docker-on-oracle-linux-7
详细步骤如下:
The detailed steps are as follows:
# cd etc/yum.repos.d/
# wget http://yum.oracle.com/public-yum-ol7.repo
# vi public-yum-ol7.repo
修改下面红色部分
[ol7_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
然后执行
& nbsp; then execute
具体可参考文档 https://docs.docker.com/compose/install/#install-compose
执行:
wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
然后解压到:/usr/local/go下,并设置PATH环境变量:
export PATH=$PATH:/usr/local/go/bin
如果需要Go 语言的IDE,可以采用SublimeText 3,安装过程可参考:
SublimeText 3 can be used if IDE in Go language is required. The installation process can be consulted:
https://www.sublimetext.com/docs/3/linux_repositories.html#yum
执行:wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.xz
解压到:/usr/local/nodejs下,并设置PATH环境变量:
repress to: /usr/local/nodejs and set PATH environment variable:
export PATH=$PATH:/usr/local/nodejs/bin
然后执行:npminstallnpm@3.10.10 -g
如果报下面的错误:
解决方法,执行:
Solutions, execution:
sudo gpasswd -a ${USER} docker
具体见:https://hyperledger-fabric.readthedocs.io/en/release/samples.html
gitclonehttps://github.com/hyperledger/fabric-samples.git
执行:curl -sSLhttps://goo.gl/byy2Qj | bash -s1.0.5
如果访问不了,可访问goo.gl/byy2Qj对应的URL:
gl/ . >. >/span style="font-family: Song body; >gl/ /
https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.3.sh
可直接wget https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.3.sh该文件, 然后在本地执行:sh bootstrap-1.0.3.sh 1.0.5
the document, and then locally
下载完成后,可参考
把sample跑起来
https://hyperledger-fabric.readthedocs.io/en/release/write_first_app.html sample 注意:registerUser.js 需要把: need to read: returnfabric_ca_client.register({enrollmentID: 'user1', affiliation:'org1.department1'}, admin_user); 修改为:returnfabric_ca_client.register({enrollmentID: 'user1', affiliation:'org1.department1',role: 'client'}, admin_user);才能跑起来 changed to read returnfabric_ca_cliet.register({enrollmentID: 'user1', administration: 'org1.part 1', rule: 'liet', admin_user);
orderer | 2017-12-23 13:15:24.155 UTC [common/configtx] addToMap -> DEBU 19a Adding to config map: [Values] Channel/Consortium
orderer | 2017-12-23 13:15:24.155 UTC [orderer/common/broadcast] Handle -> WARN 19b Rejecting CONFIG_UPDATE because: Error authorizing update: Error validating ReadSet: Readset expected key [Groups] Channel/Application at version 0, but got version 1
orderer | 2017-12-23 13:15:24.155 UTC [orderer/main] func1 -> DEBU 19c Closing Broadcast stream
orderer | 2017-12-23 13:15:24.167 UTC [orderer/common/deliver] Handle -> WARN 19d Error reading from stream: rpc error: code=Canceled desc=context canceled
orderer | 2017-12-23 13:15:24.168 UTC [orderer/main] func1 -> DEBU 19e Closing Deliver stream
从前面的说明可以看出,要自己搭建一个本地的Hyperledger Fabric1.0运行环境还是比较麻烦的,如果要部署一个生产系统要考虑的东西更多,如容量估算,软硬件的采购安装,可靠性,扩展性,安全性的考虑,账本数据的存储维护等问题。
如今已经进入云时代,如果我们采用云的方式来运行区块链应用则可以大大简化上面这些问题。以Oracle区块链云服务BCS为例子:
首先创建区块链网络,如下图:
在Oracle BCS上面区块链网络创建好之后,可以进入管理控制台进行部署,管理,运维等工作。
我们可以把开发好的智能合约(在Fabric中称为ChainCode部署到区块链网络上)部署到BCS上面,如下图:
然后做一下初始化,就可以运行该智能合约了。前端应用通过REST接口调用部署好的智能合约了。下面是一个调用的例子:
可以看出,在Oracle BCS上面开发,部署区块链应用相比在本地自己搭建一个区块链的开发运行环境要简单可靠的多。总结下来,Oracle BCS有如下优势:
我们基于Oracle的区块链云服务BCS做了一个区块链食品追溯DEMO,感兴趣的可以下载感受一下。
Android手机APP:扫描或长按下面的二维码下载
苹果手机APP:扫描或长按下面的二维码下载
作者简介
徐春金,甲骨文云平台PaaS资深咨询顾问,专注于甲骨文PaaS相关产品及解决方案。具有17+年的中间件技术,产品,方案和项目实施经验。熟悉电信,电商行业。您可以通过chun.jin.xu@oracle.com与他联系。
了解更多,敬请关注甲骨文开发者社区......
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论