文章目录
- 摘要
- 一、程序各模块功能简介
- 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路由组如下图:
但仍旧存在问题,当开启7个区块链节点容器时,初始化链码后,会有一定随机性down掉两个区块链节点容器(不固定down掉某两个特定容器),于是我撤掉了两个容器,只开5个区块链节点容器,此时不再有容器down掉,但是偶尔会有节点容器与go sdk创建的客户端断开连接后又重连,而且发送交易时,速度缓慢,还有时会失败。根据推测,较大可能是虚拟机性能不足导致的。第二章我会介绍并测试各组织接口,只以两个组织为例,因为其他的都是一样的规范。
一、程序各模块功能简介
1.1 goSdk0_1
- 解决Cors跨域问题的中间件
- go sdk创建客户端操作区块链的配置文件
- Fabric Info,存放model结构体的文件
- main函数文件
- 路由组执行函数的文件,主要是调用start.go文件中函数来实现操作逻辑。
- 底层函数的文件。因为这里的函数可以复用,故叫底层函数。
1.2 org_chaincode
链码文件
- main.go
最核心的是Invoke函数,根据fun执行特定的链码函数并传入参数args。 - controller.go
所有的链码函数,都在这 - modle.go
保存数据的结构体。
二、各接口功能详细介绍
2.1 Generate(育种组织)
2.1.1 添加数据
请求地址:127.0.0.1:6060/generate/addData
请求方式:POST
功能:添加数据,添加成功则返回的err为空(如下图),否则返回错误类型。
2.1.2 查询数据(某只鸡最新的世界状态)
请求地址:127.0.0.1:6060/generate/queryData
请求方式:GET
功能:指定ID和Batch,查询指定凤鸡的最新状态。
2.1.3 溯源查询
请求地址:127.0.0.1:6060/generate/queryHistoryData
请求方式:GET
功能:溯源函数,查询指定凤鸡所有的改动。
2.1.4 汇总查询
请求地址:127.0.0.1:6060/generate/queryDataByStateBatch
请求方式:GET
功能:查询当前组织指定批次,所有活鸡。
2.1.5 注册
请求地址:127.0.0.1:6060/generate/registry
请求方式:POST
功能:当前组织用户注册,注册成功则返回注册用户的信息。
2.1.6 登录
请求地址:127.0.0.1:6060/generate/login
请求方式:GET
功能:输入用户,密码进行登录,登录成功则返回该账号的身份信息,否则返回错误。
2.2 Breed(养殖户组织)
2.2.1 添加数据
请求地址:127.0.0.1:6060/breed/addData
请求方式:POST
功能:添加数据,添加成功则返回的err为空(如下图),否则返回错误类型。
2.2.2 查询数据(某只鸡最新的世界状态)
请求地址:127.0.0.1:6060/breed/queryData
请求方式:GET
功能:指定ID和Batch,查询指定凤鸡的最新状态。
2.2.3 溯源查询
请求地址:127.0.0.1:6060/breed/queryHistoryData
请求方式:GET
功能:溯源函数,查询指定凤鸡所有的改动。
2.2.4 汇总查询
请求地址:127.0.0.1:6060/breed/queryDataByStateBatch
请求方式:GET
功能:查询当前组织指定批次,所有活鸡。
2.2.5 注册
请求地址:127.0.0.1:6060/breed/registry
请求方式:POST
功能:当前组织用户注册,注册成功则返回注册用户的信息。
2.2.6 登录
请求地址:127.0.0.1:6060/breed/login
请求方式:GET
功能:输入用户,密码进行登录,登录成功则返回该账号的身份信息,否则返回错误。