Fabric智能合约——Chaincode(一)简介

这篇具有很好参考价值的文章主要介绍了Fabric智能合约——Chaincode(一)简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Fabric智能合约整体介绍,首先看一下Fabric交易流程

Fabric智能合约——Chaincode(一)简介

 在这张图中,5、6步是public数据的步骤,7、8、9是private数据的步骤,除了这一部分外,其他步骤均相同。

Fabric Chaincode简介

        Fabric中智能合约称为链码(Chaincode),使用计算机语言描述合约条款、交易的条件、交易的业务逻辑等,通过调用链码实现交易的自动执行和对账本数据的操作,是应用程序与底层交互的媒介。

        链码在一个独立于Peer节点的Docker容器中执行,通过gRPC与背书节点连接,双方通过发送ChaincodeMessage来进行交互通信。

        一个Chaincode的账本是与其他Chaincode互相隔离的,不能直接访问,只有在相同网络中的Chaincode获取相应的许可后才能调用其他链码来其他账本。

        链码是与数据分离的。相较于以太坊,Fabric链码和底层账本是分开的,升级链码时并不需要迁移账本数据到新的链码当中,真正实现了逻辑与数据的分离。

        链码支持多种语言编写,包括golang、Java、node.js。

        Chaincode包括两种链码:系统链码用户链码

        系统链码用来实现系统层面的功能,包括系统的配置,用户链码的部署、升级,用户交易的签名和验证策略等。系统链码运行在节点进程中,不以单独的Docker运行,包括LSCC、CSCC、QSCC。

  • LSCC:生命周期系统Chaincode,处理生命周期相关的功能;
  • CSCC:配置系统Chaincode,处理Peer侧channel的配置;
  • QSCC:查询系统Chaincode,提供账本查询API,比如获取区块及交易等。

        用户链码用于实现用户的应用功能。开发者编写链码应用程序并将其部署到网络上,终端用户通过与网络节点交互的客户端应用程序调用链码。用户链码都必须实现Chaincode接口,链码包含:Init、Invoke。

  • Init方法会在Chaincode接收到instantiate或者upgrade交易时被调用,使Chaincode执行必要的初始化操作,包括初始化应用的状态。
  • Invoke方法接受和处理链下业务系统调用事务处理提案,其参数包含调用的链码程序中函数的名称和具体业务处理数据参数,即在Invoke中根据不同的方法参数调用其他分支处理响应的业务,可以简单理解为链码方法的入口。我们可以在Invoke方法中路由到其他业务方法中去。

 Chaincode操作

        当Chaincode开发完成或者需要升级时,需要进行Chaincode部署。Chaincode操作贯穿Chaincode的整个生命周期,包含打包(package)、安装(install)、实例化(instantiate)、更新(upgrade)、停止和启动(stop and start)。在安装并实例化成功Chaincode之后,就可以调用Chaincode中的方法与账本进行交互。

        官方并没有实现停止和启动这两个生命周期,停止操作官方建议是通过移除Chaincode容器和每个背书节点,删除安装包来停止。具体的操作就是通过docker命令删除所有主机或者虚拟机上peer节点进行于其中的Chaincode的容器,最后从每个背书节点删除掉安装包。

本文的大部分内容来自于小破站上 区块链服务网络BSN 中的 智能合约教程,并非原创,感谢!文章来源地址https://www.toymoban.com/news/detail-469219.html

