【Solidity】智能合约案例——①食品溯源合约

目录

一、合约源码分析:

二、合约整体流程

1.部署合约

2.管理角色

3.食品信息管理

4.食品溯源管理


一、合约源码分析:

Producer.sol:生产者角色的管理合约,功能为:添加新的生产者地址、移除生产者地址、判断角色地址是否被授权

Distributor.sol:中间商角色的管理合约,功能为:添加新的中间商地址、移除中间商地址、判断角色地址是否被授权

Retailer.sol:零售商角色的管理合约,功能为:添加新的零售商地址、移除零售商地址、判断角色地址是否被授权

FoodInfoItem.sol:食品信息管理合约,功能为:中间商添加食品信息、超市添加食品信息、获取食品流转过程、获取食品的最初状态

Roles.sol:角色库,功能为:增加角色地址、移除角色地址、判断角色地址是否被授权

Trace.sol:食品溯源合约(主合约),包含了所引入合约的所有功能,以实现完整的食品溯源过程

二、合约整体流程:

1.部署合约

主合约(Trace.sol)部署时,需要添加三个地址作为初始化地址部署,同时,他们也是合约中的生产者,中间商,零售商。

部署成功后,我们此时便可以执行食品溯源的操作

2.管理角色

实际生产中,食品的加工、转运,销售会有许多地址,因此,我们可以使用引入的合约方法添加或者管理不同的角色地址

添加角色地址

例如:新添加一个生产者地址

报错原因:添加生产者的操作必须由具有操作权限的生产者地址进行,此时切换生产者账户重新执行即可

移除角色地址

判断角色地址

3.食品信息管理

部署合约时,我们已经添加了三个地址作为生产者,中间商,零售商,因此也可以直接进行食品信息管理

例如:添加新的食品信息,查询该食品信息

4.食品溯源管理

例如:将上文所新添加的食品增加中间商和零售商的溯源信息

此时再次进行食品信息查询

可见食品(火腿肠)的状态已经更新到了销售商(小新超市),该食品已经完整的经过了生产,转运,销售的过程,而通过此合约可以清晰明了地查询食品的状态,质量,时间,过程,真正实现了食品溯源

相关推荐
Roc_z710 小时前
Facebook的去中心化探索:社交平台的新型发展趋势
去中心化·facebook·社交媒体·隐私安全
小树苗19319 小时前
DePIN潜力项目Spheron解读:激活闲置硬件,赋能Web3与AI
人工智能·web3
CESS_Cloud19 小时前
CESS 出席华盛顿区块链政策峰会:参与国家安全与数据隐私保护专题讨论
安全·阿里云·web3·去中心化·区块链
我可是千机伞2 天前
BOB.meme已于12月18日正式部署于BNB Chain
web3
TianXuan_Chain2 天前
web3跨链桥协议-Nomad
web3·区块链·智能合约·跨链桥
CertiK2 天前
Web3.0安全开发实践:探索比特币DeFi生态中的PSBT
区块链
选择不变2 天前
慢牛提速经典K线形态-突破下跌起始位和回档三五线,以及徐徐上升三种形态
区块链·通达信指标公式·炒股技巧·短线指标·炒股指标
飞天阁2 天前
Hyperledger Fabric 2.x 环境搭建
运维·区块链·fabric
Sui_Network2 天前
Sui 基金会任命 Christian Thompson 为新任负责人
大数据·人工智能·物联网·区块链·智能合约
电报号dapp1192 天前
NFT交易所开发攻略:打造未来数字艺术品交易新平台
人工智能·去中心化·区块链·智能合约