如何用Python&Fabric打造区块链“淘宝”商城



640?wx_fmt=jpeg


参加2018 AI开发者大会,请点击↑↑↑



营长之前写的教程类文章,大多是与以太坊智能合约、DApp开发等有关的实战文,受读者厚爱,大多还是比较喜欢的。


最近有不少读者在后台留言,希望营长写一些关于联盟链 Hyperledger Fabric 的实战教程,恰好营长最近在研究联盟链,趁着周末,就写一写吧。


在本文中,营长会手把手带你,基于 Fabric 和 Python 语言创建一个具有交易数字资产(球星卡)功能的区块链网络。虽然像是功能不全的区块链“淘宝”,但整个开发流程,还是非常有趣的!


还等什么?来实战吧!


640?wx_fmt=jpeg

作者 | Haardik

编译 | kou、Guoxi 


你能学到什么?


通过学习本教程,你将学会创建一个具有交易数字资产(球星卡)功能的区块链网络,在这其中,拥有棒球、足球和板球球星卡的不同交易方之间能够进行互相交易。


为实现上述功能,你需要做:


  • 建立一个 REST API 服务器,以帮助执行客户端调用;

  • 编写一个 Angular 4 应用程序;

  • 调用 REST API,实现 Angular 4 与区块链网络的交互。


最终效果图是这样的...


640?wx_fmt=png

通过前后端交互,球星卡成功交易


本教程共6部分,根据自己需要,选择跳读吧,准备好了吗?开始!


  • Hyperledger Fabric 及相关应用程序简介

  • 安装依赖包、工具和 Fabric 运行环境 Fabric runtime

  • 创建和部署区块链业务网络

  • 测试区块链业务网络

  • 生成 REST API 服务器

  • 生成调用 REST API 的 Angular 应用程序



1、Hyperledger Fabric及相关应用程序简介

       640?wx_fmt=jpegHyperledger开发环境概述


Hyperledger Fabric 是一个开源的区块链框架,可以用来创建私有区块链(许可区块链)业务网络,在网络中每个成员的身份和角色都被其他成员所知。


我们要构建的区块链网络将以 Fabric 作为后端,客户端应用程序作为前端。目前软件开发工具包(SDK)支持使用 Node.js 和 Java 来构建客户端应用程序,未来很快就会支持 Python 和 Golang。


Hyperledger Composer 是一组基于 JavaScript 的工具和脚本,可简化Hyperledger Fabric 网络的创建过程。通过这些工具,我们可以生成区块链的业务网络存档(business network archive,BNA)。


Composer 包含以下3个组件:

  • 业务网络存档(BNA)

  • Composer Playground(用户界面)

  • Composer REST 服务器


业务网络存档 - Composer 允许用户打包不同的文件并生成一个存档,存档可以在 Fabric 中部署为区块链业务网络。要生成这个存档,需要以下4个文件:


  • 网络模型 - 网络中所存资源的说明。这些资源包括资产,参与者和交易。我们稍后会详细讲述它们的细节。

  • 业务逻辑 - 交易功能的逻辑。

  • 访问控制 - 定义网络中不同参与者权限的各种规则,包括但不限于定义参与者可以控制的资产。

  • 查询文件(可选的) - 可以在网络上运行的一组查询操作,我们可以简单地将其理解为 SQL 的查询功能。


Composer Playground 是一个基于 Web 的用户界面,主要用于区块链业务网络的建模和测试。Playground 使用浏览器的本地存储来模拟区块链网络,因此它非常适合简单的概念证明建模。


同时,如果用户在本地运行了 Fabric 运行环境并在其中部署了区块链网络,此时 Playground 可以用来与区块链网络进行交互。在这种情况下,Playground 并没有模拟区块链网络,而是直接与本地 Fabric 运行环境通信。


Composer REST 服务器是一个允许用户根据业务网络定义生成相应 REST API 服务器的工具。生成的 REST API 供客户端应用程序使用,帮助用户在区块链网络中整合非区块链的应用程序。



2、安装依赖包,工具和Fabric运行环境


1)安装依赖包


在深度了解了将要建立的区块链网络后,现在你可以动手开发了。但在开始编程前,请确保你的系统上已安装了所需的依赖包。


Hyperledger 官方文档中列出的依赖包有以下4个:


  • Docker Engine 和 Docker Compose

  • Node.js 和 NPM

  • Git

  • Python 2.7.x


Hyperledger 贴心地为 Ubuntu 用户提供了一个 bash 脚本,用来简化安装依赖包的过程。因而 Ubuntu 用户只需要在终端中运行以下命令:


 
 

1curl -O https://hyperledger.github.io/composer/latest/prereqs-ubuntu.sh
2chmod u+x prereqs-ubuntu.sh
3./prereqs-ubuntu.sh


而 Mac 用户必须手动安装上述工具,一定确保不落下任何一个依赖包,防止出现 bug。


2)安装工具来简化开发过程


在终端运行以下命令,并确保在运行 npm 命令时没有使用管理员权限 sudo。


 
 

1npm install -g composer-cli
2npm install -g composer-rest-server
3npm install -g composer-playground
4npm install -g yo generator-hyperledger-composer


composer-cli 是唯一必不可少的依赖包,其余的并不是核心组件,但在接下来的开发中它们非常有用。


3)安装本地 Hyperledger Fabric 运行环境


 
 

1mkdir ~/fabric-dev-servers
2cd ~/fabric-dev-servers
3curl -O https://raw.githubusercontent.com/hyperledger/composer-
4tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
5tar -xvf fabric-dev-servers.tar.gz
6export FABRIC_VERSION=hlfv12
7./downloadFabric.sh
8./startFabric.sh

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值