因此,打算对 BitXHub 的 meshplus/pier-client-fabric 插件源码作深入解读,学习其优秀的代码结构和功能模块,以便更好地实现自己的适配器功能。...查询应用链基本信息 适配器需要提供其所适配子链相关信息的查询接口以便于跨链网关进行查询,如名称、类型等。 源码解读 接下来将对 BitXHub 跨链插件(Fabric)的核心功能模块源码进行解读。...= nil { return shim.Error(err.Error()) } // 将输出事件消息格式化 key := broker.outMsgKey(outServicePair,...InvokeChaincode() 方法调用跨链合约,并传入参数和通道 ID,至此就完成了一次跨链数据查询链码调用。...总结 以上就是对跨链交易流程与 BitXHub 跨链插件(Fabric)源码解读,也希望在此过程中加深对跨链机制和相关平台的理解,未来能更好地参与到其开源建设中。
测试过程 这里在以最简单的sacc.go为例,该链码只涉及到简单的存储(set)和查询(get)功能。...当出现starting up ...的提示就说明链码启动成功了,在这个终端二里可以输出chaincode中的日志(比如通过fmt.Print()打印的内容)。...fabric中提供了一个MockStub类用于单元测试。 单元测试 单元测试不需要启动任何网络节点,通过我们的测试文件就可以在本地对链码中的接口进行调用测试。...总结 使用开发者 (dev) 模式进行测试: 好处是网络规模简单,可以在终端中直接看到链码打印的日志,使用cli命令行容器测试也比较方便(可以写成测试脚本映射到cli容器中自动执行)。...使用单元测试: 好处是不需要启动网络环境,一条简单的命令就可以在本地自动化执行,且可以帮助我们很规范地对接口进行完整的测试。 不足之处是目前还无法测试基于couchDB的富查询操作。
模块化的方法带来了可扩展性、灵活性等优势,会减少模块修改、升级带来的影响,能很好地利用微服务实现区块链应用系统的开发和部署。...节点可以加入到不同的通道(Channel)中,链码可以运行在不同的节点上,这样可以更好地提升并行执行的效率和吞吐量。...多链和多通道的设计容易实现数据隔离,也提供了应用程序和链码之间的安全通道,实现了隐私保护。 系统逻辑架构 下图是 Hyperledger Fabric 1.0设计的系统逻辑架构图: ?...3.链码服务 智能合约的实现依赖于安全和执行环境,确保安全的执行过程和用户数据的隔离。 Fabric采用Docker管理普通的链码,提供安全的沙箱环境和镜像文件仓库。...其好处是容易支持多种语言的链码,扩展性很好。 Docker方案的也有不足,如:对环境要求较高,占用资源较多,性能不高等,实现过程也存在与Kubernetes、Rancher等平台的兼容性问题。
在上面的代码中,只要简单地替换下crypto变量的值,就可以轻松地查询莱特币、以太币等其他数字货币的实时价格了! 本文的代码可以在这里下载。...Hyperledger Fabric NodeJS SDK,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含...Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。...Hyperledger Fabric java SDK,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric...网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
而fabric 的链码打包安装到docker时,并不会加载非go的文件,因此,实例化时找这个文件找不到就panic报错了。...由于fabric启动docker容器失败会自动删除docker容器,因此本应该能打印出来的错误被fabric给干掉了,因此出现题干的错误。...21.Error: got unexpected status: NOT_FOUND -- channel does not exist 实例化链码时报错,查询节点加入的通道peer channel...解决方案:将container IMAGE同名的那台机器剔除出区块链请求网络即可,或者使区块链请求只调用本机地的peer服务。 26....经过实践,比较推荐的做法是Invoke类型的智能合约方法,输入输出采用base64+proto,这样区块链占用的空间更小,Query类型的智能合约方法,输入输出采用json编码,这样省事且更具备可读性。
fabric中使用正则查询 一,链码中使用GetQueryResult函数 在Hyperledger Fabric的GetStateByRange函数中,键(Key)不支持直接使用正则表达式进行匹配。.../shim" "github.com/hyperledger/fabric/protos/peer" ) // 定义链码结构体 type MyChaincode struct { } //...实现链码的Invoke函数 func (cc *MyChaincode) Invoke(stub shim.ChaincodeStubInterface) peer.Response { //...查询语句使用了正则表达式来匹配以”key”开头,后跟数字的键。这样就可以实现对键的正则匹配。 然后,我们使用返回的查询结果进行处理,打印每个查询结果的键和值。...test-network是一个用于开发和测试目的的网络环境,旨在提供一个简单的Fabric网络配置,以便进行链码的开发和调试。 在test-network中,默认使用的是LevelDB作为状态数据库。
五、测试网络使用 可以执行以下命令打印脚本的帮助文本: ./network.sh -h 5.1....智能合约包含管理区块链账本上资产的业务逻辑,由成员运行的应用程序网络可以在账本上调用智能合约创建,更改和转让这些资产,应用程序还通过智能合约查询,以在分类账上读取数据。...在Fabric中,智能合约作为链码以软件包的形式部署在网络上。链码安装在组织的对等节点上,然后部署到某个通道,然后可以在该通道中用于认可交易和区块链账本交互。...在将链码部署到通道前,该频道的成员需要就链码定义达成共识,建立链码治理。何时达到要求数量的组织同意后,链码定义可以提交给通道,并且可以使用链码了。....example.com 和 peer0.org2.example.com 上安装 asset-transfer-basic 链码,如果第一次部署链码,脚本将安装链码的依赖项。
fabric网络,使用fabric-explorer插件,实现对底层网络的具体化展示和实时化查询。...http://www.cnblogs.com/studyzy/p/7451276.html 进行交易之后对a进行查询得出的结果: 图一:对a进行查询 如图刚开始生成了四个peer节点,一个orderer...然后在Org1上的peer0节点和Org2上的peer1节点实例化链码,生成两个节点。...的输出重定向到log.log文件,即输出内容不打印到屏幕上,而是输出到log.log文件中。...以及数据在哪里生成,保存到哪里,然后又被谁读取,怎么解析的,如何展示的也不是很清楚。 2.Fabric-explorer在这里更新有点延迟,往往延迟半分钟到几分钟。猜测和数据库有关。
在这个例子中使用的应用程序和智能合约(链码)统称为FabCar。这个例子很好地提供了一个开始用于理解Hyperledger Fabric。...在这里,你将学会如何开发一个应用程序和智能合约来查询和更新账本,如何利用CA来生成一个应用程序需要的用于和区块链交互的X.509证书。...从 CAR0 到 CAR999 的每一辆车 – 一共 1000 辆车,假定每个键都被合适地锚定了 – 将会作为查询结果被返回。代码中剩下的部分,通过迭代将查询结果打包成 JSON 并返回给应用。...保存并运行程序: node invoke.js 如果执行成功,你将看到类似输出: Wallet path: ...fabric-samples/fabcar/javascript/wallet 2018...总结 现在我们已经完成了账本的查询和更新,你也应该比较了解如何通过智能合约和区块链进行交互来查询账本和更新账本了。
主要用于更方便地搭建和管理区块链服务,降低项目框架部署、维护的复杂度;可以用来搭建区块链 BaaS 平台;可以通过 Dashboard 来创建和管理区块链,技术人员可以更方便地进行开发和部署;可以将 SaaS...这种机制可以很好地划分不同的业务场景,也不用担心交易信息泄漏问题。...链码 Fabric也有类似以太坊的智能合约,称为 Chaincode 链码,智能合约使外部的应用程序可以和Fabric网络中的账本进行交互。...Fabric 支持多种背书策略,Client 在提交至排序节点前会验证是否满足背书要求,值得注意的是如果只做了查询账本操作,Client 不会提交至 OSN。...对于一个链码交易来说,背书策略是在链码实例化的时候指定的,一笔有效交易必须是背书策略相关组织签名才能生效,本质上Fabric区块链中的交易验证是基于对背书节点的信任,这也是称Fabric并不是严格意义上的去中心化的原因之一
简而言之,一个Fabric的分布式应用由两部分组成: 一个智能合约,叫链码,是实现了应用逻辑的程序代码,运行在执行阶段。链码在fabric中是分布式应用的核心,可能被不受信任的开发者开发。...一个带有联盟MSP的Fabric网络以及运行了(不同阴影和颜色的)链码,根据策略有选择地安装到节点上。 背书节点模拟提案,通过安装在区块链中的特定链码执行操作。...区块链的状态被 peer transaction manager (PTM)在带有版本的键值对维护,成功地更新将单调增加版本的值(见4.4)。一个链码创建的状态不能直接被另一个链码访问。...一个客户端收集直到满足链码背书策略,交易调用(参见3.4)。特别地,这要求所有的背书者确定地生产同样的执行结果(例如,相同的读集和写集)。然后,客户端继续创建交易,发送到排序服务。...4.6 配置与系统链码 Fabric的基本行为是通过通道配置和特殊链码(称为系统链码)组成的。 渠道配置。回想一下,一个通道形成一个逻辑区块链。通道的配置保存在特殊配置块中的元数据中。
、链码调用等,适合快速上手fabric java sdk。...java sdk访问链码 这篇文章的重点在于链码的调用,因此比较详细地步骤讲解了使用fabric java sdk查询链码状态 或提交链码交易的代码,使用的是官方的fabcar链码案例。...6、使用fabric java sdk进行TLS通信 这篇文章的重点是介绍如何使用fabric java sdk访问启用了tls通信的超级账本fabric区块链 网络。...使用fabric java sdk创建和部署网络 这篇文章介绍如何使用fabric java sdk来创建并部署一个fabric区块链网络。...Hyperledger Fabric Java SDK 构建和部署区块链网络 这篇文章主要介绍如何使用Hyperledger Fabric SDK Java创建,部署和测试区块链网络,以及链码开发、部署与调用
{ text: 'hello' } 你应该学习的最后一件事是如何查询,如何从分类帐中检索数据。...Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric...网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。...Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含...Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
这就引申出一个问题,如何实现数据的快速同步?...在联盟链Hyperledger Fabric中,在Fabric v2.3版本出来之前,一个新节点加入通道(通道,Fabric的一个特性,可以理解为一个通道就是一个区块链网络,不同通道间的账本是独立的,节点可以加入多个通道...在最新的Fabric版本中,账本快照很好地解决了这个问题。 账本快照功能可以对一个节点的通道信息(包括其状态数据库)进行快照,新节点可以通过快照加入该通道。 使用账本快照具有以下优点: 1....通过快照加入通道的节点没有包含以前的区块,所以想通过这个节点查询以前的区块信息是有问题的,但可以指定其他包含完整区块的节点查询。所以同一个组织中,应该至少保留一个节点拥有完整的区块账本。 2....账本快照为联盟链生态提供了一个很好的技术实现参考,我们期待无论是公链还是联盟链,区块链都会走地更快、更好、更远。 附录: 1.
,从下图整体逻辑架构来看,Fabric 主要由3个服务模块部组成,分别是成员服务(Membership Service)、区块链服务(Blockchain Service)和链码服务(Chaincode...链码服务则提供一个智能合约的执行引擎,为 Fabric 的合约代码(智能合约)程序提供部署运行环境。...尤其是当不同的合约代码所指定的背书节点不存在交集时,系统可以同时进行多个合约代码程序的背书操作,这很好地提高了系统处理的效率。...总的来说,Fabric 在节点和网络方面的一些重构和新特性使得 Fabric 的交易处理能力有了很好的增强,而且很好地实现了隐私隔离。 ?...链码与 Peer 节点交互过程 步骤如下: 1、合约代码通过 gRPC 与 Peer 节点交互,当 Peer 节点收到请求的输入后,会通过发送一个合约代码消息对象给对应的合约代码。
本文将介绍如何在链码开发中使用fabric private data。 ?...但是官方并不孤立为了实现数据的隐私保护而在大型网络中创建大量通道,因为这会带来额外的开销,例如管理策略、链码版本以及成员服务提供(MSP)等。在一个通道中,所有的数据要么是公开的,要么是私有的。...可以简单地通过添加策略来管理fabric private data。这使得可以将某些数据仅对部分成员公开。 考虑一下Hyperledger Fabric的marbles示例。...fabric private data是如何解决上述问题的? ?...fabric private data链码最佳实践 当然,我们的数据中有一部分是Hyperledger Fabric网络中的任何人都看得到的。
Hyperledger Fabric是被广泛使用的,支持准入网络上的分布式账本解决方案。它的模块化架构最大程度地提高了区块链解决方案的机密性,弹性和灵活性。 1....性能,可伸缩性和信任级别 Hyperledger Fabric建立在模块化架构之上,该架构将事务处理分为三个阶段:分布式逻辑处理和协议(“链码”),事务排序以及事务验证和承诺。...背书者执行链码以模拟网络对等方中的提议,从而创建一个读/写集。 3)然后背书的peer节点将签名的提案响应(背书)发送回应用程序。...增加的事务需要改进的可伸缩性和性能,Hyperledger Fabric v1.X提供了此功能,部分原因是拆分了链代码执行。 拆分链码执行还可以使网络动态增长。...例如,在供应链场景中,您可以使用JSON文档样式来帮助概述商品和运输实体的特定数据。您可以轻松地生成用于资产到最终目的地的不同地点和运输实体的资产报告。
v2.0.0是2019年的主要目标,重点集中在更多的新特性上,包括增强的链码生命周期管理,raft共识机制,以此来循序渐进地迁移至拜占庭容错算法,以及更强大的token支持。...可检查的链码包:Fabric生命周期将链码以易于阅读的tar文件的形式打包。这样可以更加轻松地检查链码代码包并协调跨多个组织安装。...Using Private Data in Fabric:已经更新演示如何通过新的链码生命周期来使用隐私数据集合。...Endorsement policies:了解使用新的链码生命周期如何使用通道配置中的策略作为背书策略。 限制 Fabric v2.0 Alpha版本中链码生命周期尚未完成。...使用FabToken:这个操作指南提供了有关如何在Fabric网络上使用token的详细概述。该指南还包含有如何使用tokenCLI创建和传输token的示例。
本项目为基于Hyperledger Fabric区块链的供应链资产跟踪解决方案,项目主要包括链码和Web应用两部分。...Fabric链码采用GOLANG开发,负责维护资产的状态,后台为采用Node.js开发的Web应用,负责为用户提供访问区块链上资产的操作界面,例如资产的创建、所有权转移等操作。...如果希望快速高效地掌握超级账本Fabric区块链的开发,强烈推荐这个在线互动课程: Fabric区块链链码与应用开发详解 在本项目中要跟踪的资产是大理石,当然可以换成和你的业务相关的任何类型资产。...在Fabric区块链上,应用与链码的交互是通过与网络上的Peer节点通过gRPC协议通信完成的。 应用通信框架 整个应用的通信流程如下图所示: ?...删除资产 在web界面中也可以将资产拖拽到垃圾桶中,然后等待资产从链上消失: ? 资产查询 可以在web页面中按资产持有人或资产公司名称进行查询。
领取专属 10元无门槛券
手把手带您无忧上云