先在fabric文件夹下建一个aberic文件夹,并将一些必要的配置文件文件放入
如图

然后根据crypto-config.yaml生成证书文件

./bin/cryptogen generate –config=./crypto-config.yaml

接下来,使用configtxgen工具执行configtx.yaml文件以创建orderer Genesis block,在此之前需要为configtxgen工具指定configtx.yaml文件的路径,设置环境变量,执行如下命令:

export FABRIC_CFG_PATH=$PWD

在aberic目录下面新建一个channel-artifacts文件夹
根据configtx.yaml生成创世块及频道认证文件,具体命令如下:

 ./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

创世块是为了Orderer排序服务启动时用到的,Peer节点在启动后需要创建Channel的配置文件在这里也一并生成,执行具体命令如下:

./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID ${可以自己定义应用通道名称}

chanelID定义的是啥后面就只能生成啥通道

用docker启动orderer节点和peer节点

docker-compose -f docker-orderer.yaml up -d
docker-compose -f docker-peer.yaml up -d

进入cli

docker exec -it cli bash

根据之前创建的应用通道文件创建一个通道

peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/mychannel.tx

-c后是创建的通道名称

创建完channel后,需要执行如下命令,通过mychannel.block文件加入该channel,以便后续可以安装实例化并测试智能合约。
执行命令为:

peer channel join -b mychannel.block

把我们之前准备好的智能合约放到chaincode文件下

然后安装智能合约,执行命令为:

peer chaincode install -n ${chaincodeName} -p ${path}-v 1.0

-n 后是智能合约名称 -p后是智能合约路径 都是根据你自己实际情况来
例如:

peer chaincode install -n cwx -p github.com/hyperledger/fabric/aberic/chaincode/go/mychaincode -v 1.0

安装完成后需要进行实例化chaincode,执行如下命令:

peer chaincode instantiate -o ${ordererAddr} -C ${channelName} -n
${ccName} -v ${ccVersion} -c ${InitArgs} -P ${EndorserPolicy}

例如:

peer chaincode instantiate -o orderer.example.com:7050 -C mychannelcwx -n cwx -c '{"Args":["init","cwx","1999"]}' -P "OR ('Org1MSP.member')" -v 1.0

这里是初始化了一对key-value值

然后我们可以根据key查询对应的value值

peer chaincode query -C mychannelcwx -n cwx -c '{"Args":["query","cwx"]}'

查询结果如图

然后我们可以执行invoke操作对值进行修改

peer chaincode invoke -C mychannelcwx -n cwx -c '{"Args":["update","cwx","1998"]}'

这里我把1999改成了1998
然后再进行查询操作
结果如图:

链码测试成功。