到了这里,关于Fabric智能合约——Chaincode(一)简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hyperledger Fabric 使用 CouchDB 和复杂智能合约开发

    在上个实验中,我们已经实现了简单智能合约实现及客户端开发,但该实验中智能合约只有基础的增删改查功能,且其中的数据管理功能与传统 MySQL 比相差甚远。本文将在前面实验的基础上,将 Hyperledger Fabric 的默认数据库支持 LevelDB 改为 CouchDB 模式,以实现更复杂的数据检

    2023年04月15日
    浏览(37)
  • Hyperledger Fabric 智能合约开发及 fabric-sdk-go/fabric-gateway 使用示例

    在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方法(尽管这确实是重难点),而没有考虑具体的应用开发。本文将在前面实验的基础上

    2024年01月20日
    浏览(43)
  • 如果Fabric的智能合约函数陷入死循环会怎么样

    大家好,我是 powervip !今天和大家一起探讨一下:如果Fabric的智能合约函数陷入死循环会怎么样 先看一段合约函数代码: func (t *SimpleChaincode) Test(stub shim.ChaincodeStubInterface, args []string) pb.Response { // 选择商品价格在1元到100元之间的商品名称和数量 s := \\\"{\\\"fields\\\": [\\\"GoodsName\\\",

    2023年04月21日
    浏览(34)
  • 8. Fabric2.2 区块链农产品溯源系统 - 智能合约设计

    根据上小节的需求分析与方案设计来进行智能合约的设计。 智能合约设计最核心的是存储字段的设计、也就是索引设计,Fabric 常见的时间状态存储引擎是LevelDB 或 CouchDB,这两个数据库是KV存储,KV存储不像SQL类型存储,一张表创建多个字段,多个字段索引可以进行各种复查询

    2023年04月08日
    浏览(31)
  • 11. Fabric2.2 区块链农产品溯源系统 - 智能合约开发-1

    智能合约与业务逻辑关联度高,承载大量业务逻辑,本小节教大家搭建智能合约开发环境GoLand,并编写合约打包脚本。 作者在windows电脑安装ubuntu18.04版本虚拟机(vmware),Linux环境也有Goland版本,可用性丝毫不差,所有的区块链开发在Linux环境进行。 官方可以下载,要么评估

    2023年04月20日
    浏览(71)
  • 简介智能合约开发框架-Hardhat

    ​ Hardhat是一个编译、部署、测试和调试以太坊应用的开发环境。 Hardhat内置了Hardhat网络,这是一个专为开发设计的本地以太坊网络。主要功能有Solidity调试,跟踪调用堆栈、 console.log() 和交易失败时的明确错误信息提示等。 node.js python 安装 安装中如果出现这样的报错 下载

    2024年02月16日
    浏览(31)
  • fabric编写第一个合约,Java

    查看是否打包成功 org1 peer节点安装链码包 peer节点安装链码 这个过程比较慢,不要着急,此时这里显示 rror: chaincode install failed with status: 500 - error in simulation: failed to execute transaction 58d14eea40e7aa9f6f5f56c76a3e5cdca7bd9a3525d2d418459461590853926b: error sending: timeout expired while executing transacti

    2024年01月19日
    浏览(29)
  • 超级账本(Hyperledger Fabric)—Jar方式安装合约

    1.1上传jar 进入到/fabric-samples/chaincode/,目录下, 并将合约jar上传 1.2 返回到test-network所在目录, 启动测试网络 进入/fabric-samples/test-network/目录下, 启动测试网络 1.3 将bin目录中二进制文件添加到CLI路径 所需格式的链码包可以使用peer CLI创建,使用以下命令将这些二进制文件添加到

    2024年02月02日
    浏览(88)
  • Fabric学习(一)----简介与安装使用

    Fabric官方文档:https://hyperledger-fabric.readthedocs.io/en/release-2.2/ Fabric 作为当下联盟链最为火热的框架之一,是区块链技术学习人员必须掌握的技术。Fabric不同于比特币、以太坊等 无许可 的公链,它是一个 有许可 的联盟链。接下来我会在此系列中依次介绍fabric的安装、运行流程、

    2023年04月24日
    浏览(26)
  • 【智能合约】智能合约开发指南

    目录 1. 选择智能合约语言 1.1 Solidity 1.2 Vyper 1.3 Move 1.4 Rust 2. 部署和测试框架 2.1 概览 2.2 Remix 2.3 Truffle 2.4 Hardhat 2.5 其他框架 3. 前端工具 3.1 入门 3.2 Web3.js/Ethers.js 3.3 脚手架 3.4 Moralis 4. 钱包 4.1 小狐狸钱包(MetaMask) 4.2 多签钱包 4.3 冷钱包 5. 区块浏览器 6. 测试网与水龙头 7.

    2024年02月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包