Solana笔记 01.安装环境

跟我一起从0开始学习Solana合约开发,一起实操,一起做项目。这是一个系列文章,系统地记录了我的学习笔记。

我准备从0开始学习solana合约开发,并记录这一过程中学习到的知识点、解决的错误。因为我已经有solidity的开发经验,所以我也会对比二者之间的区别,如果对你有用,可以关注这个系列文章。

小提示
学习solana只需要少量的rust知识,不需要系统学习rust。我会边学习边讲解最少必要的rust知识

我主要参考solana官网文档进行学习。下面正式开始...

安装Rust

官方推荐使用rustup安装,rustup可以方便的管理Rust版本和相关工具,在Liunx或MacOS上执行下面的命令:

# 我安装的版本:rustc 1.82.0 (f6e511eec 2024-10-15)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装node环境(nodejs、yarn)

虽然有多种方式安装node,但我只推荐 nvm 的方式:

# 1. 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# 2. 让 nvm 在命令行生效,我这里是.zshrc,你的可能是.bashrc,看你的具体环境
source ~/.zshrc

# 3. 安装 node 长期支持版本(--lts)
nvm install --lts
nvm use --lts

# 4. 安装 yarn(node安装好,就有了npm命令)
npm install -g yarn

# 我安装的版本:
# nvm  0.40.1
# node v22.11.0
# npm  10.9.0
# yarn 1.22.22

安装Solana命令行工具

虽然solana官方文档给了一个便捷的安装命令,但经过我的尝试,安装成功后的版本在编译程序的时候会报错(下文讲到anchor build时会分析这个报错),因此,这里我建议直接在solana的github仓库下载指定版本,我这里下载1.18.22版本。

# 解压后,配置到环境变量就安装成功了
tar xvzf solana-release-x86_64-apple-darwin.tar.bz2

安装Anchor

anchor是solana的开发框架,开发solana合约要经常使用,它的底层封装了solana-web3.js,用于跟solana链上程序交互,可以类比为以太坊中的hardhat框架。

# cargo是rust的包管理器和构建工具
# 上文安装好了rust,就自带了cargo命令
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force

# 使用最新的anchor版本就行,我的是 anchor-cli 0.30.1
avm install latest
avm use latest

初始化一个Anchor程序

# solana-guide是自定义的,你可以使用任何名称
anchor init solana-guide
cd solana-guide
anchor build

如果你执行anchor build遇到下面的错误:

[2024-11-13T14:11:24.929159000Z ERROR cargo_build_sbf] Failed to install platform-tools: HTTP status client error (404 Not Found) for url (https://github.com/anza-xyz/platform-tools/releases/download/v1.42/platform-tools-osx-x86_64.tar.bz2)

原因:最新的solana版本会去找platform-tools@v1.42及以上的版本,然而,对于mac x86_64系统,platform-tools从v1.42版本开始,release的二进制文件中移除了osx-x86_64的这个文件。

解决:将solana版本降低一下,改为 1.18.22 就好了。这个版本的solana找的是platform-tools@v1.41是正常的。

启动一个solana测试节点

打开一个新的shell(原来的anchor项目shell不要关),执行如下命令:

# 1. 配置solana在本地运行
solana config set --url localhost 

# 2. 启动一个本地节点
solana-test-validator

生成一个solana钱包,并运行测试

回到anchor项目所在的shell,执行如下命令:

# 1. 生成solana钱包地址
solana-keygen new -o ~/.config/solana/id.json

# 2. 查看钱包地址
solana address

# 3. 给生成的钱包空投 sol 测试币
solana airdrop 100 {钱包地址}

# 4. 配置 program_id 与 Anchor 密钥同步
anchor keys sync

# 5. 执行测试命令
anchor test --skip-local-validator

如果你完全按照步骤操作到这里,估计你可以看到:

  solana_guide
 Your transaction signature 5kAgT2JvBL7UYSXaDrKtUTQ793mgeJRYkbyDBDpTTeRWXQjse2SekStvbDPCBmzjTpxpN7S56vGsuBuJsidTj4av  
   ✔ Is initialized! (264ms)

  1 passing (266ms)

到这里,我们的环境已经完全安装好了。下一篇文章我将会带你认识目录结构,把这个项目中每一个目录和文件搞清楚是干什么的,怎么修改和重命名,怎么精简目录,把初学者不关心的目录和文件都删除掉进行高效率学习。如果你想提前看到我的更新,可以关注我的公众号:认知那些事

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

0 条评论

请先 登录 后评论
认知那些事
认知那些事
0x2b62...95a0
人立于天地之间,必然有我们的出路。