Hyperledger Fabric 链码(2) 接口
1.Chaincode interface:每个链码程序必须实现链码接口,用以响应接收的事务。
1.1 go语言的“shim ”包中,接口规范如下:
- Init:在链码实例化或者升级的时候被调用,完成数据初始化
- Invoke:客户端调用Invoke方法来提交交易提案,在更新或查询提案事务中分类帐本数据状态的时候被调用
type Chaincode interface {// Init is called during Instantiate transaction after the chaincode container// has been established for the first time, allowing the chaincode to// initialize its internal dataInit(stub ChaincodeStubInterface) pb.Response// Invoke is called to update or query the ledger in a proposal transaction.// Updated state variables are not committed to the ledger until the// transaction is committed.Invoke(stub ChaincodeStubInterface) pb.Response
}
2. ChaincodeStubinterface:shim中的另一个重要接口,用于访问和修改帐本,以及实现链间调用
共定义了36个成员方法
eg.
- GetFunctionAndParameters()(function string,params []string)返回被调用函数的名称以及参数列表
- GetStringArgs()[]string 直接返回参数列表
- GetState(key string)([]byte,error) 根据指定的key值查询数据状态
- PutState(key string,value []byte)error 根据指定的key,将对应的value保存到帐本中
- DelState(key) 删除账本中的一对键值。
Hyperledger Fabric 链码(2) 接口相关推荐
- HyperLedger Fabric链码开发及测试
HyperLedger Fabric链码开发及测试 1.链码开发 先设计一个简单的应用场景,假设有这样的业务需求: 可以添加学校,信息包括学校名称.学校ID: 添加该学校的学生,信息包括姓名,用户ID ...
- Hyperledger Fabric 链码(1) 类型
1. 用户链码 由应用开发人员编写(Go/Java/JS语言) 基于区块链分布式账本的状态及处理逻辑运行在链码容器中, 通过Fabric提供的接口与账本平台进行交互. 2. 系统链码(ESCC) 负责 ...
- Hyperledger Fabric链码修改与测试(一)
在上一篇博客中我使用智能涡轮流量计采集了一些数据上传到Hyperledger的链码上,此前对链码的一些数据结构进行了修改,但是还存在一些小问题. https://blog.csdn.net/qq_43 ...
- Hyperledger Fabric 链码(0) 说明
1. 概念 基于区块链的应用,一般都由部署在区块链上的智能合约以及调用这些智能合约的业务程序组成,智能合约又称为链码(Chaincode),是一段运行在容器中的程序. Chaincode 是客户端程序 ...
- Hyperledger Fabric 链码(3) 生命周期和API
1. Chaincode的5个生命周期命令 链码打包 链码安装 eg.peer chaincode install ccpack.out 链码实例化 eg. peer.sh chaincode ins ...
- fabric 启动peer_编写 Fabric 链码的一般准则
我相信智能合约(链码)是 Hyperledger Fabric 区块链网络的核心.正确开发链码可以真正发挥一个安全区块链的优势,反之则会带来灾难性的后果.在这篇文章里我不打算探讨 Hyperledge ...
- 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试
[我的区块链之路]- Hyperledger fabric的简单入门(四)链码的编写及调试 之前的文章中我们有讲过了fabric的一些核心的配置文件的选项说明,讲过fabric 的网络启动 ...
- Hyperledger Fabric网络环境手动配置及其链码自动化部署
目录 5.1 网络环境的搭建 5.1.1 生成组织结构与身份证书 5.1.2 生成创世区块和通道 5.1.3 启动Fabric网络 5.1.4 创建Fabric-SDK-GO对象并建立通道 5.1. ...
- HyperLedger Fabric - 超级账本(4)链码的概念与使用
概念: Chaincode: 链上代码, 简称链码, 一般是指用户编写的应用代码 链码被部署在Fabric网络节点上, Peer 节点 – 背书节点 – commit节点 – Lead ...
最新文章
- 寄生电容所带来的影响
- 字符串(strcmp)
- Codeforces 1338E JYPnation (图论)
- 【机器学习基础】机器学习中必知必会的 3 种特征选取方法!
- struts2 spring hibernate 原理
- 最大乘积java_《算法入门经典》-最大乘积(java实现)
- typescript之hasOwnProperty
- java几种字符串反转
- vs2010基于Win32API串口通信MFC实例
- 资料分析——基础知识
- 微信公众账号查看历史消息
- 《孤独的根号三》 中英文对照
- IDEA TODO标签使用
- 字节跳动 |go 后端开发工程师社招一二三四五面面经|2022
- 蚂蚁课堂 - springboot入门(非常详细)讲解人:(余胜军)
- 一款功能强大且专业好用的CAD图形创建工——corelcad 2021
- uniapp组件-Card卡片
- 开局觉醒天道酬勤天赋(二)
- 震惊!小伙竟然用python找出了马大师视频中的名场面
- 【PTA】20 - 分流考试真题(已完结)
热门文章
- jQuery核心函数的使用总结
- Java 中类的比较与排序方法(应用Comparable接口与Comparator接口)通俗易懂
- linux中 pwd *****,linux命令自己写--pwd
- 无限级菜单 mysql设计_无限级菜单简单的设计
- 不确定大小的数组_原来数组是容器喔
- Dataset之LSUN:LSUN数据集的下载使用教程
- 成功解决ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5,问题
- ML之RS:基于用户的CF+LFM实现的推荐系统(基于相关度较高的用户实现电影推荐)
- Autolisp:利用AuoCAD之Lisp编程案例之自动智能获取所选对象的面积并标注在指定位置
- pyhanlp 分词与词性标注