本文由 AI 生成,請獨立核實重要資訊。

Solana 主網、開發網和測試網解析

Crypto Wiki|Oct 9, 2026|★★★★★★4.5 (500 人評分)
AI 摘要

Learn the differences between Solana Mainnet-Beta, Devnet, Testnet, and Localnet. Complete guide with RPC endpoints, CLI commands, and deployment step...

Solana 的主網 (Mainnet)、開發網 (Devnet) 和測試網 (Testnet) 各有其用途:主網 Beta 版具有真實經濟價值、開發網支持應用程式開發,而測試網主要用於驗證者和協議測試。本地網 (Localnet) 為受控開發提供了一個獨立的本地環境。

如果您花過任何時間閱讀 Solana 文件或按照教學操作,您一定已經看過在每份指南中反覆出現的 Mainnet-Beta、Devnet 和 Testnet 等術語。大多數資源都提到了它們,卻沒有回答真正關鍵的問題:您現在應該使用哪一個,以及如果選錯了會發生什麼事?

Solana 是一個高效能的 Layer-1 區塊鏈,使用一種稱為歷史證明 (PoH) 的共識機制結合質押證明 (PoS) 來實現高交易吞吐量。其原生代幣為 SOL,用於支付整個網路的交易費用。Solana 運作著四個不同的網路環境,在 Solana 術語中,每一種都稱為一個叢集 (cluster)。Mainnet-Beta、Devnet、Testnet 和 Localnet 都是 Solana 叢集,各擁有自己的驗證者、交易歷史和帳戶狀態。

閱讀完本指南後,您將確切知道每個叢集的用途、哪一個適合您當前的情況,以及連接到其中任何一個所需的精確指令、RPC 端點和錢包步驟。


Solana 的主網、開發網和測試網

Solana 運作著四個平行的網路環境。每個叢集服務於開發和部署生命週期的特定階段,類似於傳統軟體團隊將開發環境與生產環境分離的方式。

以下是各個環境的一句話描述:

  • Mainnet-Beta 是即時運作的生產網路,使用真實的 SOL,所有現實世界的活動都在此發生。
  • Devnet 是主要的開發者沙盒,用於以免費且無價值的 SOL 構建和測試應用程式。
  • Testnet 是壓力測試環境,供驗證者營運商和核心協議工程師在變動進入 Mainnet-Beta 之前使用。
  • Localnet 是一個完全在您自己機器上運行的私有 Solana 叢集,不需要網路連接。

您可以在 Solana 叢集文件. 中找到所有 Solana 叢集的權威概述。從 Mainnet-Beta 開始,以下是每個環境的作用以及何時使用它。


Solana Mainnet-Beta:即時運作的生產網路

Mainnet-Beta 是 Solana 的即時生產網路,也是 Solana 區塊鏈上所有真實經濟活動發生的環境。儘管名稱中包含「Beta」,但這不是一個測試網路。這個標籤是 Solana 在 2020 年啟動時留下的歷史遺跡,並不意味著該網路不完整或處於實驗階段。Solana 自啟動以來一直將 Mainnet-Beta 作為其完整的生產環境運行。

所有運作中的 dApp(去中心化應用程式)、DeFi 協議、NFT 市場和代幣項目都運行在 Mainnet-Beta 上。您發送或接收的每一筆真實 SOL 交易都發生在這裡。

Mainnet-Beta 上的 SOL 具有真實貨幣價值。 交易需要真實的 SOL 來支付費用,通常每筆交易只需不到一美分。程式部署需要花費真實的 SOL,且是永久且不可逆的。Mainnet-Beta 的公共 RPC 端點為 https://api.mainnet-beta.solana.com。

⚠️ 警告: Mainnet-Beta 上的任何交易或程式部署都會消耗真實的 SOL,且無法撤銷。在部署到生產環境之前,請務必先在 Devnet 上進行測試。

💡 提示: 請在 Solana Explorer 驗證 Mainnet-Beta 交易。使用右上角的叢集選擇器來確認您正在查看的是 Mainnet-Beta 叢集。


Solana Devnet:開發者沙盒

Devnet 是 Solana 的主要開發者沙盒,這是一個公共叢集,您可以在其中構建和測試程式,而無需冒險損失任何真實的 SOL。對於大多數 Solana 開發者來說,Devnet 是所有開發工作發生的地方。

