Hyperledger Fabric 1.3正式版新特性

Fabric在半天前发布1.3版本,参考 https://github.com/hyperledger/fabric/releases 介绍下1.3的新特性,参考 https://hyperledger-fabric.readthedocs.io/en/release-1.3/whatsnew.html 1.MSP新实现方式,使用身份混合器/Identify Mixer 通过使用零知识证明(zero-knowledge proofs), 可实现身份的匿名和不可连接。 开发环境提供了idexmigen的命令行可方便生成身份混合器的证书。 生产环境就要用Fabric CA 1.……

阅读全文

Hyperledger Fabric BaaS设计方案

1.基于Hyperledger Cello Cello的定位是为Fabric提供一个BaaS平台,使用Web UI方便的管理区块链网络,节点和链码。 理想丰满,希望兼容K8s,swarm等多容器,提供了安装网络,简单监控,安装链码,调用等基本功能,可惜bugs一堆,又得兼顾Fabric快速迭代的版本。 还有一点,以docker为例,实际Work Node使用remote docker访问模式,需要在Master的管理平台手工输入所有的worker node ip和端口,有些维护成本,相当于是master主动连接worker Node进行管理,实际运维场景下的网络和存储的扩展,隔离和兼容等很多细节可能还要考虑和解决。……

阅读全文

分布式系统一致性和共识基础(一)

1.Consistency 一致性 一致性是分布式系统需要解决的基础问题,一致性是对外呈现的一致的状态或结果,一致性为什么很重要,举个扫码支付的例子。 小明到商场想玩夹娃娃机,他爸爸扫码支付了10元,娃娃取币机正常情况下需要弹出10个币,假设取币机出了问题,没接收到支付成功的通知,没弹出币就让人抓狂了。两个系统中订单状态不一致了,支付系统认为是支付成功,娃娃取币机认为订单待支付。 1.1一致性模型 一致性的模型定义,只列出一些常见的,一起学习研究。 (1)Strict Consistency严格一致性 一个处理器的写操作要即刻被其他处理器可见,即刻的定义可能是CPU的下一个时钟周期,这个模型过于严格,在分布式系统基本是不可能达到的。 (2)Sequential Consistency 顺序一致性 比严格一致性弱些,一个对变量的写操作不用马上被其它处理器可见,但不同处理器对变量的写操作的顺序对于所有处理器可见。 简单的可以理解为逻辑时钟,从所有处理器的视角,和从自身处理器视角看写操作执行的顺序是应当一致的。……

阅读全文

Linux基金会超级记账本开发框架和工具

Linux基金会的Hyperledger超级记账本是一个开源合作的跨行业的区块链技术,包括金融,银行,物联网,工厂,科技等行业的领军者如IBM, Intel, Huawei, Baidu, Tencent, CISCO, Xiaomi等大小公司都是其组织会员。 官网有不少的区块链框架和工具,如果第一次接触不好选择,让我们快速的过一遍。 1.区块链开发框架 1.1 Hyperledger Burrow 状态 Github Star 开发语言 活跃度 文档 孵化中 520 Go 较高 一般 Burrow是初创公司monax.……

阅读全文

Hyperledger Fabric链码开发基础篇

参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/chaincode4ade.html Chaincode链码是一个程序,可处理提交的查询或更新提议,用于维护记账本的状态。我们也称链码为智能合同, 它定义了业务逻辑。链码主要开发语言是Go和Node.js,而Java也会在不久支持。 链码主要遵循Shim API接口规范。 我们主要使用Go语言示范,Node.js安装编译有些慢甚至超时, 可能是一些依赖或网络限制,参考下BYFN中官方文档的说明。 Note The instantiation of the Node.……

阅读全文

Hyperledger Fabric BYFN之配置进阶篇

1.byfn.sh up down会清理所有容器镜像,生成的配置文件和证书,现实场景应该可以停止或恢复区块链网络,该如何处理? byfn.sh down会调用networkdDown去销毁整个网络和已生成的配置。byfn.sh restart则不会清理。 # Tear down running network function networkDown() { # stop org3 containers also in addition to org1 and org2, in case we were running sample to add org3 docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH -f $COMPOSE_FILE_ORG3 down --volumes --remove-orphans # Don't remove the generated artifacts -- note, the ledgers are always removed if [ "$MODE" !……

阅读全文

Hyperledger Fabric BYFN之配置基础篇

参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/build_network.html Build your first network是Hyperledger Fabric官方最详细的例子, 目录对应 fabric-samples/first-network, 动手时间到。 1.Hyperledger Fabric启动入口 复习下Hyperledger Fabric基础的网络篇,启动一个区块链网络首先要搭建什么?如果不清楚最好看完基础篇。答案是Orderer服务。……

阅读全文

Hyperledger Fabric账本介绍

参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/ledger/ledger.html Ledger记账本是Hyperdger Fabric基础的最后一章。 记账本我们天天都在使用,银行卡,支付宝和微信支付,我们最关心的肯定是账号上的余额了(即资产的当前状态),我想看下昨天我具体花了多少钱花在哪里就需要看交易的流水明细。同理Hyperledger Fabric结构也是类似的,需要记录Asset资产的当前状态和交易的历史。 1.区块链的账本 区块链的账本包含两部分,world state(世界的状态?整体的状态?)和区块链。 首先是World state 通常使用数据库保存一组账本的当前的状态值,这样就不用遍历所有的交易日志去计算当前的状态值,通常使用key-value键值对表示,状态值可被创建,更新和删除。……

阅读全文

Hyperledger Fabric peer节点介绍

参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/peers/peers.html 先复习下区块链网络关于peer节点的内容, 每个通道有一个账本, 每个通道有若干个peer节点, 通道节点都有通道的账本的副本, peer节点可安装链码和初始化链码实例。参考下图, peer可是区块链网络的基石,包含了账本和链码,应用程序或管理员都得通过节点去管理网络的资源。 1.节点,账本和链码 通道对应账本,一个peer节点可以接入到多个通道, 所以一个节点可以有多个账本副本。 每个账本可安装0个或多个链码,实际上每个账本都有默认的一些系统链码。 2.……

阅读全文

Hyperledger Fabric会员身份MSP介绍

参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/membership/membership.html 原文篇幅较长,我们长话短说。 Membership Service Provider(MSP), 用于标记哪些CA签发的证书是可信任的,便可定义可以信任域名下的成员。简单的说MSP就是超级记账本用来配置网络,通道和各节点的成员身份的。 1.MSP和组织 一个组织可配置一个或多个MSP 2.组织单元OU和MSP 一个组织可分割为多个组织单元OU(organizational Unit), 可以认为不同的组织单元可以有不同的业务,例如组织ORG1, 有两个单元ORG1-U1和ORG1-U2, 可配置ORG1-U可以采访通道1, 但是ORG1-U2却不能。……

阅读全文