文章目录

  • 摘要
  • 一、程序各模块功能简介
  • 1.1 goSdk0_1
  • 1.2 org_chaincode
  • 二、各接口功能详细介绍
  • 2.1 Generate(育种组织)
  • 2.1.1 添加数据
  • 2.1.2 查询数据(某只鸡最新的世界状态)
  • 2.1.3 溯源查询
  • 2.1.4 汇总查询
  • 2.1.5 注册
  • 2.1.6 登录
  • 2.2 Breed(养殖户组织)
  • 2.2.1 添加数据
  • 2.2.2 查询数据(某只鸡最新的世界状态)
  • 2.2.3 溯源查询
  • 2.2.4 汇总查询
  • 2.2.5 注册
  • 2.2.6 登录


摘要

已经完成了育种组织、养殖户组织、政府职能、普通用户的链码编写及后端接口编写,前三个组织均可添加数据及查询数据,且支持富查询,同时还可进行登录注册操作,普通用户则只可以进行查询溯源操作。总的Api路由组如下图:

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据


但仍旧存在问题,当开启7个区块链节点容器时,初始化链码后,会有一定随机性down掉两个区块链节点容器(不固定down掉某两个特定容器),于是我撤掉了两个容器,只开5个区块链节点容器,此时不再有容器down掉,但是偶尔会有节点容器与go sdk创建的客户端断开连接后又重连,而且发送交易时,速度缓慢,还有时会失败。根据推测,较大可能是虚拟机性能不足导致的。第二章我会介绍并测试各组织接口,只以两个组织为例,因为其他的都是一样的规范。


一、程序各模块功能简介

1.1 goSdk0_1

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_02

  1. 解决Cors跨域问题的中间件
  2. go sdk创建客户端操作区块链的配置文件
  3. Fabric Info,存放model结构体的文件
  4. main函数文件
  5. 路由组执行函数的文件,主要是调用start.go文件中函数来实现操作逻辑。
  6. 底层函数的文件。因为这里的函数可以复用,故叫底层函数。

1.2 org_chaincode

链码文件

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_03

  1. main.go
    最核心的是Invoke函数,根据fun执行特定的链码函数并传入参数args。
  2. controller.go
    所有的链码函数,都在这
  3. modle.go
    保存数据的结构体。

二、各接口功能详细介绍

2.1 Generate(育种组织)

2.1.1 添加数据

请求地址:127.0.0.1:6060/generate/addData 请求方式:POST

功能:添加数据,添加成功则返回的err为空(如下图),否则返回错误类型。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_添加数据_04

2.1.2 查询数据(某只鸡最新的世界状态)

请求地址:127.0.0.1:6060/generate/queryData 请求方式:GET

功能:指定ID和Batch,查询指定凤鸡的最新状态。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_05

2.1.3 溯源查询

请求地址:127.0.0.1:6060/generate/queryHistoryData 请求方式:GET

功能:溯源函数,查询指定凤鸡所有的改动。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_06

2.1.4 汇总查询

请求地址:127.0.0.1:6060/generate/queryDataByStateBatch 请求方式:GET

功能:查询当前组织指定批次,所有活鸡。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_区块链_07

2.1.5 注册

请求地址:127.0.0.1:6060/generate/registry 请求方式:POST

功能:当前组织用户注册,注册成功则返回注册用户的信息。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_添加数据_08

2.1.6 登录

请求地址:127.0.0.1:6060/generate/login 请求方式:GET

功能:输入用户,密码进行登录,登录成功则返回该账号的身份信息,否则返回错误。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_09

2.2 Breed(养殖户组织)

2.2.1 添加数据

请求地址:127.0.0.1:6060/breed/addData 请求方式:POST

功能:添加数据,添加成功则返回的err为空(如下图),否则返回错误类型。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_10

2.2.2 查询数据(某只鸡最新的世界状态)

请求地址:127.0.0.1:6060/breed/queryData 请求方式:GET

功能:指定ID和Batch,查询指定凤鸡的最新状态。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_添加数据_11

2.2.3 溯源查询

请求地址:127.0.0.1:6060/breed/queryHistoryData 请求方式:GET

功能:溯源函数,查询指定凤鸡所有的改动。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_12

2.2.4 汇总查询

请求地址:127.0.0.1:6060/breed/queryDataByStateBatch 请求方式:GET

功能:查询当前组织指定批次,所有活鸡。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_13

2.2.5 注册

请求地址:127.0.0.1:6060/breed/registry 请求方式:POST

功能:当前组织用户注册,注册成功则返回注册用户的信息。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_数据_14

2.2.6 登录

请求地址:127.0.0.1:6060/breed/login 请求方式:GET

功能:输入用户,密码进行登录,登录成功则返回该账号的身份信息,否则返回错误。

区块链溯源 BS架构 JAVA智能合约开源代码 区块链溯源开发_区块链_15