首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《HyperLedger Fabric 开发实战》实践笔记

实践笔记没有涉及概念的讲解,所以需要对 fabric 有了大概了解后再参考本笔记进行实践操作,同时需要对 GO 语言有基本的了解,fabric智能合约使用 GO 语言开发,但比较简单,对 GO...fabric 涉及的主要内容包括: 环境安装 fabric 部署 智能合约 chaincode 的开发、安装、命令行调用、通过 sdk 对外提供访问,使外部程序能够调用智能合约 本笔记内容概要: (1)...(5)多机部署 目标:多台服务器上部署orderer节点、peer节点,然后安装一个智能合约示例,并测试。 与上一章的区别就是使用了多台服务器,更接近真实环境。...重点在于orderer节点的部署,peer和智能合约的操作与上一章相同,至此,fabric 的部署流程就比较熟练了。 (7)智能合约开发 目标:熟悉chaincode 的开发流程。...智能合约chaincode部署到链上后,可以通过命令行调用,需要对外提供访问时,就要开发对外的接口,外部程序通过这个接口来调用chaincode

1.8K20

聪明人已经把它用到了业务

智能合约管理:即 Chaincode智能合约是多方对特定交易类型达成一致的业务逻辑,对于相应参与者来说,Chaincode 的实现都是公开的,且能部署参与者的 Endorse 节点上。...虽然往帐本里记时不会调用智能合约,但会有一些额外的检查(如查看交易 ID 是否重复等)。因为签名原因,所以 Client 不能偷改交易 ID。 所有节点把新交易更新到自己一方的账本。...4 如何使用智能合约技术进行区块链开发? 智能合约属于多方针对某交易达成一致的业务处理逻辑,即达成一致的链码(Chaincode)。...要实现智能合约,只需集成 Fabric 的一个接口,实现 Init 和 Invoke 两个函数即可,而 Fabric Chaincode 通过 gRPC 与 Peer 节点交互。...但针对复杂的业务场景,则可以通过多个 Chaincode 之间调用来实现,进而模块化复杂的智能合约,并且 Chaincode 间的调用不会产生非预期的交易记录和非预期的 Block,而是产生一个综合的帐本

762100
您找到你想要的搜索结果了吗?
是的
没有找到

Hyperledger Fabric 系统架构详解

是一个可视化区块链的操作工具,可以用于创建对用户友好的 Web 应用程序;是首个Hyperledger的区块链浏览器,用户可以查看/调用/部署/查询交易、网络、智能合约、存储等信息。...总的来说,Fabric通过模块化、可插拔的架构来支持企业的复杂业务场景,通过身份验证(绑定现实身份)来弱化节点作恶,使用通道机制大大提升了系统的安全性和隐私保护。...链码 Fabric也有类似以太坊的智能合约,称为 Chaincode 链码,智能合约使外部的应用程序可以Fabric网络的账本进行交互。...开发者主要负责开发应用和智能合约(链码),应用通过 SDK 与智能合约进行交互,而智能合约的逻辑可以对账本进行get、put、delete等操作。...Fabric 支持多种背书策略,Client 提交至排序节点前会验证是否满足背书要求,值得注意的是如果只做了查询账本操作,Client 不会提交至 OSN。

1.7K10

区块链开源实现hyperledger fabric架构详解

智能合约是运行在区块链上的模块化、可重用的自动执行脚本,有了它我们就可以完成复杂的业务逻辑,例如同一个区块链上有多份合约,而每份合约可以约定不同的参与者(企业或者相关方)。...也可以指定每份合约里每个子命令做一批特定的事,大家可以把它想象成关系数据库里的事务。如图4所示,我们可以合约里指定允许哪些企业的节点可以参与到交易流程来(fabric里这叫共识策略)。 ?...图4-智能合约图示 fabric智能合约叫做chaincode,它有6个状态,如下所示: Install → Instantiate → invocable → Upgrade → Deinstantiate...图12-fabric开发模块图 我们的开发流程主要包括写智能合约,以及通过SDK调用智能合约,及订阅各类事件,如图13所示。 ?...该消息根据chaincode的背书策略,发向EP1、EP2、EP3这三个peer节点。 这三个peer节点模拟执行智能合约,并将结果及其各自的CA证书签名发还client。

3K50

fabric区块链(三)—发布智能合约

Fabric上发布智能合约: TODO 编写智能合约代码 您需要使用支持的编程语言(如Go、Java、JavaScript等)编写智能合约代码。...您可以使用Hyperledger Fabric提供的示例智能合约作为参考,了解智能合约的结构和编写方式。示例智能合约可在Hyperledger Fabric的官方文档中找到。...打包智能合约代码 发布智能合约之前,需要将智能合约代码打包为一个可执行文件。要打包代码,需要使用peer lifecycle chaincode package命令。...安装智能合约 要安装智能合约,您需要使用peer lifecycle chaincode install命令。...将智能合约提交到通道 在审批智能合约之后,您需要将其提交到通道。要将智能合约提交到通道,您需要使用peer lifecycle chaincode commit命令。

81430

