Hyperledger Fabric V1.0 跳坑玩耍

标签: 区块链 | 发表时间:2017-03-18 17:12 | 作者:cookedsteak
出处:https://segmentfault.com/blogs

       最近有个项目需要用到超级账本的概念,随后在网上查阅相关的信息。最后相中了 Fabric作为实验玩耍的目标。要玩就要玩最新的啦,所以舍弃了v0.6的版本,但是截至这篇文章摸出来,v1.0还处于alpha阶段。以下环境的搭建步骤很大一部分来自于 hyperledger-fabric.readthedocs.io,英语好的同学也可以直接看那边的教程。
(需要吐槽一下关于文章标签,因为我的声望不够所以不能编辑创建Hyperledger这个标签)

起跑

你要准备的

你最好

  1. 知道 GO的基本目录结构,和环境变量的设置

  2. 了解docker和docker-compose,以及一些基本操作

  3. 有翻墙条件

搭建

获取镜像

创建一个你需要放置源码的目录
$ mkdir -p <yourplayground>/hackfest
cd <yourplayground>/hackfest

下载必要的脚本,包含了Docker compose脚本、通道脚本、一些身份认证(原谅我不知道怎么翻译crypto material for identity attestation)等...
$ curl -L https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sfhackfest/sfhackfest.tar.gz -o sfhackfest.tar.gz 2> /dev/null; tar -xvf sfhackfest.tar.gz
解压完毕后可能会报一条tar的小错误,没有关系

查看你的目录结构,正常的应该如下:
图片描述
使用docker-compose,拉取fabric-peer, fabric-orderer, fabric-ca和cli
docker-compose的定义文件就是docker-compose-gettingstarted.yml
$ docker-compose -f docker-compose-gettingstarted.yml build

完成build操作后就可以启动容器了:
$ docker-compose -f docker-compose-gettingstarted.yml up -d

在这个执行过程中会使用 channel_test.sh脚本,创建、加入通道,点击 这里看下 channel_test.sh到底做了什么事情。

验证环境

利用 $ docker ps查看容器是否已经成功启动
正常的应该有6个容器正在运行,包含3个peer节点,一个orderer,一个CA和一个cli

我们进入cli容器中查看一下各个节点加入通道的情况
$ docker exec -it cli bash
命令行变成了
$ /opt/gopath/src/github.com/hyperledger/fabric/peer #
输入查看命令
$ more result.txt
得到结果

  SUCCESSFUL CHANNEL CREATION
SUCCESSFUL JOIN CHANNEL on PEER0
SUCCESSFUL JOIN CHANNEL on PEER1
SUCCESSFUL JOIN CHANNEL on PEER2

再看下 channel_test.sh脚本所创建的创世区块
$ more myc1.block
能够看到一长串创世区块的信息,那就对了
图片描述

获取SDK

在Fabric v1.0中,调用接口的方法有两种:CLI和SDK,因为Fabric中使用的全是grpc的通讯方式,所以利用SDK能更方便锻造我们自己的客户端,并与后端的区块链network进行通讯。
官方采用的方法是直接cUrl fabric-sdk-node项目中的examples,然后执行npm install安装依赖。
$ curl -OOOOOO https://raw.githubusercontent.com/hyperledger/fabric-sdk-node/v1.0-alpha/examples/balance-transfer/{config.json,deploy.js,helper.js,invoke.js,query.js,package.json}

下载完毕后执行
$ npm install
过程中可能会有报错,原因是文件夹的读写权限,解决方法--提权

设置GOPATH到我们的hackfest下
$ GOPATH=$PWD$ GOPATH='<path>/<to>/<your>/<hackfest>'
可以用 $ go env查看 GOPATH是否正确设置

至此,我们需要的环境和代码都搭建完成。

用SDK耍耍

注册并部署

执行deploy脚本注册并部署chaincode
$ node deploy
如果执行过程中出现 extension_binary/grpc_node.node的文件不错在错误,说明npm install没有成功,请重复上上步的 npm install

执行成功后返回一坨如下
图片描述
chaincode部署成功啦,并且我们初始化了一个模拟场景:
a 拥有 100 软妹币
b 拥有 200 软妹币

测试chaincode

软妹币的转移操作
执行 $ node invoke.js
a 的100软妹币转移给 b

查询结果

查询转移后的结果
执行 $ node query
得到结果会包含三条:

  [2017-03-18 15:47:06.676] [INFO] QUERY - ############### Query results after the move on PEER0, User "b" now has  "200"

说明我们的转移成功啦

