链码开发:背书请求处理接口及流程
需积分: 0 142 浏览量
更新于2024-08-05
收藏 732KB PDF 举报
在区块链技术的背景下,本文档详细介绍了如何在链码开发中处理背书相关请求。主要关注的是一个名为"endorserCC.go"的接口文件,该文件属于`vimchaincode`包,是基于Hyperledger Fabric框架编写的。链码`BillChainCode`提供了三个关键功能:背书请求、背书签收和拒绝背书。
1. **背书请求**(endorse):
- 函数接收三个参数:Bill_No(票据号码)、endorseCmId(待背书人的ID)和endorseAcct(待背书人的名称)。
- 验证参数长度,确保为3个。
- 获取票据的状态以进行后续操作。
- 检查待背书人是否与当前持票人为同一人,这涉及到权限控制和合法性验证。
- 通过获取票据历史变更数据来确认待背书人是否曾经持有过该票据。
- 如果满足条件,更新票据信息,添加待背书人信息(证件号码与名称),并改变票据状态为“待背书”,同时清除已拒绝背书记录。
- 保存新的票据状态,并用待背书人ID和Bill_No组合的复合键存储,方便待背书人批量查询。
2. **背书签收**(accept):
- 接收与背书请求相同的参数。
- 获取票据状态并检查待背书人身份。
- 删除前手持票人与票据关联的复合键,防止他们继续访问该票据。
- 更新票据信息,将当前持票人改为待背书人,状态变为“背书签收”,并重置待背书状态。
- 保存更新后的票据并返回响应。
3. **拒绝背书**(拒绝背书):
- 该功能用于处理拒绝情况,接收Bill_No、endorseCmId和endorseAcct。
- 与前两个函数类似,但不进行背书签收,而是保留原持票人信息,更新状态为“拒绝背书”。
这些函数的核心是利用Hyperledger Fabric提供的`shim.ChaincodeStubInterface`与智能合约交互,实现了对票据背书过程的链上管理,确保了交易的透明性、可追溯性和安全性。通过链码的这些接口,参与方可以执行合法的背书操作,并维护票据状态的变化历史,为供应链金融等场景提供基础服务。
2020-05-26 上传
2021-10-11 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
KateZeng
- 粉丝: 26
- 资源: 330
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查