文章目录
简介
一个快速、低成本的网络,能够实现价值转移、创建应用程序和在线互动的新方式。
Solana 是一个高性能网络,能够实现快速、安全且经济实惠的数字交易。它支持从支付、游戏到数字艺术和金融服务的数千种应用程序。
特征
-
速度: 传统银行转账需要数天时间,信用卡交易需要几秒钟确认(但结算需要数天),而 Solana 的交易在不到一秒内完成。这种速度实现了其他地方无法实现的实时体验。像发送短信一样快速地进行国际汇款,或无需等待确认即可交易资产。
-
成本: 在 Solana 上,交易费用通常为 $0.00025——也就是千分之一美元的四分之一。你可以用 1 美元进行 4,000 次交易,使得小额支付和频繁交互变得切实可行。这带来了新的可能性:用几分钱打赏创作者,频繁交易而不被费用侵蚀利润,或构建用户可以频繁交互而无需担心成本的应用。
-
扩展性: Solana 每秒可以处理数千笔交易,与主要支付网络相当。这种能力意味着即使更多人使用,网络也不会变慢或变得昂贵。在高峰时段和非高峰时段,你的交易处理速度同样快——这是现实世界应用的关键。
-
全球可访问性: 任何有互联网接入的人都可以使用 Solana。不需要银行账户、信用检查或地理限制。无论你在纽约、内罗毕还是其他任何地方,你的钱包都能以相同的方式工作。一个偏远地区的小企业可以获得与大城市企业相同的工具——真正实现了数字金融服务的平等访问。
核心概念
-
SOL: Solana 的原生货币,用于支付交易费用和参与网络安全。可以将其视为邮票,用于发送邮件——您需要少量的 SOL 才能使用网络。不到 1 美元的 SOL 就能覆盖数百笔交易。
-
钱包: 存储您的数字资产并让您与应用程序交互的软件。您的钱包就像一个通用账户,可以在所有 Solana 应用程序中使用。一个钱包即可访问数千个应用程序,您的资产和历史记录随您而行。
-
代币: 数字资产可以代表从货币到项目所有权份额的任何事物。就像手机上的应用程序一样,Solana 上存在数千种不同的代币。有些代币保持稳定的价值用于支付,另一些则代表项目的股份或服务的访问权限。
-
验证者: 处理交易并保护网络的计算机。全球超过 1,000 个验证者确保 Solana 保持去中心化和可靠性。由全球独立运营者运行,这种分布式结构防止了任何单点故障或控制。
-
智能合约: 在 Solana 上运行的程序,支持从简单的转账到复杂的应用程序的一切。它们完全按照编程执行,没有停机或干扰的可能性。就像数字服务的自动售货机——可预测、自动化,并且全天候可用。
Solana 的工作原理(简单版)
- 您在钱包中发起一个操作(例如发送 SOL)
- 您的交易被发送到验证者,验证者确认其合法性
- 验证者在不到一秒内达成共识
- 您的交易被确认并永久记录
- 接收方立即看到结果
为什么人们选择 Solana
- 面向个人
- 金融接入:无需银行即可享受银行服务
- 真正的所有权:直接控制您的数字资产
- 全球参与:与其他人享有同样的机会
- 低门槛:只需几美元即可开始
- 面向开发者
- 高性能:构建响应迅速的应用程序
- 低成本:用户不会因费用而被排除在外
- 可组合性:像乐高积木一样组合现有程序
- 不断增长的生态系统:充满活力的社区和资源
- 面向企业
- 高效性:降低支付处理成本
- 创新性:创造新的商业模式
- 全球覆盖:服务全球客户
- 面向未来:基于尖端技术构建
开发环境准备
- VirtualBox 安装 Ubuntu Server 系统及 Ubuntu 初始配置
- Ubuntu 安装 Rustup 管理 Rust 版本
- Trae 通过 SSH 连接远程 Ubuntu Server 环境进行开发
Solana 官网
Solana 文档
- https://solana.com/zh/docs
- https://solana.com/zh/docs/rpc
Github
Rust SDK
快速安装 Solana(推荐)
- 安装所有依赖项
curl --proto '=https' --tlsv1.2 -sSfL https://solana-install.solana.workers.dev | bash
单独安装 Solana
注: 需要单独先安装 Rust 开发环境。
安装依赖项
sudo apt-get update
sudo apt-get install -y \
build-essential \
pkg-config \
libudev-dev llvm libclang-dev \
protobuf-compiler libssl-dev
安装 Solana CLI
Solana CLI 提供了构建和部署 Solana 程序所需的所有工具。
- 手动下载二进制文件
wget https://github.com/anza-xyz/agave/releases/download/v3.0.0/solana-release-x86_64-unknown-linux-gnu.tar.bz2
tar jxf solana-release-x86_64-unknown-linux-gnu.tar.bz2
./solana-release/bin/solana --version
- 配置环境变量
echo 'export PATH="$HOME/solana-release/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
- 检查 Solana CLI 的版本
solana --version
- 将 Solana CLI 更新到最新版本
agave-install update
安装 Anchor CLI
Anchor 是一个用于开发 Solana 程序的框架。Anchor 框架利用 Rust 宏来简化编写 Solana 程序的过程。
- Anchor 版本管理器 (AVM) - 推荐的安装方法
- 不使用 AVM - 直接从 GitHub 安装
安装 AVM
cargo install --git https://github.com/coral-xyz/anchor avm --force
- 检查 avm 的版本
avm --version
安装 Anchor CLI
- [https://github.com/solana-foundation/anchor/releases
# 列出版本
avm list
# 安装最新版本(需要科学上网)
avm install latest
avm use latest
# 或安装指定版本
avm install 0.31.1
avm use 0.31.1
- 检查 Anchor CLI 的版本
anchor --version
安装 Node
安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
- 添加环境变量
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
source ~/.zshrc
- 检查 nvm 的版本
nvm -v
- nvm 常用命令
# 列出可在线安装版本
nvm ls-remote
# 安装指定 node 版本
nvm install 22.19.0
# 查看当前已安装的 node 版本及当前使用的版本
nvm list
# 使用指定 node 版本
nvm use 22.19.0
# 设置默认 node 版本
nvm alias default 22.19.0
# 卸载指定 node 版本
nvm deactivate
nvm uninstall 22.19.0
安装 Node
nvm ls-remote
nvm install 22.19.0
nvm alias default 22.19.0
- 检查 node 的版本
node -v
安装 yarn
npm install --global yarn
- 检查 yarn 的版本
yarn -v
- yarn 常用命令
# 查询当前配置的镜像
yarn config get registry
# 设置成淘宝镜像
yarn config set registry http://registry.npm.taobao.org/
yarn config set registry https://registry.npmmirror.com/
# 查看缓存列表
yarn cache list
# 查看缓存路径
yarn cache dir
# 清理缓存
yarn cache clean
# 安装依赖
yarn install
Solana 官方示例
Solana 程序示例 GitHub 仓库提供了多个子文件夹,每个文件夹包含代码示例,帮助开发者学习和尝试 Solana 区块链开发。
您可以在 solana-developers/program-examples 中找到这些示例,以及 README 文件,这些文件会向您解释如何运行不同的示例。大多数示例是独立的,并以原生 Rust(即无框架)和 Anchor 提供。
git clone https://github.com/solana-developers/program-examples.git
创建 Anchor 项目
- 检查 Anchor CLI 的版本
anchor -v
- 创建新项目
# 默认生成的是 Typescript 测试文件
anchor init demo
# 或指定生成 Rust 测试文件
anchor init --test-template rust demo
cd demo
- 默认的 Anchor 程序位于 demo/programs/demo/src/lib.rs
- 默认的测试文件
- Typescript 测试文件位于 demo/tests/demo.ts
- Rust 测试文件位于 demo/tests/src/test_initialize.rs
- Trae 通过 SSH 连接 Ubuntu Server 服务
- 构建程序
cd demo
anchor build
测试 Anchor 程序
在 Solana 上,“智能合约”被称为程序。 程序被部署到链上的账户中,这些账户包含程序编译后的可执行二进制文件。用户通过发送包含 指令的交易与程序交互,这些指令告诉程序需要执行的操作。
- 测试前准备
指定了 CLI 向其发送请求的 Solana 集群
solana config set -ul
# 创建钱包
solana-keygen new
# 查看您的钱包地址(公钥)
solana address
- 需要单开一个新终端来启动本地验证器
solana config set -ul
solana-test-validator
- 检查钱包 SOL 余额
solana balance
# 请求空投 SOL
solana airdrop 2
- 默认情况下,Anchor.toml 配置文件会指定 localnet 集群。执行 anchor test 将自动:
- 启动本地 Solana 验证器
- 构建并部署你的程序到本地集群
- tests运行文件夹中的测试
- 停止本地 Solana 验证器
cd demo
anchor test
# 或本地验证器处理已在运行,则跳过启动本地验证器
anchor test --skip-local-validator
注: 执行完 test 后,钱包 SOL 余额减少了。