首先看下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

Hyperledger Fabric Chaincode解析的更多相关文章

  1. Hyperledger Fabric Chaincode for Operators——实操智能合约

    什么是Chaincode(智能合约)? chaincode是一个程序,它是使用Go语言编写的,最终在Java等其他编程语言中实现了指定的接口.chaincode运行在一个被背书peer进程独立出来的安 ...

  2. HyperLedger Fabric ChainCode开发——shim.ChaincodeStubInterface用法

    深蓝前几篇博客讲了Fabric的环境搭建,在环境搭建好后,我们就可以进行Fabric的开发工作了.Fabric的开发主要分成2部分,ChainCode链上代码开发和基于SDK的Application开 ...

  3. Hyperledger Fabric ChainCode开发

    预览 Hyperledger Fabric的chaincode开发目前支持Go.Java.Node.js语言,下面以Go语言作为例子,我们先看下面的一个官方提供chaincode模板 ··· pack ...

  4. Hyperledger Fabric chaincode 开发(疑难解答)

    Q&A Q1: 使用fabric release 1.2 进行golang chaincode开发时报错: ..\..\hyperledger\fabric\vendor\github.com ...

  5. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用【补充】

    在 Hyperledger Fabric 1.0 从零开始(十二)--fabric-sdk-java应用 中我已经把官方sdk具体改良办法,即使用办法发出来了,所有的类及文件都是完整的,在文章的结尾也 ...

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

    Hyperledger Fabric 1.0 从零开始(十)--智能合约 Hyperledger Fabric 1.0 从零开始(十一)--CouchDB 上述两章,最近网上各路大神文章云集,方案多多 ...

  7. Centos7 HyperLedger Fabric 1.4 生产环境部署

    Kafka生产环境部署案例采用三个排序(orderer)服务.四个kafka.三个zookeeper和四个节点(peer)组成,共准备八台服务器,每台服务器对应的服务如下所示: kafka案例网络拓扑 ...

  8. Hyperledger Fabric 1.0 从零开始(一)

    在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后1.0就发布了.自从2017年7月H ...

  9. 搭建基于hyperledger fabric的联盟社区(四) --chaincode开发

    前几章已经分别把三台虚拟机环境和配置文件准备好了,在启动fabric网络之前我们要准备好写好的chaincode.chaincode的开发一般是使用GO或者JAVA,而我选择的是GO语言.先分析一下官 ...

随机推荐

  1. 【JavsScript高级程序设计】学习笔记[1]

    1. 在HTML中使用javascript 在使用script嵌入脚本时,脚本内容不能包含'</script>'字符串(会被认为是结束的标志).可以通过转义字符解决('\') 默认scri ...

  2. Oracle Sql Developer 连接 SqlServer

    1.下载 jTDS - SQL Server and Sybase JDBC driver 地址:http://sourceforge.net/projects/jtds/files/ 2.运行SQL ...

  3. Servlet和JSP规范与Tomcat版本对应关系

    apache tomcat 官网地址:http://tomcat.apache.org/whichversion.html

  4. c&c++ datetime

    时间函数之间的关系 struct tm { int tm_sec; // 代表目前秒数,正常范围0-59,但允许至61秒: int tm_min; // 代表目前分数,范围为0-59. int tm_ ...

  5. IE9以上版本无法更換会员头像

    解决方法一:把网址加入"信任的網站" 就可以了 解决方法二:打开IE8的窗口-工具-- Intelnet选项-- 安全-- 自定义级别把“将文件上传到服务器时包含本地目录路径”这一 ...

  6. (转)在二元树中找出和为某一值的所有路径,java版本

    摘自:http://www.cnblogs.com/qi09/archive/2011/05/24/2055643.html 4.在二元树中找出和为某一值的所有路径 题目:输入一个整数和一棵二元树.  ...

  7. 如何设计并使用FireMonkeyStyle

    如何设计并使用FireMonkeyStyle FireMonkey使用Style来控制控件的显示方式. 每个控件都有一个StyleLookup属性,FireMonkey就是通过控件的这个属性来在当前窗 ...

  8. nginx学习资源

    在了解nginx的时候 看到的一些资源: https://www.cnblogs.com/EdwinChan/p/8350984.html http://tengine.taobao.org/book ...

  9. java使用sftp下载远程服务器文件

    使用的是springboot的项目,只是贴出主要配置与类,代码较长,可以先折叠: 参考:https://www.cnblogs.com/xyzq/p/7049369.html 操作工具类SftpUti ...

  10. JDK 8 - Lambda Expression 的优点与限制

    我们知道 JDK 8 新增了 Lambda Expression 这一特性. JDK 8 为什么要新增这个特性呢? 这个特性给 JDK 8 带来了什么好处? 它可以做什么?不可以做什么? 在这篇文章, ...