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

这篇具有很好参考价值的文章主要介绍了【Solidity】智能合约案例——①食品溯源合约。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、合约源码分析:

二、合约整体流程:

      1.部署合约

      2.管理角色

      3.食品信息管理

      4.食品溯源管理


一、合约源码分析:

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

二、合约整体流程:

      1.部署合约

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

      2.管理角色

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

        添加角色地址

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

        例如:新添加一个生产者地址【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

        移除角色地址

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

        判断角色地址

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

      3.食品信息管理

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

        4.食品溯源管理

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

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

【Solidity】智能合约案例——①食品溯源合约,solidity,智能合约,区块链,去中心化,信任链,web3

        可见食品(火腿肠)的状态已经更新到了销售商(小新超市),该食品已经完整的经过了生产,转运,销售的过程,而通过此合约可以清晰明了地查询食品的状态,质量,时间,过程,真正实现了食品溯源文章来源地址https://www.toymoban.com/news/detail-715958.html

到了这里,关于【Solidity】智能合约案例——①食品溯源合约的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Solidity】智能合约案例——③版权保护合约

    【Solidity】智能合约案例——③版权保护合约

    目录 一、合约源码分析: 二、合约整体流程:         1.部署合约:         2.添加实体:          3.查询实体         4.审核版权:         5.版权转让         Copyright.sol:主合约,定义了版权局的实体,功能为:审核版权         Opus.sol:定义两个实体:作者和作

    2024年02月04日
    浏览(16)
  • 【Solidity】智能合约案例——②供应链金融合约

    【Solidity】智能合约案例——②供应链金融合约

    目录 一、合约源码分析: 二、合约整体流程:         1.部署合约:         2.添加实体         3.发送交易存证            ①.银行向公司交易(公司向银行提供交易存证)            ②.公司向银行交易(银行向公司提供交易存证)            ③.公司向公司交易

    2024年02月06日
    浏览(10)
  • 【区块链实战】Solidity 智能合约如何给账户充值

    【区块链实战】Solidity 智能合约如何给账户充值

    目录 一、实战场景 二、知识点 智能合约 智能合约函数 智能合约充值 payable 智能合约部署地址 智能合约的运行 合约 this 对象 三、菜鸟实战 四、运行结果 Solidity 智能合约如何给账户充值 1、充值金额 2、充值并查看结果

    2024年02月09日
    浏览(14)
  • 【区块链-智能合约工程师】第二篇:Solidity入门

    【区块链-智能合约工程师】第二篇:Solidity入门

    参考文章:一文速览2022十大智能合约开发工具 资料地址:WTF学院 HelloWorld remix:在线智能合约开发IDE(Integrated Development Environment,集成开发环境),可以在浏览器中快速部署测试智能合约。 合约HelloWorld: 事项 说明 代码所用的软件许可(license) 不写许可的话编译时会警告

    2024年02月09日
    浏览(13)
  • 区块链智能合约solidity的中的一些关键字

    区块链智能合约solidity的中的一些关键字

    目  录 pragma mapping msg对象 block对象 contract constructor struct 数据地址 地址类型 address payable revert 以下场景使用 revert() : require 以下场景使用 require() : assert 以下场景使用 assert(): 访问权限 internal public private external function returns return view pure constant event emit modifier pragma   

    2024年01月16日
    浏览(10)
  • 【区块链-智能合约工程师】第三篇:Solidity进阶(一)

    学习资料地址:WTF学院 库合约一般都是一些好用的函数合集(库函数),为了提升solidity代码的复用性和减少gas而存在。他和普通合约主要有以下几点不同: 不能存在状态变量 不能够继承或被继承 不能接收以太币 不可以被销毁 String库 String库合约是将uint256(大正整数)类型

    2024年02月06日
    浏览(11)
  • 区块链web3智能合约Solidity学习资源整理

    Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 Solidity中文官方文档: https://solidity-cn.readthedocs.io/zh/develop/ https://learnblockchain.cn/docs/solidity/index.html 在线rem

    2024年03月19日
    浏览(16)
  • 《NFT区块链进阶指南二》Etherscan验证Solidity智能合约(Remix插件验证)

    《NFT区块链进阶指南二》Etherscan验证Solidity智能合约(Remix插件验证)

    前置参考文档:https://blog.csdn.net/sinat_34104446/article/details/130557703 合约验证是上传合约源代码到etherscan过程,在智能合约项目中,通常都是提供源码验证,增加项目信任度 验证合约后可以直接在etherscan上执行获取和设置方法,方便日常的管理员维护 以下使用remix进行验证并使用

    2024年02月05日
    浏览(9)
  • 食品溯源合约 -- 智能合约实例

    食品溯源合约 -- 智能合约实例

    Roles: 实现对用户地址的角色权限管控,添加、删除角色。 Producer: 生产商角色管控。 ... FoodInfoItem: 食品信息管控。生产商、中间商、超市添加食品信息。 Trace:食品溯源合约,主要负责对以上几个合约的统筹协 PS:这下面这三个都是代表角色,代码几乎一样的,看会这个,其他都

    2024年02月13日
    浏览(12)
  • 【区块链技术开发】 Solidity使用Truffle Box工具实现预构建模板、自动化部署、创建智能合约示例代码

    专栏:区块链技术开发 Truffle Box是一个开发工具,为Truffle生态系统中的开发人员提供了预构建

    2023年04月16日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包