PlatONE是由万向区块链与合作伙伴联合打造的支持隐私计算的区块链联盟链。本文主要介绍PlatONE Wasm合约开发环境配置方法; Wasm合约编译 及 Wasm合约部署及调用,方便大家对Wasm合约进行初步了解,快速掌握Wasm合约开发技巧。
1. 配置Wasm合约开发环境
获取最新稳定版的WASM合约发布包,并进行解压。
wget https://github.com/PlatONEnterprise/PlatONE-Go/releases/download/v0.9.0/BCWasm_linux_release.v0.9.0.tar.gz
# 进入BCWasm目录,然后定义路径:
cd BCWasm
export CONTRACTSSPACE=${PWD}
在${CONTRACTSSPACE}
目录下包含了合约编译所需的材料,合约源码目录为${CONTRACTSSPACE}/appContract
获取PlatONE最新稳定版的发布包,并进行解压。进入解压获得的PlatONE_linux目录,然后定义路径:
wget https://github.com/PlatONEnterprise/PlatONE-Go/releases/download/v0.9.0/PlatONE_linux_v0.9.0.tar.gz
tar -xzvf PlatONE_linux_v0.9.0.tar.gz
cd PlatONE_linux
export BIN_PATH=${PWD}/bin
⚠ 请确保 ${BIN_PATH}设置在当前的工作Shell,以让该环境变量生效。
2. 构建项目及编译合约
cd ${CONTRACTSSPACE}
# 1. 构建用户合约
./script/autoprojectForApp.sh . my_contract
# 2. 构建工程
./script/autoprojectForApp.sh .
# 3. 编译合约
cd build
make my_contract
2.1. 构建项目
第一步时,会在${CONTRACTSSPACE}/appContract
下构建新的合约目录my_contract
。
第二步时,会在${CONTRACTSSPACE}
下创建build
,并编译合约。
此时,build
目录下的结构如下所示
├── appContract
│ ├── appDemo
│ │ ├── appDemo.bc
│ │ ├── appDemo.cpp.abi.json ## 合约的abi文件
│ │ ├── appDemo.cpp.bc
│ │ ├── appDemo.s
│ │ ├── appDemo.wasm ## 合约的wasm字节码
│ │ ├── appDemo.wast
│ │ ├── CMakeFiles
│ │ ├── cmake_install.cmake
│ │ └── Makefile
│ ├── CMakeFiles
│ ├── cmake_install.cmake
│ ├── Makefile
│ └── my_contract
│ ├── CMakeFiles
│ ├── cmake_install.cmake
│ ├── Makefile
│ ├── my_contract.cpp.abi.json ## 合约的abi文件
│ ├── my_contract.bc
│ ├── my_contract.cpp.bc
│ ├── my_contract.s
│ ├── my_contract.wasm
│ └── my_contract.wast
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
└── Makefile
合约文件会通过脚本autoprojectForApp.sh
默认生成如下的源码,可以