Ubuntu 搭建 Solana 区块链开发环境 + Anchor 智能合约完整教程

简介

一个快速、低成本的网络,能够实现价值转移、创建应用程序和在线互动的新方式。

Solana 是一个高性能网络,能够实现快速、安全且经济实惠的数字交易。它支持从支付、游戏到数字艺术和金融服务的数千种应用程序。

特征

  • 速度: 传统银行转账需要数天时间,信用卡交易需要几秒钟确认(但结算需要数天),而 Solana 的交易在不到一秒内完成。这种速度实现了其他地方无法实现的实时体验。像发送短信一样快速地进行国际汇款,或无需等待确认即可交易资产。

  • 成本: 在 Solana 上,交易费用通常为 $0.00025——也就是千分之一美元的四分之一。你可以用 1 美元进行 4,000 次交易,使得小额支付和频繁交互变得切实可行。这带来了新的可能性:用几分钱打赏创作者,频繁交易而不被费用侵蚀利润,或构建用户可以频繁交互而无需担心成本的应用。

  • 扩展性: Solana 每秒可以处理数千笔交易,与主要支付网络相当。这种能力意味着即使更多人使用,网络也不会变慢或变得昂贵。在高峰时段和非高峰时段,你的交易处理速度同样快——这是现实世界应用的关键。

  • 全球可访问性: 任何有互联网接入的人都可以使用 Solana。不需要银行账户、信用检查或地理限制。无论你在纽约、内罗毕还是其他任何地方,你的钱包都能以相同的方式工作。一个偏远地区的小企业可以获得与大城市企业相同的工具——真正实现了数字金融服务的平等访问。

核心概念

  • SOL: Solana 的原生货币,用于支付交易费用和参与网络安全。可以将其视为邮票,用于发送邮件——您需要少量的 SOL 才能使用网络。不到 1 美元的 SOL 就能覆盖数百笔交易。

  • 钱包: 存储您的数字资产并让您与应用程序交互的软件。您的钱包就像一个通用账户,可以在所有 Solana 应用程序中使用。一个钱包即可访问数千个应用程序,您的资产和历史记录随您而行。

  • 代币: 数字资产可以代表从货币到项目所有权份额的任何事物。就像手机上的应用程序一样,Solana 上存在数千种不同的代币。有些代币保持稳定的价值用于支付,另一些则代表项目的股份或服务的访问权限。

  • 验证者: 处理交易并保护网络的计算机。全球超过 1,000 个验证者确保 Solana 保持去中心化和可靠性。由全球独立运营者运行,这种分布式结构防止了任何单点故障或控制。

  • 智能合约: 在 Solana 上运行的程序,支持从简单的转账到复杂的应用程序的一切。它们完全按照编程执行,没有停机或干扰的可能性。就像数字服务的自动售货机——可预测、自动化,并且全天候可用。

Solana 的工作原理(简单版)

  1. 您在钱包中发起一个操作(例如发送 SOL)
  2. 您的交易被发送到验证者,验证者确认其合法性
  3. 验证者在不到一秒内达成共识
  4. 您的交易被确认并永久记录
  5. 接收方立即看到结果

为什么人们选择 Solana

  • 面向个人
    • 金融接入:无需银行即可享受银行服务
    • 真正的所有权:直接控制您的数字资产
    • 全球参与:与其他人享有同样的机会
    • 低门槛:只需几美元即可开始
  • 面向开发者
    • 高性能:构建响应迅速的应用程序
    • 低成本:用户不会因费用而被排除在外
    • 可组合性:像乐高积木一样组合现有程序
    • 不断增长的生态系统:充满活力的社区和资源
  • 面向企业
    • 高效性:降低支付处理成本
    • 创新性:创造新的商业模式
    • 全球覆盖:服务全球客户
    • 面向未来:基于尖端技术构建

开发环境准备

Solana 官网

Solana 文档

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 余额减少了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逢生博客

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值