Solana Hello World: 安装与开发指南

  • 0xE
  • 发布于 2025-03-21 14:59
  • 阅读 650

本系列文章将带你完成 Solana 开发的入门流程,从环境配置到运行一个简单的 Anchor 程序(Hello World)。我们会涵盖工具安装、项目初始化、构建和测试,并提供经验性建议。

笔者前段时间把 RareSkills 的 Solana 60 天课程学习了一遍。大概用了一周左右的时间,现在想把过程中的笔记和代码分享出来。文章的配套代码我上传到了 github 。笔记我将每天更新 2 到 3 篇。欢迎多多收藏、点赞和关注。

本系列文章将带你完成 Solana 开发的入门流程,从环境配置到运行一个简单的 Anchor 程序(Hello World)。我们会涵盖工具安装、项目初始化、构建和测试,并提供经验性建议。

环境准备

安装 Rust

Rust 是 Solana 和 Anchor 的核心依赖,默认安装最新稳定版即可满足大多数需求。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • 验证:运行 rustc --version。

指定版本(如 rustc 1.78.0) 如果项目需要特定版本,执行:

rustup install 1.78.0
rustup default 1.78.0
rustc --version  # 确认版本为 1.78.0

安装 Yarn

Yarn 用于运行 Anchor 的单元测试,前提是你已安装 Node.js(建议 18.x 或 20.x)。

corepack enable  # 激活 Node.js 自带的 Corepack
yarn --version   # 验证安装

安装 Solana CLI

Solana CLI 是与区块链交互的核心工具,推荐使用 stable 通道以确保稳定性。

sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
  • 环境配置:安装后运行 source ~/.profile 或重启终端。
  • 验证:运行 solana --version,应返回类似 solana-cli 1.18.25。

指定版本(如 1.18.17) 若需特定版本:

sh -c "$(curl -sSfL https://release.anza.xyz/v1.18.17/install)"
solana --version   # 确认版本

安装 Anchor

Anchor 是 Solana 的智能合约框架,简化程序开发。

cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
avm install latest
avm use latest
anchor --version  # 验证安装
  • 补充说明:avm 是 Anchor 的版本管理工具,类似 rustup,便于切换版本。

指定版本(如 0.29.0) 若需特定版本:

avm install 0.29.0
avm use 0.29.0
anchor --version  # 应显示 anchor-cli 0.29.0

创建并构建 Hello World 程序

初始化项目

在终端运行:

anchor init hello_world
cd hello_world
  • 生成内容:此命令创建项目结构,包括 Anchor.toml 和程序代码。

修改程序代码

编辑 programs/hello_world/src/lib.rs:

use anchor_lang::prelude::*;

declare_id!("AcCKUb5GBSGgX1dz6GMTyvZwSBsnnzZJigac9kB7cfXr");

#[program]
pub mod hello_world {
    use super::*;

    pub fn initialize(ctx: Context<Initialize>) -> Result<()> {
        msg!("Hello, world!");
        Ok(())
    }
}

#[derive(Accounts)]
pub struct Initialize {}
  • 说明:msg! 记录日志,Initialize 是空的账户上下文,仅用于演示。

同步 Program ID

新项目生成的 declare_id! 与代码中的可能不一致,需同步:

anchor keys sync
  • 说明:target/deploy/hello_world-keypair.json 对应的公钥将同步到 lib.rs 和 Anchor.toml 中。

启动本地验证节点

在新终端运行:

solana-test-validator
  • 作用:启动本地测试网络,模拟 Solana 集群。

构建与测试

在项目目录运行:

anchor build
anchor test --skip-local-validator
  • 参数说明:--skip-local-validator 表示使用已运行的本地节点,而非 Anchor 自启节点。
  • 为何如此:手动运行 solana-test-validator 便于调试日志和状态查询。若无本地节点,移除此标志,Anchor 会自动启动一个。

查看结果与日志

日志文件

测试完成后,检查 .anchor/program-logs/ 中的日志:

Transaction executed in slot 99:
  Signature: 2WA64cJjT1W8Y7XCwLa62kD3pFQ17vfjnZxQPDwJnpn4fZb8rQVVgVnS4ad5vgZSpbcrxbvRf9Pbt4951qfhdNrK
  Status: Ok
  Log Messages:
    Program log: Hello, world!
  • 解读:Hello, world! 表示程序成功执行。

【笔记配套代码】 https://github.com/0xE1337/rareskills_evm_to_solana 【参考资料】\ https://learnblockchain.cn/column/119 https://www.rareskills.io/solana-tutorial

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
0xE
0xE
0x59f6...a17e
17年进入币圈,Web3 开发者。刨根问底探链上真相,品味坎坷悟 Web3 人生。