【0基础学习Substrate】Substrate智能合约开发 | 使用rust编写智能合约 | 部署Ink合约

本文参考substrate官网给出的合约创建教程:https://docs.substrate.io/tutorials/smart-contracts/prepare-your-first-contract/

更新rust环境

  1. 更新rust环境:
rustup component add rust-src
  1. 验证是否安装了 WebAssembly :
rustup target add wasm32-unknown-unknown --toolchain nightly

如果已安装并且是最新的,该命令将显示类似于以下内容的输出:

info: component 'rust-std' for target 'wasm32-unknown-unknown' is up to date

安装cargo-contract工具

cargo-contract 是一个命令行工具,可以使用它来构建、部署和与 ink!合约交互。

  1. 添加 rust-src 编译器组件:
rustup component add rust-src
  1. 安装 cargo-contract(截至20230311,cargo-contract已更新至2.0版本,为配合本人项目,此处安装的是1.5版本,可根据自己要求选择版本进行安装)
cargo install --force --locked cargo-contract --version 2.0.0

安装过程中可能会遇到报错,尝试进行rustup更新,并再次安装:

rustup update
  1. 可以通过运行以下命令验证安装并学习可用的命令:
cargo contract --help

安装substrate合同节点

  1. 使用以下命令安装substrate合同节点:
cargo install contracts-node --git https://github.com/paritytech/substrate-contracts-node.git --tag v0.24.0 --force --locked

截至20230312最新的tag版本为0.24.0,若需下载最新版本,可在网址上找到最新的tag版本替代:https://github.com/paritytech/substrate-contracts-node/tags

安装过程中报如下错误:
在这里插入图片描述
按照提示安装protobuf-compiler:

sudo apt-get update
sudo apt-get install protobuf-compiler

安装过程中遇到无法连接github的问题,参考该文章成功解决:https://blog.csdn.net/voshv/article/details/127120400

  1. 安装结束后,使用以下命令检查是否安装成功:
substrate-contracts-node --version

创建智能合约项目

本节以“sharks”项目为例,创建一个智能合约项目

  1. 创建一个名为“sharks”的智能合约项目
cargo contract new sharks
  1. 使用vscode打开项目
cd sharks
code .

开启substrate合约节点

开启substrate合约节点:

substrate-contracts-node --log info,runtime::contracts=debug 2>&1

开启成功会显示如下图信息:
在这里插入图片描述

上传Ink!合约代码

  1. 不关闭substrate合约节点的终端,新建一个终端,编译该合约:
cd sharks
cargo +nightly contract build

编译过程中可能遇到以下报错:

  • 报错1:
    在这里插入图片描述
    根据提示安装cargo-dylint即可:
cargo install cargo-dylint
  • 报错2:
    在这里插入图片描述
    根据提示安装binaryen:
sudo apt-get install binaryen
  1. 部署合约
    打开浏览器,访问: https://polkadot.js.org/apps/#/explorer
    点击左上角图标:
    在这里插入图片描述
    在展开的菜单中点击development:
    在这里插入图片描述
    点击local node:
    在这里插入图片描述
    点击转换:
    在这里插入图片描述
    点击“合约”:
    在这里插入图片描述
    选择“upload & deploy code”:
    在这里插入图片描述
    找到需要部署的.contract文件:
    在这里插入图片描述
    点击继续:
    在这里插入图片描述
    设置完成后,点击部署:
    在这里插入图片描述
    部署成功:
    在这里插入图片描述

调用已部署的ink!合约

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值