到这里我们便完成了一个超级账本的模拟环境,并测试成功。
未完待续,下一版:+编写自己的chaincode

相关 [hyperledger fabric v1] 推荐:

Hyperledger Fabric V1.0 跳坑玩耍

- - SegmentFault 最新的文章
       最近有个项目需要用到超级账本的概念,随后在网上查阅相关的信息. 最后相中了 Fabric作为实验玩耍的目标. 要玩就要玩最新的啦,所以舍弃了v0.6的版本,但是截至这篇文章摸出来,v1.0还处于alpha阶段. 以下环境的搭建步骤很大一部分来自于 hyperledger-fabric.readthedocs.io,英语好的同学也可以直接看那边的教程.

Hyperledger Fabric 核心概念

- - 陶陶技术博客
区块链是一个透明的,基于不可变模式的去中心化系统,核心就是一个分布式账本,记录网络上发生的所有交易. 区块链网络主要有三种类型:公共区块链、联盟区块链,以及私有区块链;我们熟知的比特币、以太坊这些数字货币其实就是属于公共区块链平台;. 而今天要介绍的 Fabric 则是属于联盟链类型的;Fabric是一个企业级的分布式账本技术平台,也是目前应用最广泛的区块链项目.

Hyperledger Fabric 2.x 环境搭建

- - 陶陶技术博客
区块链网络的核心是分布式账本,在这个账本中记录了网络中发生的所有交易信息. Hyperledger Fabric是一个是开源的,企业级的,带权限的分布式账本解决方案的平台. Hyperledger Fabric由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性. Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用,并能适应在经济生态系统中错综复杂的各种场景.

Hyperledger Fabric V1.0 环境搭建 - 个人文章 - SegmentFault

- -
学习区块链技术有段时间了,刚好晚上有空把超级账本子项目fabric v1.0部署运行及开发环境的搭建过程整理下,编写的内容主要参照官方文档. 由于fabric项目目前还处于孵化阶段,正式版本预计5月份才会到来. 近期官方示例和文档也频繁更新中,本文内容主要基于源码中 “examples” 和 “devenv” 来完成fabric入门示例的快速部署运行和统一开发环境的搭建.

Hyperledger Fabric 1.0,基于区块链的分布式账本

- - 开源中国社区最新新闻
由 Linux 基金会发起创建的开源区块链分布式账本 —— Hyperledger Fabric,已经迎来了 1.0 版本. 该项目着重于性能和可靠性,以及推动区块链和分布式账本技术的跨行业协作. Hyperledger Fabric 可用于全球供应链管理、金融交易、资产账和去中心化的社交网络等场景,但无意以此来构建一种加密货币.

[原]区块链开源实现hyperledger fabric架构详解

- - 陶辉的专栏
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量. 本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程. 本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长.

Fabric批量远程执行操作

- - CSDN博客推荐文章
最近有个需求就是要在一个集群的多个机器上运行一些命令,比如启动、停止服务,运行一些脚本收集一些数据等,于是找到了python的一个框架Fabric. Fabric是一个Python库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的主要功能包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入、中止执行等.

配置 fabric 穿越跳板机

- - 膘叔
在转这篇文章的时候,我觉得 很懒,所以我几乎没有排版就直接ctrl+c,ctrl+v就过来了. 下面是正文,链接来源是:https://mozillazg.com/2013/12/python-fabric-gateway.html. 说实话,跳板机给研发的日常工作添加了些许麻烦. 幸好 fabric 提供了穿越跳板机的功能,使跳板机不再影响我们的工作.

Nikon 1 初代降临,来个 J1 及 V1 动手玩(影片)

- han - Engadget 中国版
经过一个下午的等待,我们终于有机会玩到 Nikon 两部全新的 EVIL 相机 - J1 及 V1. 官方宣布香港将与美国同步,于 10 月 20 日发售,但没有公布售价及有关详情. (参考美国的价格,J1 + 10-30mm 镜头套装售价为 US$649.95,约 4150 元人民币 ;而 V1 相同的镜头套装售价则是 US$899.95,约 5750 元人民币).

步步高 vivo 智能机 V1 首张定妆照公布

- starry heavens - Engadget 中国版
终于看到真容了,步步高的智能手机 V1 定妆照亮相,这款机子以女性为主打对象,一些界面设计我们已经提前看到,可惜这次官方图依然没有公布具体的规格配置,从效果图可以看到后置了 500 万像素摄像头,带 LED 补光灯,后底部是一个 SRS 音效标识. 而第一款新品 V1 的工程机将在今天(9 月 26 日) 2011 北京国际通信展上亮相.