什麼是 Anchor 和 Anchor Program Registry?
作者 Pari
Anchor 是領先的 Solana 開發框架,用於編寫安全、可靠且高效的高階 Solana 程式。Anchor 中的一個 program 是 Solana 區塊鏈上的智能合約,讓使用者能夠將資料錨定(anchor)到 Solana 區塊鏈上。由於 Solana 龐大的開發者社群,經過驗證的 Solana programs 會被收錄在 Anchor Program Registry 中,方便存取。
本文將協助你了解如何使用其中一項最重要的 Solana 開發工具——Anchor,以及用於在 Solana 上建構應用的 Anchor Program Registry。我們也會比較 Anchor 與 Seahorse,後者是一個以 Python 為基礎、用於與 Solana 互動的開發框架。
什麼是 Solana 帳戶模型?
開發者在 Solana 區塊鏈上建構的一切都涉及programs 與 accounts,它們負責在區塊鏈上執行程式與儲存資料。Solana 中有不同的帳戶類別,包括:
- Data accounts - 儲存資料
- Program accounts - 儲存可執行的程式
- Native accounts - 表示 Solana 上的原生程式
每個帳戶都儲存一組資訊:
- lamports - 帳戶擁有的 lamports 數量
- owner - 該帳戶的 program 擁有者
- executable - 檢查該帳戶是否可以處理指令
- data - 帳戶儲存的原始資料位元組陣列
- rent_epoch - 該帳戶下一次需繳交租金費用的 epoch
什麼是 Anchor?
Anchor 是一個用於編寫安全、可靠且高階的 Solana programs 的框架,它將帳戶的低階建構與 Solana programs 介面的修改抽象化。
框架作為基礎,讓使用者不必從零開始建立不必要的邏輯,協助使用者避免重複的程式碼,並幫助他們編寫乾淨且安全的程式。具體來說,Anchor 透過樣板程式碼提供反序列化的帳戶與指令資料、一個命令列介面(CLI),以及一個用於開發 Solana 應用程式的工作空間。
Anchor 如何運作?
Anchor 使用 macros 與 traits 為開發者產生樣板 Rust 程式碼。每個 Anchor program 由三個部分組成:
- declare_id - 用於宣告 program 鏈上位址的 macro
- #[program] - 用於標示包含 program 指令邏輯之 module 的 attribute macro
- #[account] - 用於為該 program 定義自訂帳戶類型的 attribute macro
以下是 Anchor program 的基本結構:

1. 建立預設 keypair
當我們第一次建構 Anchor program 時,會產生一組新的 key pair,作為部署該 program 的預設 keypair。
該 public key 應作為 declare_id! Marco 中指定的 programID 使用。
2. 為 program 指定指令
接著,我們可以使用 #[program] attribute 分別指定 program 的指令。每個指令函式都需要一個型別為 Context 的參數,並可選擇性地包含代表指令資料的額外函式參數。Anchor 會自動處理指令資料的反序列化,讓使用者能以 Rust 型別來操作指令資料。
3. 實作帳戶反序列化器
#[derive(Accounts)] 會在給定的 struct 上實作一個 Account 反序列化器,免去手動反序列化每個帳戶的需求。它負責執行所有必要的約束檢查,並確保帳戶符合該 program 安全執行所需的條件。
4. 呼叫 initialize 函式
當 Initialize 函式被呼叫時,該 program 會:
- 檢查傳入該指令的帳戶是否符合 Initialize struct 中指定的帳戶類型
- 依照指定的任何額外約束條件檢查帳戶
以上就是 Anchor program 的運作方式,讓你能夠開始建構 Anchor programs。若想進一步了解 Anchor programs,強烈建議查閱其官方文件。
什麼是 Anchor Program Registry(APR)?
Anchor Program Registry(APR)是一個目錄,收錄已在 Solana 區塊鏈上註冊的 Anchor programs,讓使用者能輕鬆找到並存取它們。APR 確保 Anchor programs 已在區塊鏈上完成註冊與驗證。
Anchor Program Registry 中有許多 programs 可以簡化你的工作。以下舉幾個例子:
- token_signer - 提供一整套用於 Solana 金鑰管理與安全性的 programs。
- spl_governance - 一組針對 Sealevel 平行執行環境(parallel runtime) 的鏈上 programs。
- crate_token - 讓任何人都能建立、管理並交易代幣化的資產組合(tokenized basket of assets)。
Solana 開發者如何使用 Anchor Program Registry?
Solana 開發者使用 Anchor Program Registry 存取 Solana 區塊鏈上經過驗證的 programs。Anchor Program Registry 收錄了經驗證 programs 的原始碼,讓開發者能夠存取可運作程式碼的儲存庫。
你可以依照以下流程來使用 Anchor Program Registry:
- 前往某個 Anchor Program 的位址
- 連接你的錢包
- 存取該 UI
- 簽署並發送交易以執行某個指令
APR 介面會列出該 Anchor program 支援的指令清單,以及可用來設定特定指令輸入參數的表單欄位。
什麼是 Seahorse?
Seahorse 是一個類似 Anchor 的 Solana 開發框架,但它是為 Python 開發者打造的。Seahorse 提供一整套工具,用於在 Solana 區塊鏈上建構、部署並與 programs 及 accounts 互動。它支援多種程式語言,如 JavaScript、Rust 和 Python,並附有完整的資源與文件,方便新進開發者使用。
Anchor 對比 Seahorse
學習 Anchor 的資源
有幾種資源可以協助你學習 Anchor 框架:
- Anchor Docs - 尋找最相關且最新的資訊
- Soldev - 透過範例程式碼開始用 Anchor 開發智能合約
- Sol Playground - 使用線上 IDE 開始用 Anchor 開發 programs
有大量資源可協助你學習 Anchor 框架,並開始建構屬於自己的去中心化應用程式。
開始使用 Anchor 與 Alchemy 進行開發
Anchor 框架是建構**可靠且安全的 Solana programs(智能合約)**的實用工具。此外,Anchor Program Registry 是 Solana 區塊鏈上經驗證 programs 的目錄,也是提升可組合性(composability)的重要資源。
Anchor 框架的多樣性與可擴展性,使其成為 Solana 開發者的一個具吸引力的選擇。如果你已準備好展開 Solana 開發之旅,立即註冊免費的 Solana RPC 帳戶吧!
相關總覽
Solana2026年7月27日
Solana 節點:驗證者、RPC 節點與自架
說明 Solana 節點是什麼、驗證者、RPC 節點與次級資料系統的差異,以及何時該自架、何時該使用服務供應商。
Solana2026年7月22日
Solana 歸檔資料:如何查詢完整區塊與交易歷史
說明 Solana 歸檔資料:節點為何會修剪歷史資料、哪些 RPC 方法需要歸檔存取權限,以及如何大規模查詢完整區塊與交易歷史。
Solana2026年5月28日
Solana Agent Kit vs GOAT vs ElizaOS:該選哪個框架?
比較 Solana Agent Kit、GOAT 與 ElizaOS:Solana 原生深度、多鏈廣度,或完整的 agent runtime。附程式碼範例與選擇依據。

打造區塊鏈魔法
Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。