Hyperledger Fabric 2.x 自定义智能合约

一、说明 为了持续地进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制;智能合约Fabric 称之为 链码,是区块链应用的业务逻辑。...本文分享如何使用 Java 语言开发智能合约,以及合约的安装与使用。...节点 - 创建好 mychannel 通道 2、环境变量配置好执行命令(bin)、配置(config)与MSP文件夹的路径:执行 vim /etc/profile 添加以下内容: export...--lang java --label mycc 六、安装合约 指定 peer 节点上安装链码,下面分别为两个机构安装。...合约提交检查 检查合约的审批情况,是否可以向通道进行提交: peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name

91420

“Hyperledger Fabric 是假区块链!”

区块链是否可以不大幅度降低性能的前提下加入其他的参与者(节点),从而实现可拓展性? 那些目光长远的企业还会考虑到被选择的区块链将来能否可以轻松地与其他公有区块链或私有区块链进行互操作?...: 一笔交易预提案被提交后,由背书节点( endorsing peer )通过智能合约语言 chaincode 执行它的逻辑,同时它会查询状态数据库并生成要使用到的读写集( REset ),之后它还会连同生成的读写集返回交易预提案的回应...注:从理论上讲,Hyperledger Fabric 可以使用真正意义上的区块链共识,但这样做区块链会变得很慢,而在生产环境慢是致命的,因此没有人会在生产环境中使用它。 为什么说智能合约很重要?...Hyperledger Fabric智能合约(称为链码“Chaincode”)可以用多种编程语言编写,其中包括常见的 Javascript 语言以及 Go 语言。...因此我们认为智能合约语言必须专为区块链设计且为安全性做出了优化。在理想的情况下,智能合约语言也应该易于学习,并能便捷地区块链环境中使用

1.9K20

fabric区块链(六)—解析basic智能合约(go)

---title: fabric区块链(六)—解析basic智能合约(go)date: 2023/5/21 10:28tags: fabric区块链categories: 区块链---解析basic智能合约...(go):图片basic合约是我们之前调用示例合约的时候调用的合约,之前分析过java语言编写的,再分析一下go语言编写的。...fabric官方提供了源码,fabric/scripts/fabric-samples/asset-transfer-basic/chaincode-go目录先分析一下这个目录结构chaincode-go...它使用chaincode.SmartContract{}作为智能合约的实现。if err != nil { ... }: 这是一个错误处理的条件语句,用于检查链码实例的创建过程是否发生了错误。...它使用了Hyperledger Fabric提供的链码API和自定义的智能合约实现。如果创建或启动过程中出现错误,程序将输出相应的错误日志并终止运行。

55310

区块链技术面试常被问到的Hyberledger Fabric关键概念

Chaincode(链码/智能合约) - Chaincode分区执行,根据交易顺序、所需信任级别的限制、验证跨节点类型、优化网络规模和性能 Ledger Features (账本) - 不可更改、共享帐本记录了每个...这样分工同样降低了授权和认证的处理需求;所有peer节点不需要信任全部 ordering 节点,反之亦然,因此处理能被独立与对方认可外运行 Chaincode functionality 链码/智能合约功能...Modular design 模块化设计 Hyperledger Fabric实现了模块化设计,网络设计者能根据需求选择功能。比如特定的识别、共识、加密算法可以插入任何 fabric网络。...资产(和资产注册)Fabric作为键值对的集合存在,channel帐本带状态变更记录作为交易。Fabric允许任何资产采用二进制或JSON格式表示。...为了更进一步的隔离数据,chaincode内的值可以附到账本前使用通用的加密算法,如SHA-256,来加密(部分或全部)。

1.7K10

Fabric基础架构原理(4):链码 | 赠书活动

部署后的智能合约在区块链无法修改,智能合约的执行完全由代码决定,不受人为因素的干扰。...一般来说,参与方通过智能合约规定各自权利和义务、触发合约的条件以及结果,一旦该智能合约在区块链环境运行就可以得出客观、准确的结果。... Fabric 智能合约也称为链码(chaincode),分为用户链码和系统链码,通常指的是用户链码。链码是访问账本的基本方法,一般是用Go等高级语言编写的、实现规定接口的代码。...链码的背书策略 链码实例化时可指定背书策略,当确认节点接收到交易时,节点获知相关链码信息,然后检查该链码的背书策略,判断交易是否满足背书策略,若满足则标注交易为合法。...Fabric网络,使用官方提供的例子可以快速构建测试网络,从而简化链码的开发流程。

50730

Hyperledger Fabric 2.x 环境搭建

创建Channel 现在我们的机器上正在运行对等节点和排序节点, 我们可以使用脚本创建用于Org1和Org2之间进行交易的Fabric通道。...通道启动一个链码 创建通道后,可以开始使用智能合约与通道账本交互。...智能合约包含管理区块链账本上资产的业务逻辑,由成员运行的应用程序网络可以账本上调用智能合约创建,更改和转让这些资产,应用程序还通过智能合约查询,以分类账上读取数据。...Fabric智能合约作为链码以软件包的形式部署在网络上。链码安装在组织的对等节点上,然后部署到某个通道,然后可以该通道中用于认可交易和区块链账本交互。...与网络交互 启用测试网络后,可以使用 peer cli 客户端与网络进行交互,通过 peer cli 客户端可以调用已部署的智能合约,更新通道,或安装和部署新的智能合约

