区块链入门教程(8)--智能合约转译

1. Go环境配置

#下载
mkdir /opt/go
wget https://golang.google.cn/dl/go1.17.8.linux-amd64.tar.gz
sudo tar -zxvf go1.17.8.linux-amd64.tar.gz
mkdir /opt/go/goProject
#配置环境变量
sudo vim /etc/profile
export GOROOT=/opt/go
export GOPATH=/opt/go/goProject
export GOPROXY=https://goproxy.cn
export PATH=$PATH:$GOROOT/bin
#生效
source /etc/profile

2. 创建工作目录

mkdir /opt/fisco/goWorkSpace

3. 下载go SDK

apt install git # 如果没有
cd /opt/fisco/goWorkSpace
git clone https://gitee.com/FISCO-BCOS/go-sdk.git

4. 创建工程

cd go-sdk
mkdir helloworld && cd helloworld
touch HelloWorld.sol

5. 编写合约

pragma solidity ^0.4.25;

contract HelloWorld {
    
    
    string value;

    constructor() public {
    
    
        value = "Hello, World!";
    }

    function get() public view returns (string memory) {
    
    
        return value;
    }

    function set(string v) public {
    
    
        value = v;
    }
}

6. 安装编译器

cd /opt/fisco/goWorkSpace/go-sdk/helloworld
# 该指令在helloworld文件夹中执行
bash ../tools/download_solc.sh -v 0.4.25

在这里插入图片描述

7. 编译生成go文件

# 该指令在helloworld文件夹中执行
./solc-0.4.25 --bin --abi -o ./ ./HelloWorld.sol

在这里插入图片描述

8. 构建go-sdk的代码生成工具abigen

apt install gcc #如果没有
# 该指令在helloworld文件夹中执行,编译生成abigen工具
go build ../cmd/abigen

构建后,目录中存在工具:
在这里插入图片描述

9. 编译生成go文件

# 该指令在helloworld文件夹中执行
./abigen --bin ./HelloWorld.bin --abi ./HelloWorld.abi --pkg helloworld --type HelloWorld --out ./HelloWorld.go

最后保证有以下六个文件:
HelloWorld.abi、HelloWorld.bin、HelloWorld.go、HelloWorld.sol、solc-0.4.25、abigen
截图为:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/woshisangsang/article/details/127587105