[stacks 区块链中文开发指南] 了解如何部署并运行 regtest 节点

2021-09-08 18:03:48 +08:00
 gitandgit

英文教程原链接: https://docs.stacks.co/understand-stacks/running-regtest-node

了解如何部署并运行 regtest 节点

请注意:Stacks 2.0 regtest 网络类似于 testnet 测试网络,但是 BTC 和 STX 区块的生成速度要快得多,每 2 分钟生成 1 个区块。使其成为快速开发的理想选择。

警告:在将 stacks 节点与 regtest 网络同步时,github 上有一个未解决的issue可以解决性能下降问题。在此 issue 关闭之前,同步 regtest 网络上的节点可能比同步测试网或主网节点需要更长的时间。如果只使用 regtest API,这个 issue 应该不会影响到你。

本教程将引导您完成以下步骤:

要求

为了运行一个节点,需要考虑一些软件和硬件要求。

硬件

运行节点没有专门的硬件要求。例如,人们已经成功地在树莓派上运行节点。最低硬件要求可以随着项目的性质而改变,节点部署应该考虑一些因素:

考虑到这些因素,我们建议使用基于通用规范的硬件,类似于 GCP E2 机器标准 2AWS EC2 t3.large 标准

还建议使用可以公开路由的 IP 运行节点,这样网络中的其他节点将能够连接到它。

软件

如果使用 Linux,可能需要手动安装 libssl-dev 等软件包。在命令行中,运行以下命令以获取所有包:

sudo apt-get install build-essential cmake libssl-dev pkg-config

确保你已经安装了 Rust 。如果您使用的是 macOS 、Linux 或其他类 Unix 操作系统,请运行以下命令。如果您使用不同的操作系统,请按照官方 Rust 安装指南进行操作。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

如果您刚刚安装了 Rust,系统会提示您运行以下命令以使 cargo 命令可用:

source $HOME/.cargo/env

从预先构建的二进制文件安装节点

第 1 步:获取可分发的文件

最新版本下载并解压缩与您的环境对应的可分发文件。如果您在 Windows 上运行,请按照我们在 Windows 上安装节点的说明进行操作。

如果您在 Windows 系统上运行,请按照我们在 Windows 上安装节点的教程进行操作。

第 2 步:运行二进制文件

要运行 stacks-node 二进制文件,请执行以下操作:

./stacks-node krypton

现在。您的节点现在应该可以连接到 regtest 网络。您的节点将在生成新区块时接收新区块,您可以使用Stacks 节点 RPC API 发送交易、获取合约和帐户信息等。

从源代码安装节点

如果主分支中有一些尚未发布的更新,或者如果您的环境没有预构建的二进制文件,您可能希望从源代码构建和安装。

第一步:安装节点

克隆这个库:

git clone https://github.com/blockstack/stacks-blockchain.git; cd stacks-blockchain

更改以下值以反映正在构建的版本、分支和源代码的 git 提交,以确保准确性:

# The following values are just an example
export STACKS_NODE_VERSION=2.0.9
export GIT_BRANCH=master
export GIT_COMMIT=e7f178b

运行以下命令安装 Stacks 节点:

cargo build --workspace --release --bin stacks-node
# binary will be in target/release/stacks-node

要使用额外的调试符号来安装 Stacks 节点,请运行:

cargo build --workspace --bin stacks-node
# binary will be in target/debug/stacks-node

此过程将需要几分钟才能完成

第二步:运行节点

您已准备好运行连接到 regtest 网络的节点。如果安装时没有调试符号,请运行:

target/release/stacks-node krypton

如果安装有调试符号,请运行:

target/debug/stacks-node krypton

第一次运行时,您会看到一些日志,表明正在编译 Rust 代码。完成后,您应该会看到一些类似以下内容的日志:

INFO [1588108047.585] [src/chainstate/stacks/index/marf.rs:732] First-ever block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206

在 Windows 系统上运行 regtest 节点

前提条件

在开始之前,请检查您的电脑上是否安装了以下必要的软件

提示:使用上述链接安装 Microsoft Visual Studio 开发工具时,请在出现提示时选择 C++ 开发工具选项。

可选项依赖

下载二进制文件并运行跟随节点

注意:请确保下载新的二进制文件,并在新版本可用时按照以下步骤操作。

首先,访问 Stacks Github 版本库。从各种二进制列表中,单击以下载 Windows 二进制文件。请参考下图。

接下来,单击保存文件,并在弹出的窗口中点击确定按钮。

保存后,提取二进制文件。从解压缩二进制文件的文件夹中打开命令提示符并执行以下命令:

stacks-node krypton
# This command will start the regtest follower node.

请注意:第一次启动节点时,windows Defender 会弹出允许访问的信息。如果是,请点击允许访问以运行节点。

要在开启调试的情况下,同时执行 Stacks 节点,请运行:

set RUST_BACKTRACE=full
set STACKS_LOG_DEBUG=1
stacks-node krypton
# This command will execute the binary and start the follower node with debug enabled.

第一次运行时,您会看到一些日志,表明正在编译 Rust 代码。完成后,您应该会看到一些类似于以下内容的日志:

INFO [1588108047.585] [src/chainstate/stacks/index/marf.rs:732] First-ever block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206

现在。您的节点现在已连接到 regtest 网络。

其他部署方法:使用 Docker 运行 regtest 网络

或者,您可以使用 Docker 运行 regtest 节点。

确保您的机器上已经安装了 Docker 。

docker run -d \
  --name stacks_follower \
  -p 20443:20443 \
  -p 20444:20444 \
  blockstack/stacks-blockchain \
  stacks-node krypton

要开启调试日志记录,请添加 ENV VARS RUST_BACKTRACE="full" 和 STACKS_LOG_DEBUG="1"。

您可以使用以下命令查看节点日志:

docker logs -f stacks_follower

其他方法:使用 Helm 在 Kubernetes 中运行

此外,您还可以使用 stacks-blockchain Helm chart 在 Kubernetes 集群中运行 regtest 节点。 请确保您的机器上已经安装了以下工具:

minikube(仅在建立本地 Kubernetes 集群时才需要) kubectl helm 要使用发行版名称 my-release 安装 chart 并以跟随者身份运行节点:

minikube start # Only run this if standing up a local Kubernetes cluster
helm repo add blockstack https://charts.blockstack.xyz
helm install my-release blockstack/stacks-blockchain

您可以使用以下命令查看节点日志:

kubectl logs -l app.kubernetes.io/name=stacks-blockchain

有关 Helm 图表和配置选项的更多信息,请参阅图表主页

其他:在 regtest 网络挖 Stacks 代币

Stacks 区块链 regtest 网络目前不提供挖矿功能。

742 次点击
所在节点    区块链
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/800686

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX