启动、关闭链
-
启动链
1
2cd ~/chainmaker/chainmaker-go/scripts
./cluster_quick_start.sh normal-
各节点的初始状态文件保存在
~/chainmaker/chainmaker-go/buid/release
中的压缩文件,启动脚本会将其解压,为了保证链的状态不被覆盖,将压缩文件备份:1
2mkdir -p ../build/bak
mv ../build/release/*.tar.gz ../build/bak -
若要重新初始化链,只用将备份的文件重新放回release目录,再启动链:
1
2
3
4rm -rf ../build/release/*
cp ../build/bak/* ../build/release
./cluster_quick_start.sh normal
rm ../build/release/*.tar.gz
-
-
关闭链
1
./cluster_quick_stop.sh
查看节点启动使用正常
-
查看进程是否存在
1
ps -ef|grep chainmaker | grep -v grep
-
看端口是否监听
1
netstat -lptn | grep "1230\|1130"
-
检查节点是否有
ERROR
日志1
2
3
4
5cat $HOME/chainmaker/chainmaker-go/build/release/chainmaker-v2.0.0-wx-org1.chainmaker.org/bin/panic.log
tail -f $HOME/chainmaker/chainmaker-go/build/release/chainmaker-v2.0.0-wx-org1.chainmaker.org/log/system.log
tail -f $HOME/chainmaker/chainmaker-go/build/release/chainmaker-v2.0.0-wx-org1.chainmaker.org/log/system.log|grep "ERROR\|put block\|all necessary"
使用Docker镜像进行合约开发
-
后台启动docker镜像并进入容器内部
1
docker run -it --name chainmaker-rust-contract -v $HOME/chainmaker/contract:/home chainmakerofficial/chainmaker-rust-contract:2.1.0 bash
-
关闭容器后再次进入
1
2
3
4
5
6# 启动容器
docker start chainmaker-rust-contract
# 进入容器命令行
docker exec -it chainmaker-rust-contract bash
# 关闭容器
docker stop chainmaker-rust-contract -
命令行创建wasm合约
1
2
3
4
5
6
7
8
9
10cmc client contract user create \
--contract-name=fact \
--runtime-type=WASMER \
--byte-code-path=./testdata/contract/chainmaker_contract.wasm \
--version=1.0 \
--sdk-conf-path=./testdata/sdk_config.yml \
--admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.tls.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.tls.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.tls.key \
--admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.tls.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.tls.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.tls.crt \
--sync-result=true \
--params="{}" -
命令行调用wasm合约
1
2
3
4
5
6cmc client contract user invoke \
--contract-name=fact \
--method=save \
--sdk-conf-path=./testdata/sdk_config.yml \
--params="{\"file_name\":\"name007\",\"file_hash\":\"ab3456df5799b87c77e7f88\",\"time\":\"6543234\"}" \
--sync-result=true