启动、关闭链

  • 启动链

    1
    2
    cd ~/chainmaker/chainmaker-go/scripts
    ./cluster_quick_start.sh normal
    • 各节点的初始状态文件保存在 ~/chainmaker/chainmaker-go/buid/release 中的压缩文件,启动脚本会将其解压,为了保证链的状态不被覆盖,将压缩文件备份:

      1
      2
      mkdir -p ../build/bak
      mv ../build/release/*.tar.gz ../build/bak
    • 若要重新初始化链,只用将备份的文件重新放回release目录,再启动链:

      1
      2
      3
      4
      rm -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
    5
    cat $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
    10
    cmc 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
    6
    cmc 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