Hyperledger学习小结

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

Hyperledger到底是个啥

 
image

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

 
image

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,ordererfabric-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学习小结的更多相关文章

  1. pthread多线程编程的学习小结

    pthread多线程编程的学习小结  pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写     程序员必上的开发者服务平台 —— DevSt ...

  2. Git学习小结 ~ Lethe's Blog

    学习自https://www.liaoxuefeng.com/wiki/896043488029600 一.创建版本库 (1) git init 初始化一个Git仓库 (2)添加文件到Git仓库,分两 ...

  3. flex学习小结

    接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...

  4. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  5. react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

    react学习小结   本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...

  6. objective-c基础教程——学习小结

    objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...

  7. ExtJs学习笔记之学习小结LoginDemo

    ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  8. 点滴的积累---J2SE学习小结

    点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...

  9. (转) Parameter estimation for text analysis 暨LDA学习小结

    Reading Note : Parameter estimation for text analysis 暨LDA学习小结 原文:http://www.xperseverance.net/blogs ...

随机推荐

  1. 分享知识-快乐自己:Liunx 安装 Zookeeper

    Zookeeper可以安装在windows中也可以安装在linux中! 但是我们的服务器基本都是在linux之上 安装我们的 zookeeper 注册中心! 安装成功之后  修改 nat 模式对应的端 ...

  2. numpy.ndarray类型的数组元素输出时,保留小数点后4位

    因为计算结果数组中每个值都是很长的一串小数,看起来比较乱,想格式化一下输出方式. 这是个看起来很简单的问题,但是方法找了很久. 方法也是看起来很简单,用 numpy.set_printoptions( ...

  3. 【leetcode刷题笔记】ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  4. iOS NET Error Code

    see NSURLError.h Define NSURLErrorUnknown = -, NSURLErrorCancelled = -, NSURLErrorBadURL = -, NSURLE ...

  5. 使用Visual Studio进行单元测试-Shim类中无法找到参数包含CancellationTokenSource的方法

    Shim类中无法找到参数包含CancellationTokenSource的方法,这句话有点绕口,看例子. 一.代码 public class CancellationDemo { public in ...

  6. Poj 1504 Adding Reversed Numbers(用字符串反转数字)

    一.题目大意 反转两个数字并相加,所得结果崽反转.反转规则:如果数字后面有0则反转后前面不留0. 二.题解 反转操作利用new StringBuffer(s).reverse().toString() ...

  7. 1 slow requests are blocked > 32 sec解决方法

    [root@node1 ~]# ceph -s cluster: id: b8b4aa68-d825-43e9-a60a-781c92fec20e health: HEALTH_WARN Reduce ...

  8. 能否自己也写一个类叫做java.lang.String?

    这次的随笔很逗吧~没错,我们的确也可以自己在创建一个包java.lang,然后在 相应的包下面创建一个对应的类String,但是在每次jre运行的时候,我们都回去加载原来默认的java.lang.St ...

  9. CentOS 配置RDP

    XRDP服务器 CentOS安装XRDP实现远程桌面访问: 由于安装的是远程桌面,因此需要安装桌面显示服务:# yum install vnc-server 下面开始配置XRDP服务 l  配置环境: ...

  10. vs快捷键复制当前行

    vs快捷键 1)如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行.2)如果你想剪切一整行代码,只需将光标移至该行,再使用组合键“Ctrl+X”来完 ...