【Fabric】教程之GO-SDK版education

在原基础上修改为双组织双节点的组织结构

步骤

1.修改配置文件

和GO-SDK那篇一样

之后需要在main.go文件中的org信息里增加组织信息

2. 运行

添加依赖:

cd education && go mod tidy

运行项目:

./clean_docker.sh

其间遇到了这个错误

  Create channel and join error: Create channel error: SaveChannel for anchor org Org2 error: create channel failed: create channel failed: SendEnvelope failed: calling orderer 'orderer.example.com:7050' failed: Orderer Server Status Code: (400) BAD_REQUEST.Description: error applying config update to existing channel 'mychannel': error authorizing update: error validating ReadSet: proposed update requires that key [Group]  /Channel/Application/Org1MSP be at version 0, but it is currently at version 1

有说是因为之前运行过的原因,但是删除了也没解决

找到原因了 原来是在main中写组织信息的时候不小心把组织2MSP信息写成组织1了

127.0.0.1:9000进行访问
关闭项目:

cd fixtures && docker-compose down
docker volume prune
# cd .. && go mod tidy

项目分析

chainCode

就是单纯的链码,这里可以更换为我的访问控制

main.go

main作为整个项目启动的主函数,里面分为了几个部分

1. fabric网络相关
1.1 初始化信息

首先是组织信息,即org,在这里因为我设计了两个组织,因此组织信息要写两个,注意不要把MSP信息写错

然后按照sdk的info写一个info参数,方便后续使用

TODO: 后期如果要增加组织节点,需要分为以下几步:

  1. 在docker-compose、crypto-config和configtx三个文件里增加
  2. 然后重新生成创世块和channel块
  3. 在config中增加组织信息
  4. 在main函数中增加组织信息

PS: 这里官方有自动化文档 但是因为这个框架不是官方的 是更改过的 所以到时候可能需要更改一下 后期可以写一个自动化执行。

1.2 网络启动
  1. setup
  2. create channel and join
  3. create chaincode lifecycle
  4. invoke chaincode set status
    这些的逻辑就是正常启动网络的逻辑 故不过多赘述

至此,sdkinit结束。

这一部分也没啥知识点 fabric的基础打好这个就跟着懂了

2. app

这里就需要针对不同的项目编写不同的代码 但所有逻辑一致

2.1 service初始化和创建

把链码和通道信息等绑定到客户端(domain.go文件负责实现)

PS:这个项目中 service/eduService.go负责提供链码调用接口 和用户绑定没关系,

2.2 启动app

把刚刚创建好的客户端和app绑定,然后启动这个app(在web/webServer中实现路由和启动)

至此一个项目的逻辑完成 具体的接口和链码可以由开发者自行决定

这个项目的功能较为简单 不展开讲述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值