以太坊电子优惠券系统案例研究
1. 系统概述
在电子优惠券系统中,用户(银行、商家、消费者)和优惠券是参与系统的关键要素。由于用户是各种业务操作的发起者,这三类用户以及优惠券都应作为合约对象存储在区块链中。本系统共有四个合约,具体设计如下表所示:
| 合约名称 | 描述 |
| ---- | ---- |
| 银行合约 | 在项目部署时手动部署到区块链,负责审批商家的结算凭证相关操作 |
| 商家合约 | 存储商家的创建者地址、自身合约地址,维护未发放、已发放未使用和已使用的优惠券数组以及历史优惠券数组。商家可使用该合约完成优惠券的发放和终止,向银行端暴露接口以完成结算优惠券的申请和撤回,存储优惠券余额以供查询并维护优惠券数组以实现可追溯性 |
| 优惠券合约 | 由商家创建,存储其整个生命周期的所有相关状态值,通常通过商家或消费者的操作被动改变自身状态 |
| 消费者合约 | 存储消费者的账户地址、当前状态和钱包中的优惠券,可将优惠券转移到其他消费者账户 |
2. 合约状态设计
在系统中,为发挥区块链的权威性,需从区块链读取与交易相关的数据。在合约设计中,应综合考虑业务逻辑和数据记录,具体状态值设计如下:
2.1 银行合约
contract Bank{
address owner; // 存储银行的公钥
address[] merchants; // 维护所有经自身批准加入链的商家合约地址
}
超级会员免费看
订阅专栏 解锁全文
1863

被折叠的 条评论
为什么被折叠?



