Skip to main content

本地开发环境配置

概述

本地开发的基本流程如下

  1. 安装 RustSolana CLI
  2. 使用Solana CLI,你可以使用solana-test-validator命令运行本地测试验证器,初始化账户等基本操作
  3. 使用 cargo build-sbfsolana program deploy 命令在本地构建和部署程序
  4. 使用 solana logs 命令查看程序日志

本地环境配置

Solana Program 使用Rust 编写,调试运行。建议使用Unix 系列系统: Mac , Linux 等。 如果很不幸你使用的是Windows,建议使用 WSL 下载Ubuntu ,并在其中完成运行。

在Windows上设置(带有Linux)

下载Windows子系统Linux(WSL)

如果你使用的是Windows电脑,建议使用Windows子系统Linux(WSL)来构建你的Solana程序。

打开管理员权限的PowerShellWindows命令提示符,检查Windows版本

winver

如果你使用的是Windows 10版本2004及更高版本(Build 19041及更高版本)或Windows 11,请运行以下命令。

wsl --install

如果你正在使用较旧版本的Windows,请按照这里的说明进行操作。

你可以在这里阅读更多关于安装WSL的信息。

下载Ubuntu

接下来,在这里下载UbuntuUbuntu提供了一个终端,可以让你在Windows电脑上运行Linux。这就是你将运行Solana CLI命令的地方。

下载 Rust(适用于 WSL)

接下来,打开Ubuntu终端并使用以下命令下载适用于WSLRust。你可以在此处阅读有关下载Rust的更多信息。

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

下载 Solana CLI

现在我们准备下载适用于LinuxSolana CLI。请在Ubuntu终端中运行以下命令。你可以在此处阅读有关下载Solana CLI的更多信息。

sh -c "$(curl -sSfL https://release.solana.com/v1.16.10/install)"

在 macOS 上进行设置

下载 Rust

首先,按照这里的说明下载Rust

下载Solana CLI

接下来,在终端中运行以下命令下载Solana CLI

sh -c "$(curl -sSfL https://release.solana.com/v1.16.10/install)"

你可以在这里了解更多关于下载Solana CLI的信息。

Solana CLI基础

Solana CLI是一个命令行界面工具,提供了一系列命令,用于与Solana集群进行交互。

在本课程中,我们将介绍一些最常见的命令,但你始终可以通过运行solana --help来查看所有可能的Solana CLI命令列表。

Solana CLI 配置

Solana CLI存储了一些配置设置,这些设置会影响某些命令的行为。你可以使用以下命令查看当前的配置:

solana config get

solana config get命令将返回以下内容:

  • 配置文件 - Solana CLI所在的文件位于你的计算机上
  • RPC URL - 你正在使用的端点,将你连接到本地主机、开发网络或主网络
  • WebSocket URL - 监听来自目标集群的事件的WebSocket(在设置RPC URL时计算)
  • 密钥对路径 - 在运行Solana CLI子命令时使用的密钥对路径
  • Commitment - 提供了网络确认的度量,并描述了一个区块在特定时间点上的最终性程度

你可以随时使用solana config set命令更改你的Solana CLI配置,然后跟上你想要更新的设置。

最常见的更改将是你要定位的集群。使用solana config set --url命令更改RPC URL

# localhost
solana config set --url localhost

# devnet
solana config set --url devnet

# mainnet-beta
solana config set --url mainnet-beta

caution

由于某些你知道的原因,devnet 或者 mainnet 可能访问不佳。建议开发过程中使用 localhost 网络。最后需要部署应用的使用,建议使用 quicknode 的rpc 节点。

同样地,你可以使用solana config set --keypair命令来更改密钥对路径。当运行命令时,Solana CLI将使用指定路径下的密钥对。

solana config set --keypair ~/<FILE_PATH>

测试验证器

你会发现在测试和调试时运行本地验证器比部署到开发网络更有帮助。

你可以使用solana-test-validator命令运行本地测试验证器。该命令会创建一个持续运行的进程,需要单独的命令行窗口。

Stream program logs

通常在打开一个新的控制台并在测试验证器旁边运行solana logs命令会很有帮助。这将创建另一个持续进行的进程,用于流式传输与你配置的集群相关的日志。

如果你的CLI配置指向本地主机,则日志将始终与你创建的测试验证器相关联,但你也可以从其他集群(如DevnetMainnet Beta)流式传输日志。当从其他集群流式传输日志时,你需要在命令中包含一个程序ID,以限制你所看到的日志仅针对你的特定程序。

密钥相关

你可以使用solana-keygen new --outfile命令生成一个新的密钥对,并指定文件路径以存储该密钥对。

solana-keygen new --outfile ~/<FILE_PATH>

有时候你可能需要检查你的配置指向哪个密钥对。要查看当前在solana config中设置的密钥对的公钥,请使用solana address命令。

solana address

要查看在Solana配置中设置的当前密钥对的SOL余额,请使用solana balance命令。

solana balance

要在Devnetlocalhost上进行SOL的空投,请使用solana airdrop命令。请注意,在Devnet上,每次空投限制为2个SOL。

solana airdrop 2

在你开发和测试本地环境中的程序时,很可能会遇到由以下原因引起的错误:

  • 使用错误的密钥对
  • 没有足够的SOL来部署你的程序或执行交易
  • 指向错误的集群

到目前为止,我们已经介绍了一些CLI命令,这些命令应该能帮助你快速解决那些问题。

hello world 程序

挑战

现在轮到你独立构建一些东西了。尝试创建一个新的程序,将你自己的消息打印到程序日志中。这次将你的程序部署到Devnet而不是本地主机。

记得使用solana config set --url命令将你的RPC URL更新为Devnet

只要你将连接和Solana ExplorerURL更新为指向Devnet而不是localhost,你就可以使用与演示中相同的客户端脚本来调用该程序。

let connection = new web3.Connection(web3.clusterApiUrl("devnet"));
console.log(
`Transaction: https://explorer.solana.com/tx/${transactionSignature}?cluster=devnet`
);

你还可以打开一个单独的命令行窗口,并使用solana logs | grep " invoke" -A 。在Devnet上使用solana logs时,你必须指定程序ID。否则,solana logs命令将返回来自Devnet的持续日志流。例如,你可以按照以下步骤监视对Token程序的调用,并显示每个调用的前5行日志:

solana logs | grep "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke" -A 5

官方参考文档