Hyperledger Fabric 超级账本的硬伤 Netkiller Blockchain 手札 本文作者最近在找工作,有意向致电 13113668890 Mr....这个问题限制了超级账本的很多场景应用,这是超级账本的硬伤。...学习过多线程的朋友一定很清楚出了什么问题。...很多场景需要更新区块中的数据,如果频繁操作,就会产生覆盖,目前Hyperledger Fabirc 并没有提供解决方案。 1....我的应用场景是实现代币功能,需要从总账号给注册用户转账,操作频繁。
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作。...而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂。...二、账本 要了解Fabric对事务的处理,首先我们需要了解Fabric中的账本,也就是实际存储和查询数据的地方。...三、事务提交过程 了解了Fabric中的账本,接下来我们来了解一下对这些账本的操作涉及到的Transaction。...五、小结 通过对这个Transaction过程的分析,我们可以得出以下结论: Fabric不支持对同一个数据的并发事务处理,也就是说,如果我们同时运行了a->b 10元,b->a 10元,那么只会第一条
Fabric 1.3中的新增的idemixer(Identity Mixer)以前不大懂zero-knowledge proof(零知识证明),原本觉得PKI基础的MSP是比较常用和稳健的方式,新加个验证方式是不是有点增加复杂性...如果使用Fabric的idemixer 2.1 测试开发环境使用idemixgen命令行 具体参看https://hyperledger-fabric.readthedocs.io/en/latest/...具体调用的go链码 package main import ( "fmt" "log" "os" "strconv" "strings" "github.com/hyperledger/fabric-chaincode-go.../pkg/cid" "github.com/hyperledger/fabric-chaincode-go/shim" pb "github.com/hyperledger/fabric-protos-go...But got: %v", args[0])) } 2.3 idemixer的限制 还不大完善,基本现阶段还是推荐用传统的MSP方式,具体参考https://hyperledger-fabric.readthedocs.io
Hyperledger Fabric Node.js开发中如何使用日志?本教程就来演示下如何使用hyperledgefabric node.js客户端日志记录功能。...概述 hyperledger fabric node.js客户端日志记录使用node.js winston 开发包。当node.js应用程序首次加载hyperledger结构包时,日志记录被初始化。...如何更改日志记录 HyperledgeFabric客户端的日志记录由配置设置hfc-logging和环境设置HFC_LOGGING控制。...export HFC_LOGGING='{"debug":"/temp/debug.log","info":"console"}' 使用应用程序中的日志记录 当需要记录应用程序代码中的条目以及HyperledgeFabric...这里是Hyperledger Fabric Node.js开发中如何使用日志
Hyperledger Ledger从1.2升到1.3之后,同事反馈同样的脚本,创建通道或加入通道,部分人没问题,部分人一直有问题。...docker images查询了下hyperledger/fabric-couchdb版本都是latest....具体使用docker inspect hyperledger/fabric-couchdb 才查询到实际版本为 ".base.version": "amd64-0.4.14", 这个是当前最新的版本,查看...实际上hyperledger fabric-couchdb 0.4.14镜像使用的couchdb版本为2.2.0比较新了。...而hyperledger fabric-coudb 0.4.13镜像使用的couchdb为2.1.1。应该是版本变化有些大。
Hyperledger Fabric 2.5和2.4新特性 一,2.5新特性: Hyperledger Fabric v2.5中的新增功能 1.清除私有数据的历史记录 虽然一直以来都可以从当前状态中删除私人数据...有用的清除私人数据的需求,隐私的原因或遵守政府法规。 从状态和对等体的私有数据历史记录中删除私有数据,这样就不能再从块事件或其他对等体中查询这些数据。...二,2.4新特性: Hyperledger Fabric v2.4 中的新增功能 1.结构网关 结构网关是在对等节点上运行的一项新服务,用于管理客户端应用程序的事务提交和处理,具有以下优点: 简化客户端应用程序和...更高级的应用程序可以利用网关的单个背书、提交和提交状态服务进行事务提交,并利用评估服务进行查询。 您可以将事务背书完全委托给网关,或者如果需要,指定背书组织,网关将使用每个组织的对等方。...所有通道资源都将从对等方中删除,并且对等方将不再处理来自通道的块。 有关更多详细信息,请参阅对等节点取消加入命令参考主题。
这就引申出一个问题,如何实现数据的快速同步? ...在联盟链Hyperledger Fabric中,在Fabric v2.3版本出来之前,一个新节点加入通道(通道,Fabric的一个特性,可以理解为一个通道就是一个区块链网络,不同通道间的账本是独立的,节点可以加入多个通道...账本快照可以实现节点间数据的快速同步,但也有一些局限性: 通过快照加入通道的节点没有包含以前的区块,所以想通过这个节点查询以前的区块信息是有问题的,但可以指定其他包含完整区块的节点查询。...数据同步是区块链中非常常见的场景,所以实现数据的快速同步也将是区块链的必备能力之一。Hyperledger Fabric作为最具代表的联盟链引擎,一直在不断更新迭代,功能也越来越完善。...附录: Fabric官方学习文档:https://hyperledger-fabric.readthedocs.io/en/latest/whatis.html Fabric私有数据:https://hyperledger-fabric.readthedocs.io
接下来介绍如何使用它。...二、Hyperledger Fabric Samples github地址:https://github.com/hyperledger/fabric-samples 您可以使用Fabric示例开始使用...Hyperledger结构,探索重要的结构功能,并学习如何使用Fabric SDK构建与区块链网络交互的应用程序。...CST [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200 查询刚刚新增的车辆...Hyperledger Fabric 2.0的fabcar实践至此结束 本文参考链接: https://blog.csdn.net/bean_business/article/details/108015490
Hyperledger fabric v1.4.0 于2019年1月9日更新【更新说明】,主推稳定性和线上生产,因此推荐大家使用这个版本学习或者应用开发。...(推荐一个手动部署的文章,可兼容1.4 链接) 三、fabric-sdk 这个“坑”本人踩了一个星期。...chaincode部署完成之后,用fabric-sdk-go来调用链码中的函数,报了个错误在网上一直没找到相应的解决办法,期间使用了fabic1.1.1、1.3.1、1.4.0,sdk也换了几个版本没有解决...[github] 上的fabric-sdk-go版本最新的只有v1.0.0,还是alpha4,简直“深坑”!...相比较之下,fabric-sdk-node 一直在更新稳定版本,所以本人最后决定用node版本的sdk进行应用的开发。
一、我的环境: 图片.png 我使用的是Hyperledger fabric1.4.4版本 参照官方文档:https://hyperledger-fabric.readthedocs.io/en/release...-1.4/write_first_app.html 二、实验前准备 如果此前运行了其他的fabric测试程序,在试验前首先关闭其他的容器和网络 docker rm -f $(docker ps -aq)...图片.png ---- 三、实验过程 进入~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar/目录 图片.png...运行node invoke.js node invoke.js 图片.png 再次运行node query.js,发现查询的结果多了一辆车 node query.js 图片.png ---- 三、关闭容器和网络...凡事参考相应版本的官方文档最有效,各种各样的博客五花八门,文章质量参差不齐,容易误导。
什么是Hyperledger Fabric 为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块链框架,称为Hyperledger Fabric™,这是由LinuxFoundation...性能,可伸缩性和信任级别 Hyperledger Fabric建立在模块化架构之上,该架构将事务处理分为三个阶段:分布式逻辑处理和协议(“链码”),事务排序以及事务验证和承诺。...这种分离具有多个优点:跨节点类型所需的信任和验证级别更少,并且网络可伸缩性和性能得到了优化。 为了说明这一点,让我们看一下Hyperledger Fabric v1.0中的事务流,如下图所示。 ?...增加的事务需要改进的可伸缩性和性能,Hyperledger Fabric v1.X提供了此功能,部分原因是拆分了链代码执行。 拆分链码执行还可以使网络动态增长。...默认情况下,LevelDB键值数据库支持键查询,复合键查询和键范围查询。如果您还需要复杂的丰富查询,则可以使用CouchDB,它支持LevelDB的基本功能,并添加完整的数据复杂查询。
通常情况下,外部观察者可以查询,但是不可交易,联盟链是指其共识过程受到预选节点控制的区块链;区块链或许允许每个人都可读取,区块的Root Hash及其API(应用程式接口)对外公开,API可允许外界用来作有限次数的查询和获取区块链状态的资讯...它是一个基础设施,通常采用Hyperledger进行联盟或私有链开发的相关项目,都是无币的、产业级的应用。 HyperLedger Fabric是什么?...共享帐本 HyperLedger Fabric底下有分出两大子系统,包括:世界状态(world state)和事务日志(transaction log)。...在大多数情况下,Chaincode只与总帐的数据库组件交互,例如世界状态(查询它),而不会与事务日志互动。...HyperLedger Fabric支持需要将隐私(使用信道)作为关键操作需求的网络,同时也是相对开放的网络。 共识 事务必须按照它们发生的顺序写在帐本上,即使它们可能是网络中不同的参与者生成的。
Hyperledger Fabric基础知识 本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。 区块链技术为创新提供了丰富的机会。...IBM开发的Hyperledger Fabric肯定是最佳选择,尤其在今天这个公链应用不明朗的情况下,使用Fabric开发联盟链应该是最常见也最实用的框架了。...本文概述了什么是Hyperledger Fabric,如何使用它来构建解决方案以及如何在Hyperledger Fabric中执行事务。 什么是Hyperledger Fabric?...Hyperledger交易如何执行 Hyperledger Fabric网络中事务的请求流如下所示: 客户端使用Node.js或Java™SDK连接到Hyperledger Fabric网络。...所有peers都提交并应用相同的事务序列并更新其状态。 总结 Hyperledger Fabric是一个区块链框架实现。
按区块查询 在Hyperledger Fabric中,要按区块进行查询,可以使用GetBlockByNumber函数来检索指定区块的详细信息。...返回值: *common.Block:表示查询到的区块数据。 error:如果查询发生错误,则返回错误信息。...示例用法: // 导入所需的包 import ( "github.com/hyperledger/fabric/core/chaincode/shim" "github.com/hyperledger.../fabric/protos/peer" "github.com/hyperledger/fabric/protos/common" "github.com/golang/protobuf...最后,我们将查询结果作为成功的响应返回。 请注意,此示例是一个简化版本,并未包含完整的链码实现和必要的错误处理。在实际开发中,应该根据具体需求进行适当的修改和错误处理。
我想展示如何将公共区块链(如ARK.io)的功能与私有区块链(如Hyperledger)结合起来。...特别是,我们将看到ARK.io上的交易如何触发在Hyperledger Fabric + Burrow中部署的Solidity Smart Contract的执行。...安装Hyperledger Fabric 删除以前的Hyperledger Docker镜像(如果有): docker kill $(docker ps -q) docker rm $(docker ps...,你可以在evmcc中查询合约的运行时字节码: root@3e4b9a88b2b6:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode...确保fab代理正在Hyperledger实例上运行,它正在侦听端口5000: ? 通过桌面钱包提交Ark交易: ? 观察Ark replay日志中的输出以及新应用的交易的详细信息: ?
背书节点是动态的角色,是与具体链码绑定的。每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。...图2-1所示的Peer节点还有一种角色是主节点(Leader Peer),代表的是和排序服务节点通信的节点,负责从排序服务节点处获取最新的区块并在组织内部同步。...排序服务提供的是原子广播(Atomic Broadcast),保证同一个链上的节点接收到相同的消息,并且有相同的逻辑顺序。...现在是通过Kafka/ Zookeeper实现的CFT,未来将提供基于 etcd/Raft 的Raft共识订购服务以及完全分散的BFT订购服务 ##CA节点 CA节点是Hyperledger Fabric1.0...参考资料 《深度探索区块链:Hyperledger Fabric技术与应用》 Pluggable Consensus
一、引言 HyperLedger Fabric作为一个架构灵活的企业级区块链平台,正在被越来越多的企业用于生产环境。...之前我分享过一篇文章《HyperLedger Fabric在携程区块链服务平台的应用实战》介绍了一些携程对于HyperLedger Fabric的落地经验,并重点分享了Fabric框架在代码结构灵活性上的一些认识和在...那我们现在来看一下当一个orderer节点启动后,将会经过怎样的步骤,如何实现对交易的排序。...使用Tendermint在区块链领域中的成功案例包括Hyperledger Burrow、cosmos等著名项目 。...即完成一个完整的交易共识并记账。 这里,有一个比较容易产生疑问的问题,我们知道fabric是多通道的账本结构,而tendermint是单通道账本,如何做到兼容两边?
2)Peer节点之间如何数据传输处理,与cli和peer之间的方式有何不同? 3)数据何时进入orderer节点,orderer节点是如何处理的?...2、新旧架构的比较 旧版本(0.6)的运行时架构: 新版本(1.0)的运行时架构: 3、fabric1.0记账的逻辑分析 Fabric账本逻辑架构 Fabric 1.0中的账本分为3种: 区块链数据...--cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/.../gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com...Fabric不支持对同一个数据的并发事务处理,也就是说,如果我们同时运行了a->b 10元,b->a 10元,那么只会第一条Transaction成功,而第二条失败。
完成本教程后,你将了解如何使用VSCode在本地Hyperledger Fabric网络上快速开发,演示和部署区块链应用程序。本教程假设你对Hyperledger Fabric有一些基本的了解。...创建一个新的JavaScript智能合约。 打包智能合约。 创建,探索和了解Hyperledger Fabric网络。 在本地Hyperledger Fabric实例上部署智能合约。...7.导出连接详细信息 image.png 此时,你需要开始与Fabric实例进行更密切的交互。你需要向证书颁发机构证明你可以在网络上创建数字身份。...{ text: 'hello' } 你应该学习的最后一件事是如何查询,如何从分类帐中检索数据。...Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric
这就引申出一个问题,如何实现数据的快速同步?...在联盟链Hyperledger Fabric中,在Fabric v2.3版本出来之前,一个新节点加入通道(通道,Fabric的一个特性,可以理解为一个通道就是一个区块链网络,不同通道间的账本是独立的,节点可以加入多个通道...账本快照可以实现节点间数据的快速同步,但也有一些局限性: 1. 通过快照加入通道的节点没有包含以前的区块,所以想通过这个节点查询以前的区块信息是有问题的,但可以指定其他包含完整区块的节点查询。...账本快照是一个比较耗资源的操作,在节点执行快照时,节点将不会在该通道上提交块,同时,在处理其他事务或在其他通道上提交块时速度可能会很慢。因此,一般在必要的时候才执行快照操作,比如新节点想加入通道。...数据同步是区块链中非常常见的场景,所以实现数据的快速同步也将是区块链的必备能力之一。Hyperledger Fabric作为最具代表的联盟链引擎,一直在不断更新迭代,功能也越来越完善。
领取专属 10元无门槛券
手把手带您无忧上云