1 前言
前面文章介绍了在Substrate上开发智能合约,包括使用原生的ink!语言开发ERC20智能合约,以及将以太坊的Solidity智能合约跑在Substrate链上,在本文将进一步学习在Substrate链上开发一个自定义的区块链存证dApp。
本文内容参考:https://substrate.dev/docs/en/tutorials/build-a-dapp/
2 前置准备
2.1 rust安装
Substrate是由rust语言开发,首先需要安装rust环境。
2.1.1 软件安装
Rust的安装比较简单,执行如下一条命令即可,该命令将自动完成软件包的下载、安装、环境变量设置:
$ curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装成功后,会显示如下日志
stable installed - rustc 1.45.1 (c367798cf 2020-07-26)
Rust is installed now. Great!
安装完成后,在~/.cargo/bin目录可以看到相关命令行工具
.cargo/bin/
├── cargo
├── cargo-clippy
├── cargo-fmt
├── cargo-miri
├── clippy-driver
├── rls
├── rustc
├── rustdoc
├── rustfmt
├── rust-gdb
├── rust-lldb
└── rustup
2.1.2 环变设置
执行下面命令,即将export PATH=“ H O M E / . c a r g o / b i n : HOME/.cargo/bin: HOME/.cargo/bin:PATH”,追加到~/.bashrc中
$ cat ~/.cargo/env >> ~/.bashrc
执行下面命令,使得添加的环境变量生效
$ . ~/.bashrc
可执行如下命令查看安装版本
$ rustc --version
rustc 1.45.1 (c367798cf 2020-07-26)
2.1.3 配套安装
(1) Racer安装
Racer是一个由Rust爱好者提供的Rust自动补全和语法分析工具,被用来提供基本的补全功能和自定义跳转功能。本身完全由Rust写成,补全功能比较完善。
· 安装命令
$ cargo install racer
…
Finished release [optimized] target(s) in 2m 44s
Installing /home/jason/.cargo/bin/racer
Installed package racer v2.1.36
(executable racer
)
若安装报错:error[E0554]: #![feature] may not be used on the stable release channel
请先执行下面命令,切换到nightly版本后,再进行安装:
$ rustup install nightly
$ rustup default nightly
$ rustc --version
rustc 1.47.0-nightly (6c8927b0c 2020-07-26)
· 查看版本
$ racer -V
racer 2.1.36
(2) 源码下载
为了对Rust标准库进行补全,Racer需要获取Rust源码路径。通过rustup获取源码的好处是rustup update可以随时获取最新代码
· 获取源码
$ rustup component add rust-src
info: downloading component ‘rust-src’
info: installing component ‘rust-src’
· 更新源码
$ rustup update
info: checking for self-u