序言
fabric1.0 开发chaincode的例子中一个chaincode都是由一个go文件组成,当做模块化开发时总不能多个人使用同一个go文件吧?
仔细研究了fabric1.0中的examples\chaincode\go\utxo 的例子,是可以是实现 一个chaincode由多个go文件组成的。
仿照utxo的例子,写一个实现了机构注册和机构查询的简单的功能,由2个go文件组成,第一个go文件是chaincode的main函数文件,第二个go文件实现了真正的功能,以此类推,再多的功能可以由第3个,第n个go文件实现,不同类型的go文件放到不同的子目录中,从而实现了chaincode的模块化开发。
1)建立主目录和子模块目录
在GOPATH目录下 建立一个测试目录 mytest.com,在mytest.com下建立orgbase子模块目录
2)建立chaincode主程序
在mytest.com目录下建立一个testmain.go的chaincode主程序文件,
文件中必须包含main函数,Init函数和Invoke函数,文件内容如下:
package main
import (
"fmt"
"mytest.com/orgbase"
"github.com/hyperledger/fabric/core/chaincode/shim"
pb "github.com/hyperledger/fabric/protos/peer"
)
/*
定义SimpleChaincode
*/
type SimpleChaincode struct {
}
/*
主程序初始化
*/
func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {
return shim.Success(nil)
}
/*
机构开户
*/
f