区块链 Hyperledger

来源:互联网 发布:suse linux 扩磁盘 编辑:程序博客网 时间:2024/05/18 16:39

Hyperledger - 超级账本项目在centos7环境下的安装与部署

Hyperledger 项目是开源界面向开放、标准区块链技术的首个重要探索,在Linux 基金会的支持下,吸引了众多科技和金融巨头的参与。
本文将介绍 hyperledger 项目的历史,并以核心的 fabric 项目为例,讲解如何快速安装部署和应用区块链系统。

  • 亲试操作系统版本:centos7或centos7.1或centos7.2都可以

区块链开源项目汇总:

  • 微软开源区块链平台项目 Bletchley
  • linux开源项目 Hyperledger Fabric
  • 分布式总账区块链工具 Openchain
  • 点对点的多态数字资产交易系统 BitShares

  • 区块链简单介绍

区块链已经成为当下最受人关注的开源技术,有人说它将颠覆金融行业的未来。然而对很多人来说,区块链技术难以理解和实现,而且缺乏统一的规范。
2015 年 12 月,Linux 基金 会牵头,联合 30 家初始成员(包括 IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、Swift、Cisco 等),共同 宣告 了 Hyperledger 项目的成立。该项目试图打造一个透明、公开、去中心化的超级账本项目,作为区块链技术的开源规范和标准,让更多的应用能更容易的建立在区块链技术之上。项目官方信息网站在 hyperledger.org,
目前已经有超过 100 家全球知名企业和机构(大部分均为各自行业的领导者)宣布加入 Hyperledger 项目,其中包括 30 多家来自中国本土的企业,包括艾亿新融旗下的艾亿数融科技公司(2016.05.19)、Onchain(2016.06.22)、比邻共赢(Belink)信息技术有限公司(2016.06.22)、BitSE(2016.06.22)、布比(2016.07.27)、三一重工(2016.08.30)、万达金融(2016.09.08)、华为(2016.10.24)等。
如果说以比特币为代表的货币区块链技术为 1.0,以太坊为代表的合同区块链技术为 2.0,那么实现了完备的权限控制和安全保障的 Hyperledger 项目毫无疑问代表着 3.0 时代的到来。
IBM 贡献了数万行已有的 Open Blockchain 代码,Digital Asset 则贡献了企业和开发者相关资源,R3 贡献了新的金融交易架构,Intel 也刚贡献了跟分布式账本相关的代码。
Hyperledger 社区由技术委员会(Technical Steering Committee,TSC)指导,首任主席由来自 IBM 开源技术部 CTO 的 Chris Ferris 担任,管理组主席则由来自 Digital Asset Holdings 的 CEO Blythe Masters 担任。另外,自 2016 年 5 月起,Apache 基金会创始人 Brian Behlendorf 担任超级账本项目的首位执行董事。2016 年 12 月,中国技术工作组 正式成立,负责本土社区组织和技术引导工作。官方网站还提供了十分详细的 组织信息。
该项目的出现,实际上宣布区块链技术已经不单纯是一个开源技术了,已经正式被主流机构和市场认可;同时,Hyperledger 首次提出和实现的完备权限管理、创新的一致性算法和可拔插的框架,对于区块链相关技术和产业的发展都将产生深远的影响。

  • 主要项目

代码托管在 Gerrit 和 Github(自动从 gerrit 上同步)上

这里写图片描述

  • 目前主要包括三大账本平台项目和若干其它项目

账本平台项目:
fabric:包括 fabric 和 fabric-api、fabric-sdk-node、fabric-sdk-py 等,目标是区块链的基础核心平台,支持 pbft 等新的 consensus 机制,支持权限管理,最早由 IBM 和 DAH 发起;
sawtooth Lake:包括 arcade、core、dev-tools、validator、mktplace 等。是 Intel 主要发起和贡献的区块链平台,支持全新的基于硬件芯片的共识机制 Proof of Elapsed Time(PoET)。
Iroha:账本平台项目,主要由 Soramitsu 发起和贡献。
其它项目:
blockchain-explorer:提供 Web 操作界面,通过界面快速查看查询绑定区块链的状态(区块个数、交易历史)信息等。
目前,所有项目均处于孵化(Incubation)状态。

