http://www.7klian.com

Substrate 开拓系列 : 情况搭建

2020-05-31 19:34:44 〽️ Prometheus server started at 127.0.0.1:9615


2020-05-31 19:34:44 Starting BABE Authorship worker
./target/release/substrate --alice --chain local
git clone https://github.com/paritytech/substrate.git




运行多节点
2020-05-31 19:34:44 Database: RocksDb at /Users/emmett/Library/Application Support/substrate/chains/dev/db

[3] 可参考: https://www.substrate.io/kb/getting-started



$ echo 'export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup' >> ~/.bash_profile

设置好,别忘了点生存哦,毗连好,就可以看到当地网络的块高了,如下图:

编译 substrate

Substrate 自己是由 Rust 开拓, 也依赖许多其他的模块,Substrate编译需要先安装依赖。

[1] Polkadot:
https://learnblockchain.cn/categories/Polkadot








[source.tuna]


方法 2:手动安装

[4] brew:
https://brew.sh/


registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

2020-05-31 19:34:44 Native runtime: node-251 (substrate-node-1.tx1.au10)

节点依然下拉框拉到最下面,选择 Local Node(Own, 127.0.0.1:9944) , 地点前缀选:Substrate(generic) 如下图:



2020-05-31 19:34:44 version 2.0.0-rc2-12b6c5dbe-x86_64-macos
编辑 ~/.cargo/config 文件,添加以下内容:

在当地启动一个多节点毗连的网络也是可以的,可以先以alice的名义启动一个验证人节点:


Brew 安装库

cargo build --release
Rust 安装

[source.crates-io]


我的
情况是 Mac(其他平台可参考[3]), Mac 下安装软件包许多利用 brew[4] ,各人的电脑上应该都已经安装了,假如没可以可以参考这个链接[5]安装。

此刻可以利用 substrate 来启动网络了,substrate用许多个呼吁(参数),可利用./target/release/substrate --help查察用法。

约莫半小时,可以去喝个茶, 呈现以下提示就乐成了;


[6] Rustup:
https://rustup.rs/

利用 rustup 安装 Rust 语言
情况:

2020-05-31 19:34:44 Using default protocol ID "sup" because none is configured in the chain specs



curl
https://sh.rustup.rs -sSf | sh



利用 rustup 安装 rust 时,同样可以启用清华源,执行:


brew install openssl cmake llvm


我们需要用 rustup 安装 Rust, cargo 自己在安装 Rust 的时候就会自带安装,之后用 cargo 去安装 Rust 软件包(库)。




Substrate 官方提供了一个安装剧本,只需要利用下面一个呼吁就可以安装好编译Substrate所需要的全部依赖。

[5] 链接:
https://zhuanlan.zhihu.com/p/59805070

再(在另一个终端)启动另一个节点, 留意这里需要用 -d 来界说一个数据目次:
2020-05-31 19:34:44 Substrate Node

git clone
https://gitee.com/lbc-team/substrate.git
--chain local 暗示是一个当地的网络模式,之前我们是
开拓者模式,这个时候不会出块, 需要期待另一个节点插手才气出块。




2020-05-31 19:34:44 Role: AUTHORITY
brew 的下载源在海内下载是龟速,我们可以设置利用清华大学镜像站的源,设置方法是修改情况变量HOMEBREW_BOTTLE_DOMAIN,,譬喻下方法写入到 .bash_profile

[2] Substrate:
https://learnblockchain.cn/tags/Substrate

rustup 和 cargo 就像 nvm 和 npm 的区别。

默认时欣赏器是毗连当前的Polkadot CC1 候选主网,不外我们可以让他毗连到当地节点,点配置->选择节点及设置地点前缀, 要领如下:


rustup target add wasm32-unknown-unknown --toolchain nightly


在后头编译substrate, 需要安装大量的 Rust 依赖包,同样为了制止龟速会见的问题,设置一下cargo 源为清华大学镜像源:

./target/release/substrate --dev


References
wasm 今朝仅在 nightly 上支持,














2020-05-31 19:34:44 Node name: homely-volcano-9283
Substrate uses WebAssembly (Wasm), and you will need to configure your Rust compiler to use nightly to support this build target.


Rustup[6] 是 Rust 官方的跨平台 Rust 安装东西, cargo 是Rust 的包揽理东西。




substrate 启动后,会输出如:当前的客户端版本,节点名,数据库目次,节点身份 ID等等:

2020-05-31 19:34:44 Local node identity is: 12D3KooWEE4Gd4isn28sPsXQ3YBSPUqfpxmfVvKHzBxjWhEQPxV9 (legacy representation: QmVDyLimoKQjaGttsnvSdjLeJUkdxReUL6eDrF4LB7BL1h)
curl
https://getsubstrate.io -sSf | bash -s -- --fast

此刻用brew 安装openssl cmake llvm:


Rust 提供了三个版本渠道:nightly,beta,stable, 默认启用stable(不变版)。


方法 1:用官方剧本自动安装

运行 substrate 节点网络


Substrate 利用 Wasm 作为智能合约的运行情况,wasm 是一个虚拟机情况。最初是想为欣赏器提供一个高机能的执行情况,不外此刻也可以利用非欣赏器情况。

2020-05-31 19:34:44 Running in --dev mode, RPC CORS has been disabled.
先简朴先容一下Polkadot[1] 与Substrate[2] 。



./target/release/substrate --bob --chain local -d ./bob
rustup default stable


github.com 在海内也是龟速,因此我在 gitee.com fork 了一份,各人可以用以下呼吁 clone 代码:

好了, 已经踏入了Substrate开拓的第一步。
安装依赖项



编译完之后,在 /target/release/会生成 substrate 可执行文件。

rustup update nightly

2020-05-31 19:34:44 Highest known block at #173


进修Substrate 开拓的第一步就是情况
搭建,本文的方针是把Substrate编译出来,用 substrate 启动一个区块链开拓网络。

先 git clone substrate 的代码:


2020-05-31 19:34:45 Starting consensus session on top of parent 0x8c3fffd67f59db85fd468dc5a4386ccaf58dc2841ab0370f8d94b6f5413a511f

cd substrate
Polkadot 方针是成为一个毗连各区块链的区块链(网络),Substrate 是 Polkadot 生态中重要的一环, 他是一套东西与框架的荟萃,让我们以模块化的方法来构建本身的区块链。Polkadot自己也是基于 Subsstrate 建设的。





我们还可以测试一下转账成果:

2020-05-31 19:34:44 Chain specification: Development






Finished release [optimized] target(s) in 29m 46s


编译 substrate

有乐趣的同学可以打开:
https://getsubstrate.io 查察剧本详情。

2020-05-31 19:34:44 by Parity Technologies <admin@parity.io>, 2017-2020
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile





郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读