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. WCF寄宿(Host)之自我寄宿(Self-Hosting)简单实例【Windows应用程序宿主】

     前言: 以各种应用程序做自我寄宿的宿主原理方法大同小异,故:这儿直接上案例! 步骤一:创建服务契约和服务 1.新建解决方案:添加WCF服务库项目. 2.为了演示,我把自动生成的接口以及实现接口的类删 ...

  2. QListWidget列表控件:当鼠标选中某行时,系统会自动设置选中的行的行号,用currentRow()返回回来,没有setCheck或setSelect类似函数

    列表控件的设计思路: 只有QListWidgetItem自己能改变自己的状态(如checked,selected,颜色等)状态,QListWidget是无法改变其项的状态的. 列表控件是被动接受子项的 ...

  3. OpenCV——颜色均匀渐变

    参考来源: 利用OpenCV生成关于某点的颜色径向均匀渐变图像 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_A ...

  4. 动态调试smali代码学习记录

    预备知识 DDMS Dalvik Debug Monitor Serivce,Dalvik调试监控服务,为Android SDK提供的一款拥有监控Dalvik虚拟机的调试软件,启动文件位于<An ...

  5. rsync 端口更换(默认873)

    一般使用默认端口的话, 在服务端的启动命令为: /usr/bin/rsync --address=192.168.1.23 --daemon 如果在客户端需要换另外的端口侦听, 则使用 /usr/bi ...

  6. JVM插码之三:javaagent介绍及javassist介绍

    本文介绍一下,当下比较基础但是使用场景却很多的一种技术,稍微偏底层点,就是字节码插庄技术了...,如果之前大家熟悉了asm,cglib以及javassit等技术,那么下面说的就很简单了...,因为下面 ...

  7. JVM类加载(2)—连接

    2.连接 连接就是将已经加载到内存中的类的二进制数据合并到Java虚拟机的运行时环境中去,加载阶段尚未完成,连接阶段可能已经开始.连接阶段包含验证.准备.解析过程. 2.1.验证 验证.class文件 ...

  8. paramiko使用1

  9. SpringMVC 利用@ResponseBody注解返回Json时,出现406 not acceptable 错误的解决方法。

    1 在RequestMapping中加入produces属性如: @RequestMap(value="/path",produces="application/json ...

  10. Android精品源码分享第四波袭来,免费下载!

    今天又汇总了几个优质的源码分享出来给大家!希望可以帮到需要的朋友~1.Android实现-带动画的饼图控件 分享的是Android技术相关的源码内容,希望对大家的Android学习有帮助.带动画的饼图 ...