智能合约简介

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

在这里插入图片描述

在Fabric中,chaincode(链码)也称为智能合约,是用高级语言编写的一段代码。代码主要是读取和操作账本上的数据。 智能合约是一座连接用户应用和Fabric账本的桥梁。用户的应用直接和智能合约打交道,智能合约直接和Fabric账本进行交互。

一个完整的Fabric区块链应用包含两部分,一部分是用户的应用程序,一部分是用户编写的智能合约。下图展示了用户智能合约和用户的应用程序以及账本交互的过程。用户的应用程序通过区块链网络的Peer节点,调用智能合约。用户智能合约通过区块链网络的Peer节点操作账本数据。整体架构中,用户的应用程序负责以下两部分职责。第一,用户的应用程序根据业务逻辑负责生成需要存储在区块链网络上的数据。第二,用户的应用程序根据业务逻辑,从区块链网络上获取到相关数据,进行业务操作。总体来说,用户应用程序更关注业务本身。智能合约主要是负责封装与账本直接交互的过程,包括按照用户指定的逻辑存储与查询账本数据,供用户应用程序调用。

Fabric中用户编写的智能合约是运行在隔离的沙盒环境中,目前主要展现形态是独立的docker容器。智能合约安装在区块链网络中的Peer节点上,运行时Peer节点会启动单独的docker容器来运行智能合约。智能合约以容器启动后,会与启动智能合约容器的Peer节点建立交互,从而实现对对应Peer节点上账本相关数据的操作。智能合约在运行的过程中,会在对应的Peer节点账本上创建独立的命名空间,命名空间是智能合约的名字,然后在此命名空间中完成键值对的操作。不同智能合约的命名空间不一样,互相之间的数据是独立的,一般情况下智能合约只能访问到属于自己命名空间的键值对。如果一个智能合约想访问另外智能合约的数据,可以通过在智能合约内部调用其他智能合约来实现。

Fabric中的Peer节点提供了调用智能合约相关服务的接口。用户的应用程序可以通过使用此类型服务和Fabric Peer进行交互,Fabric Peer在与智能合约容器进行交互,从而完成应用程序和智能合约之间的交互。用户的应用程序可以通过以下两种方式使用Fabric Peer提供的服务。第一,用户的应用程序直接利用Fabric提供的SDK与Fabric Peer进行交互,具体参看Fabric SDK。第二,用户可以使用腾讯云SDK调用相关的TBaaS云API接口与TBaaS中的Fabric Peer进行交互。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、应用层设计 1.1 系统简介 本系统是基于fabric区块链技术的农产品溯源系统,旨在实现农产品从种植、采摘、加工、运输到销售的全过程可追溯和信息透明化。通过在区块链上记录每个环节的数据,实现数据不可篡改和公开透明,消费者可以通过扫描商品二维码或输入商品编号查询产品的源头信息,保证食品安全和消费者权益。 1.2 功能模块 本系统包含以下功能模块: 1)种植阶段:记录种植地点、种植时间、种植品种、施肥情况、农药使用情况等信息。 2)采摘阶段:记录采摘时间、采摘地点、采摘人员、采摘工具等信息。 3)加工阶段:记录加工时间、加工地点、加工工艺、加工人员等信息。 4)运输阶段:记录运输时间、运输工具、运输路线、运输人员等信息。 5)销售阶段:记录销售时间、销售地点、销售商、销售价格等信息。 6)查询功能:消费者可以通过扫描二维码或输入商品编号查询产品的源头信息。 1.3 界面设计 本系统包含以下界面: 1)登录界面:用户输入用户名和密码进行登录。 2)主界面:显示系统菜单和功能模块。 3)种植界面:记录种植信息。 4)采摘界面:记录采摘信息。 5)加工界面:记录加工信息。 6)运输界面:记录运输信息。 7)销售界面:记录销售信息。 8)查询界面:消费者输入商品编号查询产品的源头信息。 1.4 流程设计 本系统的业务流程如下: 1)种植:农民在种植阶段上传种植信息到区块链上。 2)采摘:农民在采摘阶段上传采摘信息到区块链上。 3)加工:加工厂在加工阶段上传加工信息到区块链上。 4)运输:物流公司在运输阶段上传运输信息到区块链上。 5)销售:销售商在销售阶段上传销售信息到区块链上。 6)查询:消费者通过扫描二维码或输入商品编号查询产品的源头信息。 二、服务层设计 2.1 服务层概述 服务层主要包括业务逻辑处理和调用合约的功能。 2.2 服务层接口设计 本系统的服务层接口设计如下: 1)登录接口:用户输入用户名和密码进行登录,返回登录结果。 2)种植接口:记录种植信息,返回上传结果。 3)采摘接口:记录采摘信息,返回上传结果。 4)加工接口:记录加工信息,返回上传结果。 5)运输接口:记录运输信息,返回上传结果。 6)销售接口:记录销售信息,返回上传结果。 7)查询接口:消费者输入商品编号查询产品的源头信息,返回查询结果。 2.3 服务层实现 服务层主要实现以下功能: 1)验证用户登录信息,返回登录结果。 2)调用合约,将数据写入区块链,返回上传结果。 3)调用合约,查询数据,返回查询结果。 三、合约层设计 3.1 合约层概述 合约层主要包括智能合约的编写和部署。 3.2 合约层接口设计 本系统的合约层接口设计如下: 1)种植合约:记录种植信息,返回上传结果。 2)采摘合约:记录采摘信息,返回上传结果。 3)加工合约:记录加工信息,返回上传结果。 4)运输合约:记录运输信息,返回上传结果。 5)销售合约:记录销售信息,返回上传结果。 6)查询合约:查询数据,返回查询结果。 3.3 合约层实现 合约层主要实现以下功能: 1)编写智能合约,定义结构体和函数。 2)部署智能合约,将合约部署到区块链上。 3)实现合约中的函数,包括数据写入和查询。 四、数据层设计 4.1 数据层概述 数据层主要包括数据库设计和数据存储。 4.2 数据库设计 本系统的数据库设计如下: 1)用户表:记录用户名和密码。 2)种植表:记录种植信息。 3)采摘表:记录采摘信息。 4)加工表:记录加工信息。 5)运输表:记录运输信息。 6)销售表:记录销售信息。 4.3 数据存储 数据存储主要采用关系型数据库和区块链。用户信息和链码数据存储在关系型数据库中,区块链上存储数据的hash值和交易信息。 五、总结 本文详细介绍了基于fabric区块链技术的农产品溯源系统的应用层、服务层、合约层、数据层设计。通过在区块链上记录每个环节的数据,实现数据不可篡改和公开透明,保证食品安全和消费者权益。本系统可以为农产品行业提供更加安全、透明和可靠的溯源服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值