长安链GO语言智能合约编写与编译

傷城~ 2024-05-08 07:10 133阅读 0赞

拉取镜像

  1. docker pull chainmakerofficial/chainmaker-docker-go-contract:v2.2.1

创建工作目录$WORK_DIR

例如/data/workspace/contract,挂载到docker容器中以方便后续进行必要的一些文件拷贝。

  1. mkdir -p /data/workspace/contract

启动容器

  1. $ docker run -it --name chainmaker-docker-go-contract -v /data/workspace/contract:/home chainmakerofficial/chainmaker-docker-go-contract:v2.2.1 bash

启动容器后,会自动进入容器的根目录。

拷贝模板

进入容器的/data目录下有一个go语言的智能合约模板,将至拷贝到/home目录(意味着同时拷贝到了宿主机的挂载/data/workspace/contract目录下)

  1. # cd /data/
  2. # ls
  3. admin1.sign.crt contract_docker_go_template.tar.gz
  4. # cp contract_docker_go_template.tar.gz /home

再将服务器/data/workspace/contract目录下的contract_docker_go_template.tar.gz拷贝到开发智能合约的电脑下,解压即可获取contract_docker_go的一个智能合约开发demo项目。或者下载官方的contract-sdk-docker-go项目。

Sign in · ChainMaker欢迎使用长安链开源平台favicon.icohttps://git.chainmaker.org.cn/chainmaker/contract-sdk-docker-go

编写合约

contract_docker_go的合约项目中,主要需要修改的就是main.go。根据自己的智能合约开发需求,重新编写或修改main.go。

编译和压缩合约

首先将编写好的contract_docker_go项目源文件重新拷贝回服务器/data/workspace/contract,然后再次进入chainmaker-docker-go-contract容器中,对应的容器目录为/home/contract_docker_go

  1. $ cd /home
  2. $ cd contract_docker_go
  3. $ ./build.sh
  4. please input contract name, contract name should be same as name in tx:
  5. <contract_name> #此处contract_name必须和交易中的合约名一致
  6. please input zip file:
  7. <zip_file_name> #建议与contract_name保持一致(不用加文件后缀)
  8. ...

编译,压缩好的文件位置在.

  1. /home/contract_docker_go/<contract_name>.7z

成功后,可将.7z压缩包拷贝到长安链节点环境使用cmc命令部署,或者使用sdk创建智能合约。具体方式可参考另一篇博客长安链GO语言智能合约环境搭建及使用icon-default.png_t_M5H6http://t.csdn.cn/8DNaN

发表评论

表情:
评论列表 (有 0 条评论,133人围观)

还没有评论,来说两句吧...

相关阅读

    相关 区块 智能合约 简介

    根据谷歌趋势数据显示,目前,程序员对智能合约编程的兴趣已经处于历史最高水平,其中中国高居全球榜首,随着区块链技术的发展,相信日后智能合约将会与我们的生活密切相关,今天就为大家介