前置提要
1.推荐 Go 1.18,版本过低可能无法编译出可执行文件
2.Tape 项目是一个 go module 工程,因此不用将项目保存到 GOPATH 下,任意目录都可执行编译操作。执行编译命令之后,它会自动下载相关依赖,下载依赖可能需要一定时间。编译完成后,会在当前目录生成一个名为 tape 的可执行文件。
3.如果下载依赖速度过慢,推荐配置 goproxy 国内代理,可执行命令:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
启动测试网络
cd fabric-samples/test-network/
./network.sh down
./network up createChannel -c mychannel
./network.sh deployCC -ccn basic -ccp ../asset-transfer-sasic/chaincode-javascript -ccl javascript
下载依赖
git clone https://github.com/Hyperledger-TWGC/tape.git
#会在本地生成一个tape目录(前置提要有说到,此文件随便你放哪)
cd tape
#进入tape目录,编译
go build ./cmd/tape
#复制证书文件到tape目录下
cp -r ../fabric/fabric-samples/test-network/organizations/ ./
修改配置文件!!!
按以下内容做对比修改你的config.yaml文件。官方的文件不全,无法启动。rpc error,too_many_pings,empty endorsement 等错误皆是由该文件的缺陷引起。
# Definition of nodes
# addr address for node
# tls_ca_cert tls cert
peer1: &peer1
addr: localhost:7051
ssl_target_name_override: peer0.org1.example.com
org: org1
tls_ca_cert: ./organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
peer2: &peer2
addr: localhost:9051
ssl_target_name_override: peer0.org2.example.com
org: org2
tls_ca_cert: ./organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem
orderer1: &orderer1
addr: localhost:7050
ssl_target_name_override: orderer.example.com
org: org1
tls_ca_cert: ./organizations/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem
# Peer Nodes to interact with as endorsement Peers
policyFile: ./test/andLogic.rego
endorsers:
- *peer1
- *peer2
# Peer Nodes to interact with as Commit Peers as listening
committers:
- *peer1
- *peer2
# we might support multi-committer in the future for more complex test scenario.
# i.e. consider tx committed only if it's done on >50% of nodes.
# Give your commit Threshold as numbers for peers here.
commitThreshold: 1
# orderer Nodes to interact with
orderer: *orderer1
# Invocation configs
channel: mychannel
chaincode: basic
#chaincode: smallbank
# chain code args below, in a list of str
# we provides 3 kinds of randmon
# uuid
# randomString$length
# randomNumber$min_$max
args:
- CreateAsset
- uuid
- randomString8
- randomNumber0_50
- randomString8
- randomNumber0_50
# Tx submiter information
mspid: Org1MSP
private_key: ./organizations/peerOrganizations/org1.example.com/users/User1.example.com/msp/keystore/priv_sk
sign_cert: ./organizations/peerOrganizations/org1.example.com/users/User1.example.com/msp/signcerts/User1.example.com-cert.pem
# network traffic control
num_of_conn: 10
client_per_conn: 10
empty endorsement 错误是没有指定 policyFile策略文件
rpc error,too_many_pings 错误是 ssl_target_name_override、org 参数没写