Fabric Hyperledger 2.x
文章平均质量分 88
Ddkjawed
程序员,从事的主要领域:区块链、规则引擎。在CSDN上面也会更新关于Java的一些内容,希望能与大家一起学习进步。合作邮箱:3096528128@qq.com
展开
-
Hyperledger Fabric 2.x新特性
参考资料:官方文档智能合约的去中心化治理 Fabric v2.0 引入了智能合约的去中心化治理,新的Fabric 链码生命周期支持多个组织在链码和账本交互之前协商链码的参数,例如链码背书策略。和以前的生命周期相比,新的模式有几个改进: 多个组织必须认同链码参数: 在 Fabric 1.x 版本中,一个组织可以为通道中的所有其他成员设置链码的参数(例如背书策略),这些成员只能拒绝安装链码,因此不能参与和该链码相关的交易。新的 Fabric 链码生命周期更加灵活,它既支持中心化的信任模型(如以前的生命原创 2020-05-25 21:59:38 · 1269 阅读 · 0 评论 -
Hyperledger Fabric排序服务实现
排序算法 solo kafka raftRaft (推荐) 作为 v1.4.1 的新特性,Raft 是一种基于 etcd 中 Raft 协议实现的崩溃容错(Crash Fault Tolerant,CFT)排序服务。Raft 遵循“领导者跟随者”模型,这个模型中,在每个通道上选举领导者节点,其决策被跟随者复制。Raft 排序服务会比基于 Kafka 的排序服务更容易设置和管理,它的设计允许不同的组织为分布式排序服务贡献节点。Kafka (在 v2.0 中被弃用) 和基于 Raft 的排序类似原创 2022-02-28 14:47:03 · 10487 阅读 · 0 评论 -
Fabric 上链数据大小限制
Fabric上链数据的大小与区块的最大值和区块能够写入的最大交易数是有关联的,以Fabric2.0版本为例,截取官方fabric-samples/first-network/configtx.yaml部分内容:################################################################################## SECTION: Orderer## - This section defines the values to e原创 2020-08-06 15:12:39 · 2117 阅读 · 0 评论 -
Fabric2.0 外部链码报错:undefined: shim.ChaincodeServer
问题 Fabric版本:2.0.1 构建完外部链码时,报错undefined: shim.ChaincodeServer。查阅官方文档,发现写法没有任何问题。去vendor文件夹,查看shim源码发现确实没有ChaincodeServer的定义,但是官方文档上写的2.0确实新增了接口。 由此猜测可能时依赖版本的问题。解决方案 之前依赖版本:require ( github.com/hyperledger/fabric-chaincode-go v0.0.0-2019082316252原创 2020-07-01 16:34:59 · 540 阅读 · 0 评论 -
Fabric2.0 Java链码开发实战(Maven工程)
本文主要介绍如何编写Fabric 2.0的Java链码,选用的是Maven工程(Gradle工程会有所不同)基础环境 jdk:1.8 maven:3.6.3 fabric java:2.0.1创建工程 创建maven项目,Archetype选择quickstart即可。 修改pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch原创 2020-06-30 23:14:41 · 3561 阅读 · 9 评论 -
Fabric2.0 使用开发模式(dev 模式)测试
dev模式 dev模式不是Fabric 2.0引入的,1.x版本就已存在的。对于Fabric 2.0来说,可以构建外部的链码容器,对于运维和开发调试来说,变得越来越方便。在2.0版本之前,链码是通过节点执行和维护的。开发模式在链码“编码/编译/运行/调试”的开发生命周期中很有用。本节不考虑外部链码的情形,后续会有博客去介绍外部链码。基础环境 确保已下载Fabric2.0版本镜像及二进制工具;已克隆fabric-samples。实践 fabric-samples 目录下执行:cd chain原创 2020-06-28 17:16:44 · 1878 阅读 · 6 评论 -
cannot find package github.com/hyperledger/fabric-chaincode-go/shim in any of: /usr/local/go/src/
问题 Fabric版本:2.0.1 在使用Java SDK 安装go语言链码时报错:failed to invoke backing implementation of ‘InstallChaincode’: could not build chaincode: docker build failed: docker image build failed: docker build failed: Error returned from build: 1 "/chaincode/input/src/原创 2020-06-26 15:58:03 · 8693 阅读 · 0 评论 -
Fabric2.0 新特性实践:通道成员可扩展链码
承接上文:Hyperledger Fabric 2.0新特性,Fabric2.0版本允许组织去扩展链码,也就是说通道成员之间的链码包可能会不同,这么做的好处是每个组织可以根据自身利益增加自己的业务逻辑。 为测试这一特性,本文将会对比Fabric1.4版本和Fabric2.0版本,阅读过程中注意当前版本,及时切换到不同分支。改造链码 测试网络选用:fabric-samples/first-network 链码选用:sacc 在本文中,我们基于sacc构建了另一个链码sacc-check,原创 2020-06-17 16:42:28 · 870 阅读 · 2 评论 -
Fabric 2.0 之系统链码
在Hyperledger Fabric中,链码分为两种类型:系统链码和普通链码。其中系统链码是系统内置的链码,用来完成一些系统功能等;普通链码是实现应用业务逻辑的链码。系统链码vs普通链码 系统链码和普通链码的几个不同点,如下表所示:对比项系统链码普通链码链码源码无main函数有main函数运行空间背书节点进程Docker调用方式网络+进程内部网络启动参数内置动态输入通信方式Golang的通道机制网络数据存取Golang的原创 2020-06-12 15:36:42 · 1551 阅读 · 2 评论 -
Fabric 2.0 之账本(Ledger)
Ledger 在Hyperledger Fabric里面,账本由两个不同但相关的部分组成:世界状态(world state)和区块链(blockchain)原创 2020-06-06 16:26:26 · 1488 阅读 · 0 评论 -
Fabric 2.0 之更新通道配置
前言 通道配置中包含了区块链网络的结构以及控制网络交互的信息。这些配置由通道成员共同决定,并提交到通道的账本中,可以使用configtxgen工具来构建通道配置。 由于配置包含在块中(第一个称为创世块,其最新代表通道的当前配置),因此更新通道配置的过程(例如添加通道成员或更改通道策略)称为配置更新交易。在生产环境中,通常由单个通道管理员来配置更新。 虽然应用通道和排序系统通道不完全相同,但却十分类似,具有相同的基本规则和结构,拉取和编辑的命令也是如此。因此这里我们以应用通道为例: 可以看到原创 2020-05-31 11:52:06 · 1030 阅读 · 0 评论 -
Fabric 2.0 之动态添加组织
启动环境 在开始本博客之前,请确保已安装对应版本的二进制工具、镜像以及clone fabric-samplescd fabric-samples/test-network 如果之前启动过test-network下的network.sh脚本,执行以下命令清除之前的环境。./network.sh down 使用脚本启动测试网络(默认通道mychannel):./network.sh up createChannel 如果命令无误,shell窗口最后会打印:========= Chan原创 2020-05-29 23:16:24 · 1375 阅读 · 5 评论 -
Fabric 2.0 之链码升级
Fabric2.0版本基础环境搭建参考:Fabric hyperledger 2.0 first-network 手动部署执行升级步骤重新打包链码(升级链码文件情形)重新安装链码(升级链码文件情形)组织同意新的链码定义:(1) 升级链码文件:需要更新链码定义中的链码版本和package ID(2)仅仅更新背书策略:无需执行1,2无论哪种情况,每次升级sequence都需要加1提交链码定义:当足够数量的通道成员批准了新的链码定义时,一个组织可以提交新定义以将链码定义升级到通道。 作为生命周期原创 2020-05-28 22:23:05 · 2453 阅读 · 3 评论 -
fabric java sdk启用tls
环境搭建Fabric SDK测试网络搭建(v1.x)Fabric2.0 SDK测试网络搭建原创 2020-05-24 22:26:53 · 620 阅读 · 0 评论 -
Fabric Hyperledger(2.0 )之隐私数据(Private data)
前言 自Fabric1.2版本提出了隐私数据,后续版本官方不断进行完善,此篇文章主要针对fabric2.0版本介绍隐私数据。 1.4.x版本:Fabric Hyperledger之隐私数据(Private data)隐私数据交易过程 客户端提交提案: 客户端提交提案给背书节点(隐私集合授权的组织节点)注:私有数据通过proposal中的transient字段发送给背书节点 模拟交易执行: 背书节点模拟交易执行,过程中会将隐私数据存储在transient data store(Peer节点的原创 2020-05-20 23:37:17 · 1703 阅读 · 0 评论 -
Fabric hyperledger 2.0 first-network 手动部署执行
前期准备 操作系统:CentOS 7 Fabric版本: 2.0.1软件/依赖版本go1.14.xgit最新版本curl最新版本docker17.06.2-ce及以上版本docker-compose1.14及以上 下载fabric-samples源码:下载地址证书,创世块生成 执行目录: $GOPATH/src/github.com/hyperledger/fabric-samples/first-network 手工生原创 2020-05-16 23:19:16 · 1036 阅读 · 0 评论 -
Error: failed to create deliver client for orderer: orderer client failed to connect to orderer
操作系统:CentOS 7Fabric版本: 2.0.1问题:创建通道peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/ord原创 2020-05-11 17:19:59 · 8078 阅读 · 3 评论 -
Fabric2.0 SDK测试网络搭建
前期准备 操作系统:CentOS 7 Fabric版本: 2.x(1.x版本参考Fabric SDK测试网络搭建(v1.x))软件/依赖版本go1.14.xgit最新版本curl最新版本docker17.06.2-ce及以上版本docker-compose1.14及以上 下载fabric-samples源码:下载地址git cl...原创 2020-05-08 17:12:18 · 760 阅读 · 0 评论