Devnet SOL 的真實貨幣價值為零。 它是通過水龍頭獲取的免費測試貨幣,不能轉移到 Mainnet-Beta 或兌換成真實的 SOL。Devnet 的公共 RPC 端點為 https://api.devnet.solana.com。

Devnet 會定期重置,這意味著部署的程式和帳戶餘額可能會在不另行通知的情況下被清除。開發者應將 Devnet 狀態視為臨時的,切勿依賴它來存儲生產數據。

在 Devnet 上獲取免費 SOL

水龍頭 (Faucet) 是一項在 Devnet 或 Testnet 上分發免費測試 SOL 的服務。最快的方法是使用 Solana CLI 的空投 (airdrop) 指令。請注意,在此語境下,「空投」是指請求測試代幣的開發者工具指令,而非行銷性質的代幣發放。

運行此指令在 Devnet 上請求 2 個 SOL:

solana airdrop 2

CLI 空投限制為每次請求 2 個 SOL,並設有頻率限制。如果 solana airdrop 返回速率限制錯誤,請等待幾分鐘後重試,或改用以下其中一個基於網頁的水龍頭:

💡 提示: 透過在叢集切換器中選擇「Devnet」,在 Solana Explorer 查看您的 Devnet 交易。

在 Devnet 上鑄造的測試 NFT 沒有真實價值,且僅存在於 Devnet 叢集中。它們與 Mainnet-Beta 上的 NFT 並非同一種資產。

對於絕大多數 Solana 開發者來說,Devnet 是合適的環境。如果您才剛開始,請從這裡開始。如需查看 Devnet 與 Testnet 及 Mainnet-Beta 在所有關鍵維度上的並排比較,請參閱下方的 完整網路比較表(主網 vs 開發網 vs 測試網 vs 本地網)。


Solana Testnet:驗證者與協議測試

Testnet 是供驗證者營運商和核心協議工程師使用的 Solana 網路環境,而非供構建 dApp 或程式的應用程式開發者使用。理解這一區別可以減少很多困惑。

驗證者是 Solana 網路上處理並確認交易的節點。Testnet 的存在專門是為了讓驗證者營運商在這些變動應用到 Mainnet-Beta 之前,測試新的節點軟體和協議升級。Solana 核心工程團隊使用 Testnet 在現實條件下對效能改進和新功能進行壓力測試。

Testnet 刻意設計得比 Devnet 不穩定。網路中斷和重置更為常見,因為該網路的設計初衷就是被推向極限以測試故障。公共 RPC 端點為 https://api.testnet.solana.com。

Testnet SOL 的真實貨幣價值為零,與 Devnet SOL 相同。

💡 建議: 如果您正在 Solana 上構建 dApp、程式或代幣,請使用 Devnet 而非 Testnet。Testnet 並非為應用程式開發而設計,其不穩定性使其成為測試程式碼的糟糕選擇。


Localnet:您的本地測試驗證者

Localnet 也被稱為本地測試驗證者,完全在您自己的機器上運行,不需要網路連接。它是第四種 Solana 叢集類型,儘管大多數指南都忽略了它。

使用此指令啟動 Localnet:

solana-test-validator

啟動後,可透過 http://localhost:8899 訪問 Localnet。與 Devnet 不同,Localnet 不是共享的公共網路。只有您的本地機器可以看到它,且每次重啟驗證者進程時它都會重置。

Localnet 是早期開發期間快速私密迭代的 iDEAL 選擇。由於沒有網路延遲,程式交互的反馈是即時的。標準的開發工作流程是先在 Localnet 上進行本地構建和測試,然後部署到 Devnet 進行共享測試,最後部署到主網(Mainnet-Beta)進行正式生產。

Devnet 與 Localnet 的主要區別在於:Devnet 是一個任何人都可以訪問的共享公共網路,這意味著您部署的程式對其他開發者可見,且您的測試是針對共享網路狀態運行的。


Solana 網路比較:主網(Mainnet)vs Devnet vs Testnet vs Localnet

下表從七個維度比較了所有四個 Solana 網路環境,以幫助您根據情況選擇合適的集群。

