Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
DaviRain-Su committed Aug 9, 2023
1 parent b50d066 commit d831c2a
Showing 1 changed file with 136 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sidebar_class_name: green

本地设置需要几个步骤,但它更加强大 - 你基本上将在你的设备上运行一个本地版本的Solana网络。这带来了许多好处,包括几乎无限的SOL。

这个设置有两个主要部分 -
这个设置有两个主要部分

- Rust编译器
- Solana命令行界面
Expand Down Expand Up @@ -74,13 +74,13 @@ Commitment: confirmed

有趣!以下是每个词的意思:

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

您可以使用 config set --url 命令来更改 RPC URL :
您可以使用 `config set --url` 命令来更改 RPC URL :


```bash
Expand Down Expand Up @@ -119,4 +119,132 @@ solana-keygen new --outfile ~/<FILE_PATH>
```bash
solana config set --keypair ~/<FILE_PATH>
```
获取当前默认密钥对的 publickey

获取当前默认密钥对的 `publickey`

```bash
solana address
```

获取当前默认密钥对的SOL余额

```bash
solana balance
```

空投到当前默认密钥对

```bash
solana airdrop 2
```

确保你将这些密钥文件保存安全,不要在测试和部署中使用相同的密钥对!你可不想因为不小心将密钥对推送到公共的 GitHub 仓库而丢失所有精美的 NFT。

**本地验证器**

Solana CLI带有一个方便的命令,可以快速启动本地验证节点。这类似于Solana网络的本地版本,您可以用它来测试您的程序。与部署到Devnet相比,它速度更快,而且您可以在不花费任何Devnet SOL的情况下使用它来测试您的程序。

您可以使用以下命令启动本地验证器:

```bash
solana-test-validator
```

在Windows上的WSL中,在尝试运行验证器之前,您需要运行此命令:

```bash
cd ~
```

我们正在切换目录到 `~` ,这样我们就不会在WSL内部的已挂载的Windows映像中了。这样修复了一些会出错的路径问题。


接下来,打开另一个终端窗口并输入

```bash
solana logs
```

这将为您提供本地网络的所有交易日志。在您进行交易之前,这里不会发生任何事情,所以打开第三个终端窗口并运行。


```bash
solana address
solana airdrop 999 YOUR_ADDRESS
```

你应该能看到空投交易的到来!挺酷的,对吧?

你可以通过日志和本地验证器做很多酷炫的事情,比如筛选特定程序的日志。点击[这里](https://docs.solana.com/cli?utm_source=buildspace.so&utm_medium=buildspace_project)查看更多酷炫的内容。

需要记住的一件事是,只要你需要网络运行,就必须保持终端窗口 `solana-test-validator` 一直运行。如果关闭它,网络也会关闭。在Windows上,您可以使用 `CTRL + C` 退出,而在Mac上,您可以使用 `CMD + C` 退出。

## 🦾 本地程序部署

既然你已经掌握了所有本地开发工具,那么让我们试着在本地部署一个程序吧!

首先,我们需要创建一个Solana程序。这就是我们安装Rust的原因。我们只需要一个简单的Rust项目:

```bash
cargo new --lib local-program
cd local-program
code .
```

Cargo就像Rust的NPM。它会生成我们所需的所有样板代码。如果 `code .` 无法打开VS Code,请不要担心,只需在代码编辑器中打开该目录的根目录即可。



打开 `Cargo.toml` 并添加Solana依赖项,将这个Rust项目变成一个Solana程序:

```toml
[package]
name = "<PROJECT_DIRECTORY_NAME>"
version = "0.1.0"
edition = "2021"

[features]
no-entrypoint = []

[dependencies]
solana-program = "~1.8.14"

[lib]
crate-type = ["cdylib", "lib"]
```

我们不能只部署一个空文件,所以打开 `lib.rs` 并添加以下内容:

```rust
use solana_program::{
account_info::AccountInfo,
entrypoint,
entrypoint::ProgramResult,
pubkey::Pubkey,
msg,
};

entrypoint!(process_instruction);

pub fn process_instruction(
_program_id: &Pubkey,
_accounts: &[AccountInfo],
_instruction_data: &[u8],
) -> ProgramResult {
msg!("Hello local Solana network!!");
Ok(())
}
```

这就是我们所需要的!接下来,我们需要构建这个。Cargo配备了一种特殊类型的构建命令,与Solana加载器相匹配:

```bash
cargo build-sbf
```


第一次可能需要几分钟,之后速度会更快。你会注意到出现了一个名为“target”的新文件夹。这是编译好的代码,准备好部署。要部署这个程序,你可以使用命令 `solana program deploy <PATH>` ,指向你的“target”文件夹,对我来说是

```bash
solana program deploy ~/Desktop/solana-core/local-program/target/deploy/local_program.so
```

1 comment on commit d831c2a

@vercel
Copy link

@vercel vercel bot commented on d831c2a Aug 9, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.