下面废话就不多说了,开始进入部署项目的遨游吧!


一、安装docker

  • 执行代码如下:
curl -sSL https://get.daocloud.io/docker | sh
  • 安装完成后,查看安装情况:
docker -v

这里写图片描述

  • 修改docker服务配置,
  • 服务配置的意思是 开启docker远程配置,如下:
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"
  • 重启docker服务
sudo service docker restart

二、安装docker-compose

先安装Python-pip,具体安装步奏如下:

  • 1.首先安装epel扩展源:
sudo yum -y install epel-release
  • 2.然后安装python-pip
sudo yum -y install python-pip
  • 3.安装完成后,清除以下缓存 cache
sudo yum clean all

下面开始安装Docker-compose

  • 1.安装docker-compose:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
  • 2.查看安装情况:
    这里写图片描述

配置以下docker镜像加速,目的是下载镜像速度更快:

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://860eaa91.m.daocloud.io

重启docker服务:

sudo service docker restart

三、下载镜像

 docker pull hyperledger/fabric-peer:x86_64-0.6.1-preview \  && docker pull hyperledger/fabric-membersrvc:x86_64-0.6.1-preview \  && docker pull yeasy/blockchain-explorer:latest \  && docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-peer \  && docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-baseimage \  && docker tag hyperledger/fabric-membersrvc:x86_64-0.6.1-preview hyperledger/fabric-membersrvc
  • 下载完成后,查看下载镜像

这里写图片描述

四、安装git

1.安装依赖包:

sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

2.下载Git源码并解压安装:

$ wget https://github.com/git/git/archive/v2.3.0.zip$ unzip v2.3.0.zip$ cd git-2.3.0

3.编译安装:

make prefix=/usr/local/git allsudo make prefix=/usr/local/git install

4.修改环境变量:

sudo vim /etc/profile然后在文件的最后一行,添加下面的内容,然后保存退出。export PATH=/usr/local/git/bin:$PATH

5.使用source命令立即保存:

source /etc/profile

6.查看版本

git version 

这里写图片描述

五、使用PBFT模式

PBFT 是经典的分布式一致性算法,也是 hyperledger 目前最推荐的算法,该算法至少需要 4 个节点。

  • 1.首先,下载 Compose 模板文件。
git clone https://github.com/yeasy/docker-compose-files
  • 2.查看下载情况:

这里写图片描述

  • 3.进入 hyperledger/0.6/pbft 目录,查看包括若干模板文件

这里写图片描述

  • 4.快速启动一个 4 个 PBFT 节点的集群:
docker-compose -f 4-peers.yml up

六、开始部署chaincode

  • 集群启动后,进入一个 VP 节点。以 pbft 模式为例,节点名称为 pbft_vp0_1
docker exec -it pbft_vp0_1 bash

这里写图片描述

  • 部署example02
 peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'

这里写图片描述

  • 记录到环境变量 CC_ID 中。
CC_ID="ee5b24a1f17c356dd5f6e37307922e39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3ab1812590cd0f78539"

这里写图片描述

  • 查询 chaincode
peer chaincode query -n ${CC_ID} -c '{"Function": "query", "Args": ["a"]}'

这里写图片描述

  • 调用 chaincode
peer chaincode invoke -n ${CC_ID} -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'

这里写图片描述

  • 再次查询a的值
peer chaincode query -n ${CC_ID} -c '{"Function": "query", "Args": ["a"]}'

这里写图片描述

到此已经完成超级账本的 转账的实例,每转一次,都会记录一个块。


  • 参考资料如下:
  • 超级帐本HyperLedger
  • IBM中国研究院的一个应用
    https://crl.ptopenlab.com:8800/bc/
  • HyperLedger官网
    https://www.hyperledger.org/

  • 示例的代码可在Hyperledger Fabric源码中找到
    https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go

  • 5分钟创建并玩转属于自己的区块链(图文攻略) https://my.oschina.net/u/1431433/blog/712869

  • 超级账本
    https://yeasy.gitbooks.io/blockchain_guide/content/hyperledger/
    http://hyperledger-fabric.readthedocs.io/en/latest/

0 0
原创粉丝点击