联盟链由于其本身的特性,目前应用在一些大型国有企业银行比较多.出于安全考虑,这些企业一般会隔离外网环境.所以在实际生产需求中可能存在需要在一个离线的环境中打包安装chaincode的情况. 本文基于这个需求而编写. java env 镜像源码:https://github.com/hyperledger/fabric-chaincode-java/tree/release-1.4/fabric-chaincode-docker 我使用的是java chaincode.目前fabric中的java…
前言 本文主要目的是用于整理Hyperledger  Fabric中关于chaincode 管理和操作的内容,作者以release-1.2为范本进行讲解. 主要参考链接: https://hyperledger-fabric.readthedocs.io/en/release-1.2/chaincode4noah.html 本文总计有两节: 第一节: chaincode Operator 介绍 第二节: 测试和验证 新入门的建议看一看有所了解,已经熟练也可以查缺补漏. 关键词 chaincode…
Hyperledger Fabric中的Identity 什么是Identity 区块链网络中存在如下的角色:peers, orderers, client application, administrators等等.每一个这样的角色都有一个身份标识(Identity),该身份标识是通过X.509 数字证书来表示的.这些身份标识决定了该角色的对区块链网络上资源的权限,比如是否有权限访问区块链上的某种信息. 数字身份有很多附加属性,供fabric来判断权限.数字身份给出了一个身份的组合结构,与之相…
回顾一下我之前的一篇博客,在Fabric 1.0中,我们存在3种类型的数据存储,一种是基于文件系统的区块链数据,这个跟比特币很像,比特币也是文件形式存储的.Fabric1.0中的区块链存储了Transaction订单读写集.而读写集到底是读什么?写什么?其实就是我们的State Database,也叫做World State,里面以键值对的方式存储了我们在ChainCode中操作的业务数据.另外还有就是对历史数据和区块链索引的数据库. 区块链是文件系统,这个目前不支持更改,历史数据和区块链的索引…
本文接上一节是测试部分 搭建一个模拟测试环境 作者将fabric release1.2工程中的 example-e2e进行了改造来进行本次实验: (1)首先我们将examples/e2e_cli/scripts/script.sh中的安装智能合约部分注释掉,或者从此处下载替换原有的脚本 (2)然后再写一个用于安装signcd的脚本 script_chaincode.sh ,放在examples/e2e_cli/scripts/ 目录下面 (3)启动测试网络: cd examples/e2e_cl…
fabric针对java 开发的部分支持不是很友好.基于目前较为稳定的fabric 1.4版本,我们封装了一个java sdk,apiserver,eventServer 封装java sdk的主要目的是为了简化使用者的操作,只需要正确配置了配置文件就可以快速构建 fabric client. java apiserver是为服务于业务的调用demo. java eventServer是对发出去的交易结果进行监听一个操作.配合chaincode中的event机制,监听对应peer的event.目…
channel Configuration Transaction Hyperledger Fabric区块链网络中的配置存储在一个configuration-transaction的集合中,每个channel都有一个.每个configuration-transaction通常简称为configtx. configtx 具备如下几个特点: Versioned: 配置中的每一个元素都有一个与之关联的version,配置更改时version会增加.每个确认的配置都有一个序列号. Permission…
链码(chaincode) 会对 Fabric应用程序  发送的交易做出响应,执行代码逻辑,与 账本 进行交互. 再复习下他们之间的逻辑关系: Hyperledger Fabric 中,Chaincode 默认运行在 Docker 容器中.Peer 通过调用 Docker API 来创建和启动 Chaincode 容器.Chaincode 容器启动后跟 Peer 之间创建 gRPC 连接,双方通过发送 ChaincodeMessage 来进行交互通信.Chaincode 容器利用 core.ch…
链码的开发不部分参考官网demo即可. 本文不会详细介绍开发过程 笔者启动的是一个gradle工程,也就是jar包管理使用的是gradle. chaincode 源码: /* Copyright IBM Corp., DTCC All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ package org.hyperledger.fabric.example; import com.alibaba.fastjson.JSONArra…
什么是Chaincode(智能合约)? chaincode是一个程序,它是使用Go语言编写的,最终在Java等其他编程语言中实现了指定的接口.chaincode运行在一个被背书peer进程独立出来的安全的Docker容器中.chaincode通过应用程序提交的事务初始化和管理账本状态. chaincode通常处理被网络成员认可的业务逻辑,因此它被认为是一种"智能合约".由chaincode创建的状态只作用于该chaincode,而不能通过另一个chaincode直接访问.但是,在同一个…
摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性.性能与扩展性等方面的显著提升.阿里云容器服务区块链解决方案第一时间同步升级,在v1.1新功能的基础上,提供了弹性裸金属服务器(神龙).内置容器化Explorer.集成阿里云日志服务等方面的增强. 作为全球开源区块链领域影响最为广泛的项目之一,超级账本近日宣布了Hyperledger Fabric v1.1的正式发布.此次升级带来了一系列丰富的新功能以及…
HyperLedger Fabric 学习思路分享 HyperLedger Fabric最初是由Digital Asset和IBM公司贡献的.由Linux基金会主办的一个超级账本项目,它是一个目前非常流行并广为人知的区块链网络框架的实现方案.作为一种基于模块化架构开发应用程序或解决方案的基础,HyperLedger Fabric支持如共识和会员服务等即插即用的组件,它的设计初衷是支持不同组件的可插拔实现,并适应整个经济生态系统的复杂性和高精度性.HyperLedger Fabric利用容器技术运…
文章目录 什么是Hyperledger Fabric? Hyperledger架构是怎么工作的? Hyperledger交易如何执行 总结 Hyperledger Fabric基础知识 本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架. 区块链技术为创新提供了丰富的机会.它提供了一种新的交易方式,从而可以从根本上改变业务的实现. 那么,在众多的区块链框架中,开发人员应该首先掌握哪个框架呢?IBM开发的Hyperledger Fabric肯定是…
使用CouchDB作为状态数据库 状态数据库选项 状态数据库包括LevelDB和CouchDB.LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库.与LevelDB键/值存储一样,CouchDB可以存储任何以chaincode建模的二进制数据(CouchDB附件函数在内部用于非json二进制数据).但是,当chaincode值(例如,资产)被建模为JSON数据时,作为JSON文档存储,CouchDB支持对chaincode数据进行丰富的查询. L…
使用CouchDB作为状态数据库 状态数据库选项 状态数据库包括LevelDB和CouchDB.LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库.与LevelDB键/值存储一样,CouchDB可以存储任何以chaincode建模的二进制数据(CouchDB附件函数在内部用于非json二进制数据).但是,当chaincode值(例如,资产)被建模为JSON数据时,作为JSON文档存储,CouchDB支持对chaincode数据进行丰富的查询. L…
2.1下载Fabric源码下载Fabric源码是因为要用到源码中提到的列子和工具, 工具编译需要用到go语言环境, 因此需要把源码目录放到$GOPATH下. 通过1.3中go的安装配置, $GOPATH设置为/opt/gopath.我们可以使用Git命令下载源码, 也可以使用go get命令, 偷懒一点, 我们直接用go get命令获取最新的Fabric源码:go get github.com/hyperledger/fabric这个可能等的时间比较久, 等完成后, 我们可以在~/go/src/…
今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva了,SAP成都C4C开发团队中其他同事评价她为:"美腻与智慧的化身","云时代女王","是大家前沿技术的引路人".因为Jerry和Aviva就在一个组,所以我的看法是,这些评价都实至名归. 比如Jerry了解到的Javascript 3D渲染,增强现…
Hyperledger Fabric 学习一:简介 https://www.jianshu.com/p/f971858b70f3?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 1.Hyperledger简介 Hyperledger:超级账本,是首个面向企业应用场景的分布式账本平台,包括了:IBM.Intel.Cisco.DAH.摩根大通.R3等在内的众多科…
搭建基础环境 阿里云安装出现的一些问题解决 1. [signal SIGSEGV: segmentation violation code=0x1 addr=xxx pc=xxx] 类似的错误:原始错误的代码(来自peer节点): 2020-02-09 22:43:43.665 CST [couchdb] handleRequest -> WARN 016 Retrying couchdb request in 125ms. Attempt:1 Error:Get http://couchdb:…
转载地址 https://blog.csdn.net/xiaonu123/article/details/81006936 简介 Hyperledger介绍 超级账本(Hyperledger)项目是首个面向企业应用场景的开源分布式账本平台.由linux基金会牵头,包括 IBM 等 30家初始企业成员共同成立的. Hyperledger Fabric是什么 该项目定位是面向企业的分布式账本平台,引入权限管理,设计上支持可插拔.可扩展,是首个面向联盟链场景的开源项目. Fabric 基于 Go 语言…
一.说明 区块链是一个透明的,基于不可变模式的去中心化系统,核心就是一个分布式账本,记录网络上发生的所有交易. 区块链网络主要有三种类型:公共区块链.联盟区块链,以及私有区块链:我们熟知的比特币.以太坊这些数字货币其实就是属于公共区块链平台: 而今天要介绍的 Fabric 则是属于联盟链类型的:Fabric是一个企业级的分布式账本技术平台,也是目前应用最广泛的区块链项目. 本文将梳理区块链技术平台 Fabric 的核心概念与关键功能. 二.特点 Fabric与其他区块链平台对比有以下几个特点:…
2:Fabric源码及镜像文件处理 2.1下载Fabric源码 下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下.通过1.3中go的安装配置,$GOPATH设置为/opt/gopath. 我们可以使用Git命令下载源码,也可以使用go get命令,偷懒一点,我们直接用go get命令获取最新的Fabric源码: go get github.com/hyperledger/fabric [注:使用离线环境或者内网环境的朋友…
超级账本组成模型 本文主要讲述Hyperledger Fabric的关键设计特性,并细述如何实现了一个全面的.可定制的企业级区块链解决方案: 资产定义--资产这里理解为任何具有货币价值的东西,它们都可以通过网络进行交易,无论是超市商品到古董车再到货币期货都属于资产. 智能合约--链码(chaincode)即Fabric的智能合约,分为系统链码和用户链码.链码的执行由事务排序划分,限制了节点类型间的信任和验证级别,并优化了网络的可伸缩性和性能. 账本特征--账本不可变的.共享的并且为每个通道(ch…
Membership Service Providers (MSP) 本文将介绍有关MSPs的设置和最佳实践的详细方案. Membership Service Providers (MSP)是一个旨在提供成员操作体系结构抽象的组件. 尤其是MSP抽象出发布和验证证书的所有加密机制.协议以及用户身份验证.MSP可以自定义身份概念,以及这些身份被管理的规则(身份验证)和认证加密(签名生成和验证). 一个Hyperledger Fabric区块链网络可以由一个或多个MSPs管理.这提供了成员操作的模块…
首先,我们在安装前,要考虑一个问题 Hyperledger Fabric,通过指定的节点进行背书授权,才能完成交易的存储 延伸开来,就是为了实现容错.高并发.易扩展,需要zookeeper来选择排序引擎处理记账的唯一性 我们这里选择kafka排序引擎并通过Kafka集群和zookeeper集群保证数据的一致性,实现排序功能 同时,为了排序服务器的稳定,采取多Orderer集群实现容错空间, 为此,我们采用了最基础的配置方案:两个组织,四个节点 两个CA服务器,三个Zookeeper服务器,四个K…
启动各个节点: ./orderer order节点启动方式 ./peer node start peer节点启动方式 Admin@org1.example.com 使用hyperledger fabric可以通过SDK,也可以使用peer命令. 这里直接演示peer命令的用法. 在fabric-deploy中创建目录Admin@org1.example.com,在其中存放该用户的所有资料. mkdir Admin@org1.example.com 将用户证书复制到其中: cp -rf certs…
This section outlines the key design features woven into Hyperledger Fabric that fulfill its promise of a comprehensive, yet customizable, enterprise blockchain solution: Assets - Asset definitions enable the exchange of almost anything with monetary…
本文主要介绍Hyperledger Fabric的主要设计特点,为了满足功能丰富.可定制.企业化区块链解决方案. Assets - 资产定义,使得任何形式的资产,从食物到汽车到货币都可以进行自由的交换. Chaincode - 链码的执行从交易共识中分离,将需要的可信等级和验证分担给各种类型的节点,优化了网络的可扩展性和性能. Ledger-Features - 不可更改的,共享的账本对每个通道中的所有历史进行编码,为高效的审计和解决分歧等提供了类SQL的查询能力. Privacy-throug…
Hyperledger Fabric共识算法 区块链系统是一个分布式架构,交易账本信息由各个节点管理,组成一个庞大的分布式账本.在分布式系统中,各个节点收到的交易信息的顺序可能存在差异(例如,网络延迟.主机处理性能),这会导致账本信息的状态不一致,例如,小王账户只有10元,但是他同时转账给小李和小张各10元,并且将这两条交易信息分别发送到两个分布式节点上,如果不对这两条交易进行排序校验,那么,小王实际消费了20元(所谓的双花问题).所以,在区块链系统中,我们需要一套机制,来保证交易的先后顺序,这…
前言 现在很多人都在从事区块链方面的研究,作者也一直在基于Hyperledger Fabric做一些开发工作.为了方便后来人更快的入门,本着“开源”的精神,在本文中向大家讲解一下Hyperledger Fabric账本的结构和原理.作者解析的Fabric的工程版本为v1.0.1,在新版本中可能会有些许偏差. ps:作者默认各位读者已经具备了一定的区块链基本知识,不再做一些基础知识的阐述. Hyperledger Fabric账本的结构 在作者最初了解bitcoin的时候有一个疑问:矿工如何校验一…