1.6K10

fabric区块链(六)—解析basic智能合约(go)

解析basic智能合约(go): basic合约是我们之前调用示例合约的时候调用的合约,之前分析过java语言编写的,再分析一下go语言编写的。...fabric官方提供了源码,fabric/scripts/fabric-samples/asset-transfer-basic/chaincode-go目录 先分析一下这个目录结构 chaincode-go...├── chaincode (包含与区块链智能合约相关的文件。) │ ├── mocks (包含一些用于测试目的的模拟文件或桩文件。)...它使用chaincode.SmartContract{}作为智能合约的实现。 if err != nil { ... }: 这是一个错误处理的条件语句,用于检查链码实例的创建过程是否发生了错误。...它使用了Hyperledger Fabric提供的链码API和自定义的智能合约实现。如果创建或启动过程中出现错误,程序将输出相应的错误日志并终止运行。

68030

私有区块链Hyperledger Fabric和公共区块链ARK.io如何通过solidity智能合约结合

/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem 部署智能合约 我们将使用一个简单存储合约:https://solidity.readthedocs.io.... result: status:200 payload:"7ec1f20fced5ed8d47f94cdab140644a28a85441" 要验证你的合约是否已成功部署,你可以evmcc查询合约的运行时字节码...使用Web3 设置Fab代理 我们已经我们的.profile定义了这些: export FABPROXY_CONFIG=$GOPATH/src/github.com/hyperledger/fabric-chaincode-evm...我们通过web3和fab代理调用我们的智能合约: ? 通过ARK.io桌面钱包触发智能合约 确保安装了ark-hyperledger-plugin并且relay正在运行。...观察Ark replay日志的输出以及新应用的交易的详细信息: ? 打开节点控制台并检查Smart Contract是否选择了新值: ?

1.3K20

Hyperledger Fabric2.x fabcar查询、插入和更改拥有者实践

二、Hyperledger Fabric Samples github地址:https://github.com/hyperledger/fabric-samples 您可以使用Fabric示例开始使用.../goproxy.cn,direct go mod init go mod vendor 执行完毕后,当前文件夹下多出vendor,这个就是放智能合约依赖包的文件夹 与网络互动 网络启动之后,可以使用peer...cli客户端去操作网络,可以通过cli客户端去调用部署智能合约,更新通道,或者安装和部署新的智能合约。...,所以ip地址是127.0.0.1 打包智能合约 cd /opt/fabric-samples-master/chaincode/fabcar/go peer lifecycle chaincode package...那么可以提交智能合约 export org1_CertFiles=/opt/fabric-2.2.1/scripts/fabric-samples/test-network/organizations

1.4K20

Java Chaincode学习交易系统Hyperledger Fabric帐户钱包模型

此外,世界状态存储在数据库以表示超级账本,使得这些节点不需要总是搜索超级账本以进行数据检索,并且可以更快地从数据库检索数据(状态)。...第5步——BYFN运行Chaincode 5.1 安装相关项目 我们本教程中使用Hyperledger Fabric v1.4。...、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。...php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。...C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括帐户管理、状态与交易、智能合约开发与交互、过滤器和交易等。

2K20

链课堂01 | 解密超级账本-Fabric运行机制

Chaincode(链码)源自智能合约的思想,并进行了进一步扩展,支持Java、Go等高级编程语言。运行时靠容器和状态机实现处理逻辑。...区块链网络里,节点chaincode会发送events来触发一些监听动作,方便与其他外部系统的集成。 03 多通道 ?...05 共识机制 0.6版本,Fabric支持PBFT(实用拜占庭容错算法)共识算法,1.0及以后版本不再支持。...2、Fabric是准入型网络,对PBFT这种共识算法要求不高。 Fabric 1.0版本共识过程包括背书、排序、和验证三个环节的保障。 ➤背书 Chaincode实例化的时候,需要指定背书策略。...交易合法与否都会上链,交易状态位体现是否是合法交易,不合法交易不会改变World State。

1.3K20

Hyperledger Fabric基础知识

它提供了一种新的交易方式,从而可以从根本上改变业务的实现。 那么,众多的区块链框架,开发人员应该首先掌握哪个框架呢?...Hyperledger Fabric智能合约称为chaincodeChaincode是定义资产和相关交易的软件;换句话说,它包含系统的业务逻辑。...当应用程序需要与共享账本交互时,将调用Chaincode。链码可以用Golang或Node.js编写。 Peer nodes。Peer是网络的基本元素,因为它们托管共享账本和智能合约。...Hyperledger Fabric网络,所有的节点必须要有认证过的身份才能进行交易。...总结 Hyperledger Fabric是一个区块链框架实现。你可以很轻松的使用Hyperledger来构建一个私人或联盟网络,并为其编写智能合约

2K10
领券