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

文章目录

  • 简介
  • 特征
  • 核心概念
  • Solana 的工作原理(简单版)
  • 为什么人们选择 Solana
  • 开发环境准备
  • Solana 官网
  • Solana 文档
  • Anchor 文档
  • Github
  • Rust SDK
  • 快速安装 Solana(推荐)
  • 单独安装 Solana
    • 安装依赖项
    • 安装 Solana CLI
  • 安装 Anchor CLI
    • 安装 AVM
    • 安装 Anchor CLI
  • 安装 Node
    • 安装 nvm
    • 安装 Node
    • 安装 yarn
  • Solana 官方示例
  • 创建 Anchor 项目
  • 测试 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

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

开发环境准备

  • VirtualBox 安装 Ubuntu Server 系统及 Ubuntu 初始配置
  • Ubuntu 安装 Rustup 管理 Rust 版本
  • Trae 通过 SSH 连接远程 Ubuntu Server 环境进行开发

Solana 官网

  • https://solana.com/zh

Solana 文档

  • https://solana.com/zh/docs
  • https://solana.com/zh/docs/rpc

Anchor 文档

  • https://www.anchor-lang.com/docs

Github

  • https://github.com/anza-xyz/agave/releases

Rust SDK

  • https://solana.com/zh/docs/clients/rust

快速安装 Solana(推荐)

  • 安装所有依赖项
curl --proto '=https' --tlsv1.2 -sSfL https://solana-install.solana.workers.dev | bash

注: 安装过程中 Solana CLI 可能会安装失败,需要单独安装 Solana CLI

单独安装 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 程序所需的所有工具。

  • 脚本安装(需要科学上网)
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
  • 手动下载二进制文件

https://github.com/anza-xyz/agave/releases

在这里插入图片描述

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 官方示例

  • https://github.com/solana-developers/program-examples

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/95081.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

curl 介绍及使用教程

文章目录 什么是 curl? 1. 解析用户输入与初始化 2. 建立网络连接 3. 构建并发送请求 4. 接收并处理响应 5. 清理资源 核心特点总结 基本语法 常用功能及示例 1. 基本 HTTP 请求 2. 发送 GET 请求 3. 发送 POST 请求 4. 设置请求头 5. 处理认证 6. 断点续传 7. 跟随重定向 8. …

【第十一章】Python 队列全方位解析:从基础到实战

Python 队列全方位解析:从基础到实战 本文将从基础概念到高级应用,用 “文字解释 代码示例 图表对比 实战案例” 的方式,全面覆盖 Python 队列知识,零基础也能轻松掌握。 文章目录Python 队列全方位解析:从基础到实…

跨平台开发框架实测:React Native vs Flutter vs Kotlin Multiplatform

本文聚焦 React Native、Flutter 和 Kotlin Multiplatform 三大跨平台开发框架,从性能表现、开发效率、生态系统、跨平台一致性及学习成本五个关键维度展开实测对比。通过具体场景的测试数据与实际开发体验,剖析各框架的优势与短板,为开发者在…

【网弧软著正版】2025最强软著材料AI生成系统,基于GPT5.0

软著材料AI一键生成系统 网址:AI软著材料生成平台 | 一键生成全套软著文档 - 网络弧线 产品简介: 专业的软件著作权材料AI生成平台,基于GPT-5模型开发,自2022年运营至今已服务数万用户成功获得软著证书。输入软件名称即可自动生成…

存储掉电强制拉库引起ORA-01555和ORA-01189/ORA-01190故障处理---惜分飞

机房存储突然掉电导致Oracle数据库访问存储异常,数据库报出大量的ORA-27072: File I/O error,Linux-x86_64 Error: 5: Input/output error,ORA-15081: failed to submit an I/O operation to a disk等错误,实例直接crash Wed Aug 27 07:11:53 2025 Errors in file /u01/app/ora…

R3:适用于 .NET 的新一代响应式扩展库,事件订阅流

R3:适用于 .NET 的新一代响应式扩展库 R3 是 dotnet/reactive(.NET 官方响应式扩展)与 UniRx(适用于 Unity 的响应式扩展)的新一代替代方案,支持多种平台,包括 Unity、Godot、Avalonia、WPF、W…

Android Framework打电话禁止播放运营商视频彩铃

文章目录定位Android电话的源码及UI禁止打电话时播放运营商广告视频彩铃运营商视频彩铃framework禁止播放视频彩铃需求:打电话时,对方未接听,这个时候可能会播放运营商的视频彩铃,需求是屏蔽彩铃播放。测试平台:展锐。…

WebIDEPLOY 赋能数字校园建设:智慧管理系统的效能升级与实践路径 —— 以校园资源协同优化构建高效教育生态的探索

