【转载】Hyperledger学习小结
Hyperledger学习小结
自学Hyperledger Composer也有段时间了,是时候对所学的知识总结一下了。因为没有实际项目参与的话,差不多也就到此为止了。后续可能会去了解一下以太坊的技术实践。所以在这之前,有必要对之前掌握的内容做一下小结,整理下整个Hyperledger的重要的知识点,以便以后重拾的时候可以快速上手。
Hyperledger到底是个啥

Hyperledger是一个由Linux基金会发起的区块链解决方案项目,包含了多个子项目。通常大家提到的Hyperledger主要指的是其中的Fabric子项目。

Hyperledger目前包含以下几个子项目:
框架类项目:
- Sawtooth 为超级账本提供数字记录(如资产所有权)的功能
- Iroha 提供基于区块链的平台实现
- Fabric 提供区块链底层的基础设施(如超级块,区块,CA,PKI等等),目前由IBM主导开发
- Burrow 提供兼容以太坊智能合约的功能(EVM兼容性),目前还在孵化中
- Indy 为超级账本提供分布式账本的功能,目前还在孵化中
工具类项目:
- Caliper 区块链的压测工具,目前还在孵化中
- Cello 区块链的运维工具,简化部署操作,目前还在孵化中
- Composer 区块链的开发和构建工具,目前还在孵化中
- Explorer 区块链的可视化层,目前还在孵化中
- Quilt 提供了跨账本,跨区块链与非区块链的支付协议
虽然大部分项目并未正式release,还处于孵化中,但是已经表现出相当高的活跃性,并且有诸多大厂商参与。Hyperledger公布的成员列表: https://www.hyperledger.org/members 。 可以看到在国内参与的厂商也非常多,比如百度是超级账本项目的主要成员,阿里是一般成员等等。
总之这个项目目前表现出非常高的活跃度和关注度,未来还需要时间的沉淀与积累,相信能有突飞猛进的发展,拭目以待。
Fabric小结
之前的主要精力都花在了整个超级账本最核心的项目——Fabric上,对这个项目做一个小结。这个项目可以说是目前整个Hyperledger中最核心最活跃的项目了,需要先搞清楚这个项目是怎么回事,再去看其他的项目。
Fabric的目标
搭建联盟链/私有链,提供底层的基础设施。Fabric使用Go语言编写,本身提供Go, Node.js, JAVA(未来)的SDK。整个项目分为服务性的程序(持续后台运行提供服务以及相关接口)peer,orderer和fabric-ca,以及工具类的程序(一次性运行,产生必要的服务配置文件等等)cryptogen,configtxlator,configtxgen等等。
Fabric提供区块链基础运行环境,以及chaincode的运行功能。
Fabric的运行环境
理论上使用Go编写,跨平台,支持所有操作系统。但是实际上根据周边配套设施的选型,推荐Linux环境。因为其他相关的周边项目几乎都不支持Windows环境,所以Windows第一个被pass。再考虑到目前Fabric的运行方案几乎都是Docker,所以Linux成为首选平台。当然开发环境下用Mac OS也是可以的。
Fabric的授权策略
PKI+ACL。只要配置过SSL双向认证的用户对这玩意应该都不陌生,本质上是类似的,用户使用私钥表明自己的身份,公钥进行签证以授权访问。Fabric通过ACL对不同的组织,不同的用户进行授权。
Fabric的进阶学习方式
学习Fabric的路线图大致如下: Fabric --> Composer --> Other
首先大体熟悉一下Fabric的官方文档就可以了,目前稳定版本是1.0,开发版本是1.1,新手建议直接看1.1的文档,如果是为了上产品环境可以考虑看稳定版本1.0的。至于0.6版本的文档不用看了,那个版本只能用来做POC。
开发文档可以暂时跳过。Fabric的开发文档目前很不完善,你几乎看了还是不知道怎么去开发一个Fabric应用,至于部署文档几乎压根没有,这个只能等官方逐步完善文档。
之后可以看看Composer的文档,这个文档对开发比较友好,有一些范例,以及ACL运作方式等等,对于运维人员需要再熟悉一下Cello。
整个Hyperledger高度模块化,所以每个项目其实提供的功能都很有限,并不像以太坊那样一个项目工程包罗万象,需要根据实际商业需求引入对应的模块,比如做账本,可以考虑引入Indy,而不用自己从头开发。
最后,这个思维导图很不错,可以帮助理清区块链的思路: https://www.jianshu.com/p/a10052a5bbd4
作者:冯宇Ops
链接:https://www.jianshu.com/p/8294e7f441d1
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
【转载】Hyperledger学习小结的更多相关文章
- pthread多线程编程的学习小结
pthread多线程编程的学习小结 pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写 程序员必上的开发者服务平台 —— DevSt ...
- Git学习小结 ~ Lethe's Blog
学习自https://www.liaoxuefeng.com/wiki/896043488029600 一.创建版本库 (1) git init 初始化一个Git仓库 (2)添加文件到Git仓库,分两 ...
- flex学习小结
接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)
react学习小结 本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...
- objective-c基础教程——学习小结
objective-c基础教程——学习小结 提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...
- ExtJs学习笔记之学习小结LoginDemo
ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- 点滴的积累---J2SE学习小结
点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...
- (转) Parameter estimation for text analysis 暨LDA学习小结
Reading Note : Parameter estimation for text analysis 暨LDA学习小结 原文:http://www.xperseverance.net/blogs ...
随机推荐
- 分享知识-快乐自己:关于 String 小案例
单个字符出现的次数: /*** * 验证是否符合拆分条件 * * @param text * 原字符串 * @param sub * 判断条件 * @return */ public static i ...
- Java企业微信开发_Exception_01_"errcode":60011,"errmsg":"no privilege to access/modify contact/party/agent "
微信企业号增加成员时,返回错误信息: jsonObject:{"errcode":60011,"errmsg":"no privilege to ac ...
- javascript笔记(一)
使用function关键字来定义函数,分为两种形式: 声明式函数定义: function add(m,n) { alert(m+n); } 这种方式等同于构造一个Function类的实例的方式: va ...
- php实现多文件上传和下载。
http://1229363.blog.163.com/blog/static/19743427200751291055264/
- bzoj 3307: 雨天的尾巴 线段树合并
题目大意: N个点,形成一个树状结构.有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品.问完成所有发放后,每个点存放最多的是哪种物品. 题解: 首先我们为每一个节 ...
- properties使用
properties可以load store 注释可以采用 "#" 或者"!" 分隔采用"="或者":" 分行采用&qu ...
- 手动导入XMPPFramework框架
环境: Xcode 8.2.1 XMPPFramework 3.6.5 (下载地址) Objective-C (项目使用的语言,最新版的3.7.0要求convert to swift) 1.下载XMP ...
- 编写dockerfile
参考:http://www.cnblogs.com/liuyansheng/p/6098470.html 一.dockerfile介绍: 是一种被Docker程序解释的脚本,Dockerfile由一条 ...
- HDOJ1015(简单深搜)
Safecracker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- nginx的安装及基本配置
在CentOS7(mini)上安装: [root@~ localhost]#lftp 172.16.0.1 lftp 172.16.0.1:/pub/Sources/7.x86_64/nginx> ...