长安链环境部署、测试

长安链 ChainMaker-2.1.0

长安链 chainMaker 2.1.0 部署,并使用cmc 工具进行测试

最近在学习长安链,欢迎一起学习、讨论 q260261476

源码下载
  1. chainmaker源码

    git clone -b v2.1.0 https://git.chainmaker.org.cn/chainmaker/chainmaker-go.git
    
  2. 证书生成工具源码

    git clone -b v2.1.0 https://git.chainmaker.org.cn/chainmaker/chainmaker-cryptogen.git
    
编译 CRYPTOGEN
  1. 编译 cryptogen、生成样例模板

    cd chainmaker-cryptogen && make
    
  2. 软连接到chainmaker源码

    cd ../chainmaker-go/tools && ln -s ../../chainmaker-cryptogen/ .
    
  3. 证书生成

    cd ../scripts
    ./prepare.sh 4 1
    
    tree -L 3 ../build/ 
    
安装包 启动
  1. 脚本启动

    #制作启动文件
    ./build_release.sh
    tree ../build/release/
    
    #启动网络
    ./cluster_quick_start.sh normal
    
    #查看状态
    ps -ef|grep chainmaker | grep -v grep
    netstat -lptn | grep "1230\|1130"
    cat ../build/release/chainmaker-v2.1.0-wx-org4.chainmaker.org/log/system.log
    
  2. 合约环境镜像

    # 拉取镜像
    docker pull chainmakerofficial/chainmaker-go-contract:2.1.0
    
    docker run -d --name chainmaker-go-contract -v /home/river/go/src/chainmaker.org/chainmaker-go-contract/:/home chainmakerofficial/chainmaker-go-contract:2.1.0 bash -c "while true; do echo hello world; sleep 5;done"
    
  3. 编译合约

    # 进入容器内部
    docker exec -it chainmaker-go-contract bash
    cd /home/
    # 解压缩合约SDK源码
    tar xvf /data/contract_go_template.tar.gz
    cd contract_tinygo
    # 编译main.go合约
    sh build.sh
    # 生成合约的字节码文件在
    /home/contract_tinygo/chainmaker-contract-go.wasm
    
CMC 测试
  1. 编译 cmc 工具

    cd /home/river/go/src/chainmaker.org/chainmaker-go/tools/cmc
    go mod tidy
    go build
    
    #拷贝sdk的配置文件和示例里cmc命令行需要使用的文件
    cp -r ../../build/crypto-config/ ./testdata
    
  2. 创建合约

    ./cmc client contract user create \
    --contract-name=fact \
    --runtime-type=WASMER \
    --byte-code-path=./testdata/claim-wasm-demo/rust-fact-2.0.0.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="{}"
    
  3. 执行合约

    ./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
    
  4. 查询合约

    ./cmc client contract user get \
    --contract-name=fact \
    --method=find_by_file_hash \
    --sdk-conf-path=./testdata/sdk_config.yml \
    --params="{\"file_hash\":\"ab3456df5799b87c77e7f88\"}"
    

基于长安链的艺术品交易、食品溯源、通证、绿证等设计的环境部署,可供参考。

你可能感兴趣的:(区块链,fabric,Go,区块链)