一、教育数字化转型中的现实困境:从 "管理孤岛" 到 "效率瓶颈"教育数字化转型的加速推进,让智慧校园建设成为高校提升核心竞争力的关键抓手。但当前校园物联网应用中,一系列痛点逐渐凸显:设备管理呈现 "…

开源AI大模型AI智能名片S2B2C商城小程序赋能下的“信息找人“:人工智能驱动的线下零售精准化革命

摘要:在人工智能技术深度渗透零售行业的背景下,线下零售场景正经历从"人找信息"到"信息找人"的范式转变。本文聚焦开源AI大模型、AI智能名片与S2B2C商城小程序的技术融合,系统分析其在客户定位、行为分析、精准营销等环节…

【第三方网站运行环境测试:服务器配置(如Nginx/Apache)的WEB安全测试重点】

服务器配置安全测试是WEB安全评估的关键,一般关注信息泄露、传输安全、访问控制及资源防护等方面。信息泄露控制 检查服务器响应头是否暴露敏感信息。Server头应去除Nginx/Apache详细版本号,防止攻击者针对特定版本漏洞进行利用。错误页面需自定义&#…

【Hot100】15.三数之和

解法:排序 双指针首先对数组排序,便于后面处理重复元素。第一层循环遍历数组中的每一个元素,作为三元组中的第一个元素 nums[i] ,并跳过重复的元素。对于每个 i ,使用双指针 l (初始为 i1)和 r…

Flutter 本地持久化存储:Hive 与 SharedPreferences 实战对比

在移动应用开发中,本地持久化存储是必不可少的功能。无论是保存用户登录状态、应用配置,还是缓存数据,合理选择存储方案都能提高应用的性能与用户体验。在 Flutter 中,常用的本地存储方式主要有两种:SharedPreferences…

Lombok 实用注解深度解析!

目录一、AllArgsConstructor:全参数构造函数生成器1. 基本概念2. 使用示例3. 高级特性4. 注意事项二、RequiredArgsConstructor:必需参数构造函数生成器1. 基本概念2. 使用示例3. 高级特性4. 注意事项三、SneakyThrows:异常处理"偷懒&qu…

Go+Gdal 完成高性能GIS数据空间分析

概要 环境准备 技术流程 一、在golang中如何调用gdal 二、读取数据 三、执行空间分析 四、性能提升 小结 概要 Gdal库可以说是所有gis软件的基础,基本上现在所有的工业gis软件都是基于gdal开发的,其主要包括了栅格处理、矢量处理、坐标系处理所涉及的各类…

【python】python进阶——Lambda 函数

目录 引言 一、简介 1.1 基本语法 1.2 优势 1.3 局限性 二、基本用法 2.1 无参数lambda 函数 2.2 多参数 lambda 函数 三、常见使用场景 3.1 与高阶函数配合使用 3.2 作为排序键 3.3 在 GUI 编程中作为回调函数 3.4 在 Pandas 中的应用 四、高级技巧 4.1 条件表…

基于单片机电动车充电桩/充电车棚环境监测设计

传送门 👉👉👉👉其他作品题目速选一览表 👉👉👉👉其他作品题目功能速览 概述 随着电动车普及,充电桩的环境安全监测成为重要课题。基于单片机的电动车充电桩环境检…

Linux初始——编译器gcc

编译器gcc编译器编译器自举动静态库动静态库的差异gcc编译器 众所周知,代码运行的前提是经过四个步骤的 预处理,其进行宏替换,去注释,条件编译,头文件展开的工作,在gcc的选项中对应gcc -E,其就…

Three.js + AI预测:在数字孪生中实现数据可视化智能决策

某智慧工厂的数字孪生系统曾陷入尴尬:3D 模型里的生产线数据实时跳动,却没人能预判 “2 小时后哪台机器会停机”。这就像有了高清监控,却不会分析监控画面 ——Three.js 做出的可视化是 “眼睛”,AI 预测才是 “大脑”。不少团队用…

刀客doc:亚马逊持续猛攻程序化广告

文/刀客doc(头条深一度精选作者)一7月的尾声和8月的开端,广告市场见证了两场截然不同的场面。7月31日,亚马逊公布了截至6月30日的2025年第二季度财报。广告业务表现尤为亮眼:单季收入达到157亿美元,同比增长约22%,成为…

政府网站IPv6检测怎么做?检测指标有哪些?

随着信息技术的飞速发展,IPv6作为下一代互联网的核心协议,已成为全球互联网发展的必然趋势。我国政府高度重视IPv6的规模部署和应用推广,明确要求各级政府网站必须完成IPv6改造,以提升网络基础设施的现代化水平,增强网…