1. 概念

基于区块链的应用,一般都由部署在区块链上的智能合约以及调用这些智能合约的业务程序组成,智能合约又称为链码(Chaincode),是一段运行在容器中的程序。

  • Chaincode 是客户端程序和区块链网络之间沟通的桥梁,通过Chaincode客户端程序可以发起交易,查询交易。
  • Chaincode 在 Fabric 节点上的 Docker 容器中运行
  • 通过 gRPC 协议来与各个节点通信。
  • 用来修改记录在链上的状态,状态一般记录着与业务相关的数据,通过调用智能合约,应用程序可以发起和记录交易,从而实现复杂的业务逻辑。

1.1 Chaincode包含两部分

  • Chaincode 代码
    业务的承载体,负责具体的业务逻辑
  • Chaincode 管理命令
    负责 Chaincode的部署,安装,维护等工作

2. 链码的多个阶段

Chaincode管理命令可以对Chaincode进行安装、实例化、调用、打包和签名操作,对应命令为install、instantiate、invoke、package、upgrade。

Chaincode的运行分为:install,instantiate和invoke三步

  • transaction用于停止与开启chaincode,而不用去卸载chaincode。
  • chaincode在成功install以及instantiate之后,chaincode则是运行状态,能够通过invoke transaction来处理交易。
  • 后续也能够对chaincode进行升级

3. 业务流程

  • 用户
    关注与业务逻辑相关的应用程序。
  • CA 机构
    根据标准 PKI 规范生成权限证书的机构,生成账号和颁发证书。
  • 智能合约

4. 框架流程

step1:. 客户端(App)使用 SDK 和区块链网络进行交互,客户端首先从 CA 机构获取证书加入通道。
step2. 将交易提案提交给 Endorser 节点进行背书;背书节点完成背书操作后回复App
step3. App获得一定量的 Endorser 支持后,生成交易请求,发送给 Orderer
step3. Orderer 节点进行排序操作,构造区块之后将交易区块发送至 Committer 节点
step4. commit监听网络事件,执行合法交易并将交易信息记录到账本中。

  • Committer 节点
    在网络中维护区块链网络和账本数据;
  • Orderer 节点
    用于对交易请求排序,并将排序后的交易组合生成区块结构;

Hyperledger Fabric 链码(0) 说明相关推荐

  1. HyperLedger Fabric链码开发及测试

    HyperLedger Fabric链码开发及测试 1.链码开发 先设计一个简单的应用场景,假设有这样的业务需求: 可以添加学校,信息包括学校名称.学校ID: 添加该学校的学生,信息包括姓名,用户ID ...

  2. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用

    Hyperledger Fabric 1.0 从零开始(十)--智能合约(参阅:Hyperledger Fabric Chaincode for Operators--实操智能合约) Hyperled ...

  3. 搭建区块链浏览器——基于hyperledger fabric 1.0,MySQL容器

    搭建区块链浏览器--基于hyperledger fabric 1.0,MySQL容器 区块链 hyperledger fabric 浏览器 MySQL docker  Contents 环境要求 分支 ...

  4. Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(上)

    Hyperledger Fabric 2.0 官方文档中文版第6章 教程上 总目录 6.教程(上) 将智能合约部署到通道 启动网络 Logspout设置 打包智能合约 安装链码包 批准链码定义 将链码 ...

  5. 3.Hyperledger Fabric v2.0 CA组件

    Hyperledger Fabric v2.0 CA组件 目的: 通过CA服务生成msp证书和tls证书,并启动fabric网络 由于使用CA生成证书时,需要注册为各个组织生成证书,为了便于理解,所以 ...

  6. Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(下)

    Hyperledger Fabric 2.0 官方文档中文版 第6章 教程下 总目录 6.教程(下) 使用CouchDB 为什么使用CouchDB? 在Hyperledger Fabric中启用Cou ...

  7. Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念

    Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念 总目录 3.关键概念 引言 什么是区块链? 区块链为什么有用? 什么是Hyperledger Fabric? Hyper ...

  8. Hyperledger Fabric 2.0 官方文档中文版 第5章 开发应用程序

    Hyperledger Fabric 2.0 官方文档中文版 第5章 开发应用程序 总目录 5.开发应用程序 情景 PaperNet网络 介绍参与者 分析 商业票据生命周期 交易 账本 过程和数据设计 ...

  9. Hyperledger Fabric V1.0– 开发者快速入门

    Hyperledger Fabric V1.0– 开发者快速入门 本文档演示使用Hyperledger Fabric V1.0来部署一个开发者环境并运行一个简单例子.文档包括创建和加入通道(账本).客 ...

  10. Hyperledger Fabric 2.0 官方文档中文版 第1章 引言

    Hyperledger Fabric 2.0 官方文档中文版 第1章 引言 总目录 1.引言 Hyperledger Fabric 模块化 许可区块链与无许可区块链 智能合约 新途径 隐私和保密 可插 ...

最新文章

  1. PowerDesigner的一下简单使用技巧
  2. 混合云如何落地?光环有云携手AWS一触即发
  3. 转:AOP 的利器:ASM 3.0 介绍
  4. ESLint 在中大型团队的应用实践
  5. Pivotal冯雷:以数字化为核心竞争力的时代 自主可控是企业的“必然选择”
  6. YOLOv3 提升 5.91 mAP,IoU在目标检测中的正确打开方式
  7. labelImg重新开启工具箱(栏)
  8. C#实现图(Graph)
  9. 没想到熬夜看了场重播!iPhone 11系列正式发布:连价格都被猜到了
  10. React学习(8)—— 高阶应用:不使用ES6、JSX实现React
  11. python装饰器 @ time模块示例(七分钟读懂)
  12. [OpenGL] glColor 和 glClearColor 区别
  13. 4、elasticsearch安装head插件
  14. 安装oh-my-zsh+、插件zsh-syntax-highlighting、zsh-autosuggestions、zsh-autosuggestions、autojump修改配置
  15. 拿php做个日历,分享如何用PHP制作日历(附代码)
  16. 小型微型计算机小错误,如何查看IBM小型机系统的错误记录
  17. 老男孩上海校区Python面试题
  18. python统计分析书籍_Python数据分析入门书籍推荐
  19. jetson的学习资料总结
  20. lua入门之环境搭建、第一个demo

热门文章

  1. java中使用json以及所导入的包
  2. 数据中心大火波及360万网站,或因UPS故障,3月10日晚法国斯特拉斯堡
  3. 机房为什么要设计冷热通道,设计原则及如何施工?
  4. CV:基于人工智能算法实现人脸口罩的实时检测(结合无人机可,实现实时警告提醒)
  5. AI公开课:19.04.10颜水成—360副总裁《人工智能:观察与实践》课堂笔记以及个人感悟—191017再次更新
  6. ML之MaL: 流形学习MaL的概念认知、算法分类、案例应用、代码实现之详细攻略
  7. Py之wxPython:利用wxPython设计CMD软件窗口进行交互可视化
  8. HDFS的读文件、写文件过程
  9. warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失...
  10. CCF-201509-3-模板生成系统