環境用途SOL 價值穩定性公共 RPC URL主要用戶數據持久性
Mainnet-Beta正式生產環境真實貨幣價值高(生產級)https://api.mainnet-beta.solana.com所有用戶、dApp 開發者、終端用戶永久
Devnet開發者沙盒零(免費測試 SOL)中(偶爾重置)https://api.devnet.solana.com應用開發者、dApp 構建者臨時(定期重置)
Testnet驗證節點/協議壓力測試零(免費測試 SOL)低(刻意的不穩定性)https://api.testnet.solana.com驗證節點營運商、核心工程師臨時(頻繁重置)
Localnet本地開發零(模擬)開發者控制http://localhost:8899個人開發者僅限會話(重啟時重置)

決策指南:

構建 dApp 或程式的應用開發者應使用 Devnet 進行所有測試。驗證節點營運商則屬於 Testnet。對於快速的本地迭代,Localnet 是最快的選擇。僅當您的程式經過全面測試並準備好投入生產時,才部署到主網(Mainnet-Beta)。

有關跨集群部署的分步說明,請參閱下方的 程式部署章節。


各網路的 Solana RPC 端點

RPC 端點是您的應用程式、CLI 或錢包用來向 Solana 集群發送請求的 URL。RPC 代表遠端程序呼叫(Remote Procedure Call),但您只需要知道其實際定義:它是您的工具指向以讀取和寫入特定網路的地址。

集群公共 RPC URL頻率限制說明
Mainnet-Betahttps://api.mainnet-beta.solana.com有頻率限制;不建議用於生產環境應用
Devnethttps://api.devnet.solana.com有頻率限制;足以滿足開發需求
Testnethttps://api.testnet.solana.com有頻率限制;網路不穩定
Localnethttp://localhost:8899無頻率限制;僅限本地

公共 RPC 端點受頻率限制,不適合高流量的生產環境應用。對於主網(Mainnet-Beta)的生產用途,第三方 RPC 提供商(如 Helius、QuickNode 和 Alchemy)提供更高的頻率限制和額外的工具。對於 Devnet 上的所有開發和測試工作,公共端點已足夠。

Solana CLI 和 @solana/web3.js 庫都直接接受這些 URL。以下章節將詳細說明如何配置每個工具。


如何使用 CLI 在 Solana 網路之間切換

核心 Solana CLI(solana 命令,而非 Anchor CLI 或 web3.js 庫)控制您的工具連接到哪個集群。所有網路配置都通過 solana config 進行。

請按照以下步驟檢查並切換您的活動集群:

1. 檢查您目前的網路配置。

此命令顯示您目前的 RPC URL,確認您連接到哪個集群。

solana config get

2. 切換到 Devnet。

solana config set --url devnet

3. 切換到 Testnet。

solana config set --url testnet

4. 切換到主網(Mainnet-Beta)。

solana config set --url mainnet-beta

5. 切換到 Localnet。

solana config set --url localhost

6. 切換後請求 Devnet SOL 空投。

solana airdrop 2

簡寫名稱(devnet、testnet、mainnet-beta)直接映射到上方 Solana RPC 端點參考 中列出的公共 RPC 端點。使用 solana config set --url devnet 等同於傳入完整 URL https://api.devnet.solana.com。

如果 solana config get 顯示非預期的集群 URL,可能是另一個工具或腳本更新了您的配置。在執行任何其他操作之前,請運行適當的 solana config set --url 命令來修正它。

⚠️ 警告: 在部署程式或發送交易之前,務必運行 solana config get。當您原本打算部署到 Devnet 卻部署到主網(Mainnet-Beta)時,將會消耗真實的 SOL 且無法撤銷。


使用 web3.js 連接到 Solana 網路

@solana/web3.js 庫是與 Solana 集群交互的官方 JavaScript 和 TypeScript 庫。它提供了一個名為 clusterApiUrl() 的便利函數,可返回指定集群的公共 RPC URL。

使用以下程式碼連接到各個網路:

import { Connection, clusterApiUrl } from '@solana/web3.js';

// 連接到 Devnet
const connection = new Connection(clusterApiUrl('devnet'), 'confirmed');

// 連接到主網 (Mainnet-Beta)
const connection = new Connection(clusterApiUrl('mainnet-beta'), 'confirmed');

