开发指南

智能合约开发(Solidity)

最近更新时间:2022-06-22 16:19:59

本章节主要描述使用 Solidity 进行 ChainMaker 合约编写的方法,主要面向于使用 Solidity 进行 ChainMaker 的合约开发的开发者。

注意

安装 Solidity 合约时,需将 .bin 和 .abi 两个合约文件一起上传。

使用 Docker 镜像进行合约开发

ChainMaker 官方已经将容器发布至 docker hub

  1. 拉取镜像
    代码示例如下:

    docker pull chainmakerofficial/chainmaker-solidity-contract:2.0.0
    请指定您本机的工作目录 $WORK_DIR,例如 /data/workspace/contract,挂载到 docker 容器中以方便后续进行必要的一些文件拷贝。
    docker run -it --name chainmaker-solidity-contract -v $WORK_DIR:/home chainmakerofficial/chainmaker-solidity-contract:2.0.0 bash
    # 或者先后台启动
    docker run -d  --name chainmaker-solidity-contract -v $WORK_DIR:/home chainmakerofficial/chainmaker-solidity-contract:2.0.0 bash -c "while true; do echo hello world; sleep 5;done"
    # 再进入容器
    docker exec -it chainmaker-solidity-contract bash

  2. 编译合约
    代码示例如下:

    cd /home/
    # 解压缩合约SDK源码
    tar xvf /data/contract_solidity_template.tar.gz
    cd contract_solidity
    # 编译token.sol合约
    solc --abi --bin --hashes --overwrite -o . token.sol
    solc为编译命令, –abi选项指示生成abi文件,–bin指示生成字节码文件, –hashes指示生成函数签名文件, –overwrite指示如果生成文件已存在则覆盖, -o 指示编译生成的文件存放的目录。
    生成合约的字节码文件路径如下:
    /home/contract_solidity/Token.bin
    Token.bin 文件可在 TBaaS 控制台 上传并部署。

  3. 合约开发框架描述
    解压缩 contract_solidity_template.tar.gz 后,文件描述如下:

    /home/contract_solidity# ls -l
    total 4
    -rw-rw-r-- 1 1000 1000 2816 Apr 29  2021 token.sol              # token合约
    用户使用 Solidity 编写智能合约后,可以把源代码更新到 token.sol 文件中并重新编译,可得到新的智能合约的字节码,并前往 TBaaS 控制台 上传并部署。更多关于使用 Solidity 开发长安链智能合约的详情,可参考长安链官网 使用 Solidity 进行智能合约开发

目录