zoukankan      html  css  js  c++  java
  • Hyperledger Fabric Chaincode解析

    首先看下Blockchain结构,除了header指向下一个block的hash value外,block是由一组transaction构成, Transactions --> Blocks --> Ledger

    1. Chaincode是生成transacton的唯一方式,是外界与区块链系统交互的唯一渠道,开发Fabric区块链应用就是编写Chaincode, Chaincode就是业务逻辑实现

    2. Fabric预先定义了Chaincode接口,Chaincode实际上是一种接口的实现(理论上编程语言都可以去实现这些接口,目前支持go, java),以下是必须要实现的接口

    type Chaincode interface {
        // deploy transaction被调用,一般只调用一次
        Init(stub ChaincodeStubInterface) pb.Response
    
        // 查询或更新账本,可多次调用
        Invoke(stub ChaincodeStubInterface) pb.Response
    }

    3. Chaincode编写好后,需要部署在Fabric的节点上, 运行在Docker容器中(开发chaincode的时候建议本地调试)

    4. Chaincode也称为智能合约,Chaincode就是智能合约的实现方式,两者等同。感觉上Chaincode是技术用语,智能合约(Smart Contract)是业务用语。官方文档关于两者是这样表述的:

    A chaincode typically handles business logic agreed to by members of the network, so it may be considered as a “smart contract”.

    5. 区块链是一个复杂的系统,涉及很多技术领域,包括密码学、分布式系统设计、数据库设计、性能、扩展性、系统集成和运营,底层的系统会变成blockchain as a service,大多数应用开发和运维人员不需要涉及底层的架构,更多的会围绕着Chaincode来做开发

    官方文档:https://hyperledger-fabric.readthedocs.io/en/release/chaincode.html

    chaincode for 开发人员: https://hyperledger-fabric.readthedocs.io/en/release/chaincode4ade.html

    chaincode for 运维人员: https://hyperledger-fabric.readthedocs.io/en/release/chaincode4noah.html

  • 相关阅读:
    【转】ArcEngine 打开AutoCAD文件的几种方法与读取CAD数据的方法
    汉字转拼音(VB版)
    ArcIMS9.2 + Web ADF for the Microsoft .NET Framework 安装配置
    【转载】有关web效率
    解决点击空链接返回页面顶部的方法
    j2se安装配置测试
    汉字转拼音(C#版)
    【转】Google 排名中的 10 个最著名的 JavaScript 库
    【转】并发危险:解决多线程代码中的 11 个常见的问题
    【转】ArcGIS 9.2中时态GIS的应用
  • 原文地址:https://www.cnblogs.com/huahuayu/p/8404560.html
Copyright © 2011-2022 走看看