// 連接到 Testnet
const connection = new Connection(clusterApiUrl('testnet'), 'confirmed');

直接寫死 RPC URL 同樣有效,且能給予您更多控制權:

// 使用明確的 RPC URL
const connection = new Connection('https://api.devnet.solana.com', 'confirmed');

對於主網(Mainnet-Beta)生產環境應用程式,請將公共 URL 替換為來自第三方提供商的私有 RPC 端點。clusterApiUrl() 函數僅返回公共端點。

Solana web3.js 是一個獨立於 Anchor 框架 TypeScript 客戶端的庫。兩者可以在同一個專案中配合使用,但服務於技術棧的不同層級。連接後,您可以通過在右上方切換器中選擇匹配的集群,在 Solana Explorer 驗證您的交易。如需完整的 API,請參閱 Solana web3.js 庫參考)。


跨網路部署 Solana 程式

Solana 程式是 Solana 對鏈上可執行程式碼的稱呼,用於處理來自客戶端的指令(等同於 Ethereum 上的智能合約)。程式是特定於集群的。

部署到 Devnet 的程式在主網(Mainnet-Beta)上並不存在。每個集群都維護著自己完全獨立的狀態,您必須分別將程式部署到您希望其運行的每個網路。這是開發者在部署後找不到程式的最常見原因:他們部署到了 Devnet 卻在主網(Mainnet-Beta)上尋找,反之亦然。

配置 Anchor 進行部署

Anchor 框架是一個廣泛使用的 Solana 程式開發框架。目標集群配置位於您的 Anchor.toml 文件的 [provider] 部分:

[provider]
cluster = "devnet"
wallet = "~/.config/solana/id.json"

要部署到主網(Mainnet-Beta),請將 cluster 值更改為 "mainnet-beta" 並運行:

anchor deploy

在運行 anchor deploy 之前,務必更新 Anchor.toml。Anchor CLI (anchor) 是與 Solana CLI (solana) 不同的工具。兩者可能在同一個工作流中使用。請參閱 Anchor 框架文件 以了解完整的配置選項。

推薦的部署工作流程

在任何主網(Mainnet-Beta)發布之前,請遵循以下順序:

  1. 使用 Localnet 進行本地構建和測試。
  2. 在 Devnet 上部署並測試。
  3. (選填,針對驗證節點相關程式)在 Testnet 上測試。
  4. 僅在程式經過完全驗證後,才部署到主網(Mainnet-Beta)。

⚠️ **警告:**在部署至 Mainnet-Beta 之前,請在 Anchor.toml 中驗證您的群集設定,或運行 solana config get。Mainnet-Beta 部署需要花費真實 SOL,且一旦執行便無法復原。


真實 SOL 與測試 SOL:了解各個網路的價值

Mainnet-Beta 上的 SOL 具有真實貨幣價值。Devnet 與 Testnet 上的 SOL 真實貨幣價值為零;它是免費的測試貨幣,沒有匯率,也沒有轉換為 Mainnet-Beta 的途徑。

以下是完整明細:

  • Mainnet-Beta SOL: 具有真實貨幣價值,可在交易所交易,用於支付交易手續費。
  • Devnet SOL: 免費,透過水龍頭獲取,無交換價值,無法轉移至 Mainnet-Beta。
  • Testnet SOL: 免費,透過水龍頭獲取,無交換價值,無法轉移至 Mainnet-Beta。

⚠️ **警告:**Devnet 與 Testnet SOL 無法轉換為真實 SOL,也無法轉移至 Mainnet-Beta。請勿嘗試交易或出售 Devnet 或 Testnet SOL。其在各自的群集之外沒有任何價值。

Mainnet-Beta 中的「Beta」標籤自 Solana 於 2020 年推出以來一直造成持續性的困擾。就任何實際意義而言,Mainnet-Beta 都不是測試版產品;它已處理了數十億美元的 DeFi 與 NFT 交易,並且是唯一發生真實世界 Solana 活動的網路。此名稱是 Solana 保留的歷史慣例。

如果在切換網路後,您的 Phantom 餘額顯示為零,上方「在 Phantom 錢包中切換網路」部分會說明如何恢復 Mainnet-Beta 視圖。

