一、合约编写
ChainMaker Golang 合约 SDK 支持通过 go.mod 的方式引用,可直接使用 go get 引用,示例如下:
go get chainmaker.org/chainmaker/contract-sdk-go/v2@v2.3.3
执行完成后,即可调用合约 SDK 的方法,编写合约。
二、合约编译
当合约编写完成后,则需要编译合约,具体教程如下:
1. 在合约工程中添加编译脚本 build.sh 搭建编译环境。
#!/bin/bash# check if used for x86 system or arm system# x86 system arch = "x86"# arm syetem arch = "arm"arch="x86"contractName=$1if [[ ! -n $contractName ]] ;then echo "contractName is empty. use as: ./build.sh contractName" exit 1fiif [[ ${arch} == 'x86' ]];then CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o $contractNameelse CGO_ENABLED=0 GOOS=linux GOARCH=arm64 GOARM=7 go build -ldflags="-s -w" -o $contractNamefi7z a $contractName $contractNamerm -f $contractName
2. 编译撰写好的智能合约。
其中 ContractName 请替换成需要安装的合约名称。
./build.sh $contractName
编译成功后可在当前目录得到文件<contract_name>.7z,之后可在 TBaaS 控制台 上传并部署。
用户使用 Go(DockerGo) 编写智能合约后,可以把源代码更新到 main.go 文件中并重新编译,可得到新的智能合约的压缩文件,并前往 TBaaS 控制台 上传并部署。更多关于使用 Go(DockerGo) 开发长安链智能合约的详情,可参考长安链页面 使用 Golang 进行智能合约开发。