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
英文地址,請注明出處:http://en.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改造,以提升網絡基礎設施的現代化水平,增強網…