《HyperLedger Fabric 开发实战》实践笔记

《HyperLedger Fabric 开发实战》这本书是一本实践指导书籍,由浅入深,全部动手实践完成后,对 fabric 的基础操作就比较熟悉了。

我在实践笔记中没有涉及概念的讲解,所以需要对 fabric 有了大概了解后再参考本笔记进行实践操作,同时需要对 GO 语言有基本的了解,fabric 的智能合约是使用 GO 语言开发,但比较简单,对 GO 的熟练程度要求不高。

fabric 涉及的主要内容包括:

  • 环境安装
  • fabric 部署
  • 智能合约 chaincode 的开发、安装、命令行调用、通过 sdk 对外提供访问,使外部程序能够调用智能合约

本笔记内容概要:

(1)基本环境安装

docker、docker-compose、go 环境安装。

(2)Fabric 环境部署

主要是安装 fabric 源码和镜像。

(3)End-2-End 案例

End-2-End 是官方的入门示例,相当于经典的 helloworld,跑通这个示例有2个重要意义:

  1. 运行时有大量的日志输出,我们可以看到fabric都做了什么,使我们对 fabric 的运行有个全局的认识
  2. 这个示例运行起来之后,就说明 fabric 的基础环境没有问题了,利于之后的部署实践

(4)单机部署

目标:完成一个最小化部署流程,自己动手一步步的在一台服务器上部署orderer节点、peer节点,orderer采用单节点模式,peer部署多个节点,然后安装一个智能合约示例,并测试智能合约,测试通过即说明部署成功。

(5)多机部署

目标:在多台服务器上部署orderer节点、peer节点,然后安装一个智能合约示例,并测试。

与上一章的区别就是使用了多台服务器,更接近真实环境。

(6)Kafka集群模式部署

目标:完成orderer多节点模式部署,并使用kafka集群提供队列服务,这是实际产品环境中采用的方式。

重点在于orderer节点的部署,peer和智能合约的操作与上一章相同,至此,fabric 的部署流程就比较熟练了。

(7)智能合约开发

目标:熟悉chaincode 的开发流程。

fabric提供了开发模式,通过 chaincode-docker-devmode 可以快速启动一个测试网络,不必自己搭建fabric环境,方便的编译测试 chaincode 代码。

(9)Java-SDK 客户端

目标:使用 Java-SDK 对接 chaincode,对外提供访问接口。

智能合约chaincode部署到链上后,可以通过命令行调用,需要对外提供访问时,就要开发对外的接口,外部程序通过这个接口来调用chaincode。

(10)项目演练

目标:开发一个chaincode 示例,巩固chaincode的开发方法和流程。

下载地址:

https://pan.baidu.com/s/1Xi6HNF50KA8HDtDrUg9xKw

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2018-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

从APM角度上看:NoSQL和关系数据库并无不同

Michael Kopp拥有十年以上C++、Java/JEE的架构及开发经验,现Compuware技术策略师,专攻大规模产品部署的架构和性能。 以下为译文: 传...

25080
来自专栏FreeBuf

Google Play商店漏洞:黑客可远程在你的安卓手机上安装恶意APP

安全研究人员发现Google Play商店中两个严重安全漏洞,可以允许攻击者远程在用户的安卓设备上安装并下载恶意APP(应用)。 Metasploit框架的技术...

20170
来自专栏木子昭的博客

用HEXO在Github建立个人博客

在sublime打开新建的~/zhaoolee-blog/source/_posts/在Github创建个人专属名片.md, 并加入内容 ...

11520
来自专栏小樱的经验随笔

CTFCrackTools在Windows下显示A Java Exception has occurred的解决方案

打CTF做密码学的人一定少不了用这个工具,CTFCrackTools,这个几乎可以号称密码学的神器,但是呢,最近博主遇到了一些麻烦事,每次打开的时候都是显示A ...

38660
来自专栏有趣的django

Flask构建微电影(一) 第一章、项目介绍第二章、环境搭建

27500
来自专栏互联网杂技

什么是微服务

在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微 狭义来讲就是体积小、著名的"2 p...

20210
来自专栏安恒信息

邮箱服务安全专题 | 邮箱安全网络和主机漏洞扫描先行

上一篇文章我们介绍了邮箱发现的工具、手段和方法,从今天开始我们会逐步介绍保障邮箱安全的服务方式,大家可以根据文章描述的层面和角度自行管理,当然,由于整体工程的复...

389150
来自专栏lulianqi

为什么需要多线程

对于这个问题可能很多朋友会说是为了高性能,个人觉得这是误解,多线程不等于高性能,从cpu(单核)的角度上看单线程才能带来最高性能。

18720
来自专栏服务端技术杂谈

海量日志数据存储用 elasticsearch 和 hbase 哪个?

首先看两者的简单介绍: ElasticSearch:是一个基于Lucene的搜索引擎; HBase:是一个开源的,非关系的,分布式的数据模型存储引擎; 两个框...

54250
来自专栏ImportSource

NoSQL-Relaxing Durability-放宽“持久性”约束

作者简介: ? 有的小伙伴对于放宽“持久性”不屑一顾——他们认为如果数据库丢失了更新操作的能力那还叫数据库吗?然而。。。。。 5.4. Relaxing Dur...

36980

扫码关注云+社区

领取腾讯云代金券