本文僅供教育與技術參考,不構成財務建議,亦不代表對任何加密貨幣投資的背書。


相關 Solana 架構資源

部署概念與 面向開發者的 Solana 帳戶模型 相關,而 Mainnet-Beta 的效能則取決於 為什麼 Solana 快速且廉價 中所述的架構。只有主網 SOL 具有市場價值:SOL 價格頁面 與 SOL/USDT 現貨市場 適用於主網 SOL,而非 Devnet、Testnet 或 Localnet 代幣。


FAQ:Solana 上的主網、Devnet 與 Testnet

Solana Mainnet-Beta 是真正的主網嗎?

是的。Mainnet-Beta 是 Solana 全面運行的正式生產網路。「Beta」標籤是 2020 年 Solana 推出時的歷史命名慣例,並不表示該網路是實驗性的或不完整的。所有真實的 SOL 交易、dApp、DeFi 協議與 NFT 專案都在 Mainnet-Beta 上運行。

Devnet SOL 具有真實價值嗎?

沒有。Devnet SOL 的真實貨幣價值為零。它是透過水龍頭發放的免費測試貨幣,僅存在於 Devnet 群集中。它無法轉移至 Mainnet-Beta,也無法兌換成真實 SOL,或在任何交易所使用。

我可以在主網上使用 Devnet SOL 嗎?

不可以。Devnet 與 Mainnet-Beta 是完全獨立的網路,沒有共享狀態。SOL 獨立存在於每個群集中。目前沒有將 Devnet SOL 轉移至 Mainnet-Beta 的機制。

為什麼我在錢包中看不到我的 SOL?

錢包可能連接到了 Devnet 或 Testnet,而非 Mainnet-Beta。請參考錢包最新的支援文件檢查目前的網路設定與地址,然後重新連接至 Mainnet-Beta。在假設任何餘額已變動之前,請先在對應的區塊瀏覽器上驗證該地址。

Solana 上的 Devnet 與 Testnet 有什麼區別?

Devnet 專為建構 dApp 與程式的應用程式開發者設計。它很穩定,擁有可運作的水龍頭,是所有開發工作的推薦環境。Testnet 則是為驗證者營運商與核心協議工程師設計,用於對新軟體進行壓力測試。它刻意設計得較不穩定,不適合應用程式開發。

什麼是 Solana 群集?

Solana 群集 (Cluster) 是一個網路環境,這是 Solana 對其他區塊鏈所謂的「網路」或「鏈」的稱呼。Mainnet-Beta、Devnet、Testnet 與 Localnet 都是 Solana 群集。每個群集都是獨立的網路,擁有自己的驗證者、交易歷史與帳戶狀態。

Localnet 與 Devnet 有什麼區別?

Localnet 完全在您自己的機器上運行,不需要網路連接,使其成為最快的可用測試環境。Devnet 則是任何人都可以存取的共享公共網路。使用 Localnet 進行快速的本地迭代,然後在移至 Mainnet-Beta 之前,先部署到 Devnet 以在共享環境中進行測試。

為什麼我的 Solana 交易失敗了?

如果您的交易意外失敗,請先驗證您是否連接到了正確的群集。在 CLI 中運行 solana config get 或檢查錢包中的網路指示器。交易失敗的常見原因是連接到了錯誤的網路。例如,當您的 CLI 或錢包指向 Devnet 時,嘗試與 Mainnet-Beta 程式進行互動將導致交易失敗。


總結:您應該使用哪個 Solana 網路?

適合的網路完全取決於您正在做什麼。以下是對應各個使用案例的決策:

  • 建構或測試 Solana 程式或 dApp → 使用 Devnet
  • 快速本地開發與迭代 → 使用 Localnet
  • 運行或測試驗證者節點 → 使用 Testnet
  • 為真實用戶發布生產應用程式 → 部署至 Mainnet-Beta
  • 使用真實 SOL 進行交易、DeFi 或 NFT → Mainnet-Beta(預設)

如有疑問,請從 Devnet 開始。對於任何開始進行 Solana 開發的人來說,它是最安全、最穩定且最容易存取的環境。

如需進一步參考,請參閱官方 Solana 群集文件 並在 Solana Explorer 驗證任何交易。