Solana Epoch 時間:持續時間、獎勵與機制
Learn how Solana epochs work: 432,000 slots every 2-3 days. Understand staking rewards distribution, validator schedules, and epoch boundaries.
Solana Epoch 時間描述了網路完成固定時槽(slot)週期所需的時間,之後驗證者時程、質押獎勵和質押狀態變更將被處理。
本文內容: 什麼是 Solana Epoch? | Solana Epoch 的持續時間是多久? | 驗證者時程與機制 | 質押獎勵 | 質押激活與冷卻期 | Solana 與以太坊 Epoch 比較 | Epoch 邊界檢查表 | 通膨與代幣經濟學 | 查看當前 Epoch | 針對開發者 | 常見問題 | 質押決策
前言:為什麼 Solana Epoch 對所有 SOL 持有者都很重要
如果您通過 Phantom 或 Solflare 質押了 SOL,並注意到您的質押儀表板上出現了「epoch」這個詞,您並不孤單地想知道它意味著什麼。這個數字會影響您直接關心的兩件事:您新委託的 SOL 何時開始賺取質押獎勵,以及這些獎勵何時進入您的帳戶。
Solana (SOL) 是一種高性能區塊鏈(由節點網路保護的分布式數字帳本),每秒可處理數千筆交易。在數百個驗證者之間協調這些活動需要一個結構化的時間框架。這個框架就是 Epoch。託管在中心化交易所(如 Coinbase 或 Binance)上的 SOL 無法原生質押,也不參與 Epoch 獎勵週期。持有者必須將其 SOL 託管在自行管理的錢包中才能直接質押。
關鍵數據: 每個 Solana Epoch 包含精確的 432,000 個時槽,相當於現實世界中約 2 到 3 天的時間。
本文涵蓋了您需要了解的關於此術語的一切:定義、持續時間及其變化原因、質押獎勵的計時方式、每個 Epoch 邊界發生什麼事、如何查看當前 Epoch,以及開發者如何以程式化方式存取 Epoch 數據。
什麼是 Solana Epoch 時間?
Solana Epoch 是一個固定時期,包含精確的 432,000 個連續時槽,它構建了網路分配驗證者職責、分配質押獎勵和應用通膨調整的方式。在現實世界條件下,一個 Epoch 持續約 2 到 3 天。
術語「epoch」在一般運算中有不同的含義。在 Unix 系統中,epoch 是固定的時間戳參考點(1970 年 1 月 1 日)。在 Solana 的協議上下文中,epoch 是一個週期性的、離散的時間段,由時槽數量定義,而非日曆時間。這兩個概念只是同名而已。
時槽和區塊如何構成 Epoch
時槽(Slots) 是 Solana 架構中的基本時間單位。在每個時槽期間,一名指定的驗證者有機會產生一個區塊。每個時槽的目標持續時間約為 400 毫秒,但並不保證。如果指定的驗證者離線或網路壅塞,時槽將在沒有產生區塊的情況下過去。這些稱為被跳過的時槽。
區塊(Blocks) 是在時槽中產生的數據。時槽是時間窗口;區塊則是填充它的內容。有些時槽會產生區塊;被跳過的時槽則什麼都不產生。
層級結構是:一個時槽(目標約 400 毫秒)可以產生一個區塊,而 432,000 個連續的時槽構成一個完整的 Epoch。
時槽 1 到時槽 2 到 ... 到時槽 432,000 = 一個 Epoch 完成。
歷史證明(Proof of History, PoH) 是使這種時槽排序成為可能且可驗證的加密機制。PoH 是一種計時機制,而非共識機制。它不應與工作量證明(Proof of Work)或權益證明(Proof of Stake)混淆。PoH 創建了一個可驗證的歷史記錄,證明事件以特定順序和特定時間發生,而無需所有驗證者即時對時間達成一致。每個時槽在 PoH 序列中被加密錨定,這也是為什麼 Solana 能夠在約 400 毫秒的間隔處理時槽,而無需等待網路範圍的時間一致。
Solana 的架構,包括用於區塊傳播的 Turbine、用於無內存池交易轉發的 Gulf Stream,以及用於並行智能合約執行的 Sealevel,實現了高時槽吞吐量,這使得其 Epoch 結構成為可能。根據 Solana 的官方 Epoch 術語文檔,),每個 Epoch 432,000 個時槽是協議的常數。
Solana Epoch 的持續時間是多久?
Solana Epoch 由精確的 432,000 個時槽組成。以每個時槽約 400 毫秒的目標持續時間計算,這產生了約 2.0 天(172,800 秒)的理論最低持續時間。實際的 Epoch 通常在 2 到 3 天之間。
計算方法:432,000 個時槽乘以每時槽 0.400 秒等於 172,800 秒,除以每天 86,400 秒,在理論下限上等於 2.0 天。
實際掛鐘時間如何隨著實際時槽速度縮放:
- 平均每時槽 400 毫秒:172,800 秒,約 48 小時
- 平均每時槽 450 毫秒:194,400 秒,約 54 小時
- 平均每時槽 500 毫秒:216,000 秒,約 60 小時
注意: 每個 Epoch 的 432,000 個時槽數量由協議固定且不會改變。掛鐘持續時間根據網路狀況在約 2 到 3 天之間變化。
導致實際 Epoch 持續時間與理論最低值不同的三個因素:
跳過的時槽: 當驗證者錯過了他們被分配的領導者時槽時,該時槽就被跳過,網路繼續前進。PoH 序列繼續,但該時槽沒有產生區塊。跳過的時槽會延長完成 432,000 個時槽所需的掛鐘時間。
網路壅塞: 高交易量時期會減慢時槽處理速度,在許多時槽中增加額外時間。
網路中斷: Solana 主網歷來經歷過中斷。在發生中斷期間,時槽處理會暫停,從而延長了跨越該時期的任何 Epoch 的掛鐘持續時間。
實際應用:將 Epoch 持續時間視為約 2 到 3 天,而不是固定間隔。有關當前平均 Epoch 持續時間,請參閱 Solana Beach 或 Solana 基金會的文檔。Solana 協議參數可能會更改。
Solana Epoch 如何運作:驗證者時程與網路機制
在每個 Epoch 開始時,Solana 網路會計算一個完整的領導者時程,預先將即將到來的 Epoch 中的每個時槽分配給特定的驗證者。分配取決於 Epoch 邊界快照時每個驗證者的質押權重。
驗證者(Validators) 是 Solana 網路上的節點,負責處理交易、產生區塊並對帳本狀態進行投票。委託者(Delegators) 是 SOL 持有者,他們將代幣質押給驗證者,而不是自己運行節點。這些角色是不同的:驗證者運行基礎設施;委託者貢獻經濟權重。
權益證明 (PoS) 是與 PoH 一同運作的共識層。Solana 透過其以 PoH 作為時鐘的 Tower BFT(拜占庭容錯)來實施 PoS。在一個週期(epoch)中累積的質押權重決定了每個驗證者在下一個週期的領導者時程表中被分配時段的機率。PoS 使週期在純粹的時間記錄之外,還具有經濟上的意義。請勿將 Solana 的 Tower BFT 實施與以太坊的 PoS 混淆,後者是一個結構上不同的系統。
Solana 的質押模型類似於委託質押(有時稱為委託權益證明,或 DPoS)。在此模型中,代幣持有者將其質押分配給驗證者,而不是自己運行基礎設施。SOL 持有者可以委託給任何驗證者;委託將在預熱期後的下一個週期邊界生效。委託者分享驗證者的質押獎勵,扣除驗證者的佣金率。任何對委託的更改,無論是新的分配、切換還是提款,都將在週期邊界生效,而不是立即生效。這是協議層面導致質押更改需要預熱期或冷卻期的原因。Solana 的機制技術上結合了 PoH 和 Tower BFT,而非純粹的 DPoS;請使用「委託質押」作為主要描述符。
如何在每個週期邊界計算領導者時程表
領導者時程表是預先計算好的、確定性的驗證者在週期內特定時段的分配。「確定性」意味著網路上的任何節點都可以從相同的輸入獨立計算出完整的時程表,而無需與其他節點通信。此設計使時程表具有可驗證性和效率。
計算使用週期邊界快照時每個驗證者的質押權重。持有 1% 總質押 SOL 的驗證者會在領導者時程表中獲得約 1% 的 432,000 個時段。該時程表會在每個週期邊界使用更新的質押權重從頭開始重新計算。週期中間委託的質押不會影響當前週期的領導者時程表;它只影響下一個週期的時程表。
完整的領導者時程表機制記錄在 Solana 的領導者輪換文件.) 中。
許多建構在 Solana 上的 流動性 協議都意識到週期的存在,並圍繞週期邊界安排流動性事件、治理投票或獎勵分發。
提示: 驗證者在週期邊界時的質押權重決定了它們在下一個週期中獲得的時段數量。週期中間委託的質押不會影響當前週期的時程表。
投票積分如何在週期內累積
每個驗證者維護一個 投票帳戶:這是一個特殊的鏈上帳戶,記錄驗證者在每個時段中對帳本狀態的投票。投票帳戶不是一個治理系統。在 Solana 中,「投票」是指驗證者透過加密方式證明區塊的有效性,這是一種共識機制行動。
每次成功的投票都會為驗證者贏得一個 投票積分。在週期邊界,協議會統計完成週期內累積的所有投票積分。驗證者在該週期的質押獎勵份額與其投票積分分數相對於該週期可能獲得的最大積分成正比。
錯過投票的驗證者將獲得比例上較少的獎勵,其委託者也因此獲得較少。在 Phantom 和 Solflare 等錢包 UI 中,此指標顯示為「正常運行時間」或「投票成功率」。投票積分分數較高的驗證者將為其委託者提供每週期更多的質押獎勵。
Solana 週期與質押獎勵:何時以及如何獲得支付
Solana 的質押獎勵大約每 2 到 3 天在每個週期結束時自動分發,並直接計入您的質押帳戶,無需您採取任何行動。
質押帳戶在鏈上持有委託的 SOL,並且與常規的 Solana 錢包帳戶分開。它們會經歷四種狀態:非活躍、激活中、活躍,然後是取消激活。狀態轉換發生在週期邊界。大多數錢包界面(Phantom、Solflare)會為用戶隱藏質押帳戶的複雜性,但底層機制解釋了您儀表板上可見的計時行為。有關完整的質押帳戶規格,請參閱 Solana 的質押文件.
重要提示: 質押獎勵大約每 2 到 3 天在週期邊界自動分發。無需手動操作。獎勵直接添加到您的質押帳戶本金,並為下一個週期自動複質。
您的獎勵份額如何計算
您在給定週期的質押獎勵遵循以下關係:
- 協議計算您質押佔總網路質押的比例份額(您的質押除以網路上的所有質押 SOL)。
- 該份額乘以該週期的總發行量(根據當前發行計劃,在週期邊界新鑄造的 SOL)。
- 在剩餘部分流向委託者之前,會從驗證者的總獎勵分配中扣除驗證者的佣金率。
僅供說明:如果網路在給定週期發行了 100 個 SOL 作為發行獎勵,而您的質押佔總質押 SOL 的 0.01%,那麼您的稅前(佣金前)份額是 0.01 SOL。然後,在將淨額計入您的帳戶之前,會從驗證者的份額中扣除驗證者的佣金率。
對於質押 年化收益:該關係大約是(年發行量除以總質押 SOL)乘以(1 減去佣金率)。由於發行率和總質押 SOL 都在隨時間變化,因此硬編碼的年化收益數字只能準確一個週期。有關當前估算,請使用您錢包的質押界面或 Solana 質押計算器。
Solana 的發行模型 如下:該協議有一個程序化的發行計劃,在主網啟動時年發行率超過 8%,每年下降 15%,目標是長期維持在 1.5%。在每個週期邊界,都會根據當前發行率新鑄造 SOL,並按質押權重比例分發為質押獎勵。此發行是指協議層面的代幣發行,而非宏觀經濟消費者物價指數的上漲。有關當前費率,請參閱 Solana 基金會的發行文件.
佣金率是驗證者在將剩餘部分分配給委託者之前保留的質押獎勵百分比。這不是由委託者支付的交易費用。佣金率的變更僅在週期邊界生效。如果您的驗證者在中途宣布提高費率,該變更要到下一個週期邊界才會影響您的獎勵,從而給您時間選擇是否重新委託。
驗證者每個週期賺取兩類獎勵。主要類別是協議鑄幣計劃的發行獎勵。次要類別是其分配時段內收集的交易費用的 50%;剩餘的 50% 費用被銷毀,減少了總 SOL 供應量。委託者獲得其質押獎勵的大部分來自發行部分;費用獎勵貢獻較小。
您的週期獎勵可能有所不同的原因
您的質押獎勵在一個週期到下一個週期之間可能因四個原因而異:
- 您的驗證者的投票積分分數發生變化(錯過的投票減少了驗證者的獎勵份額,委託者獲得的比例減少)。
- 您的驗證者的佣金率在週期邊界發生變化。
- 總網路質押發生變化(總質押池更大,則您在相同發行量中的比例份額會減少)。
- 發行率在年度計劃里程碑時降低。
獎勵會添加到您的質押帳戶本金,並在下一個週期自動複質,無需您採取任何行動。
如果您的質押是新委託的,尚未顯示獎勵,則是因為處於質押預熱期。這將在下一節中介紹。
質押啟用與冷卻期:週期如何決定您的質押決策
若您的質押在錢包中顯示為「啟用中」且尚未賺取獎勵,此為正常行為。新的委託不會在中途啟用。它們會進入預熱期,並在下一個週期邊界開始時啟用。這是刻意設計的,並非錯誤。
質押帳戶的狀態序列:
非啟用 (Inactive)(未委託任何質押)導向 啟用中 (Activating)(於當前週期委託,尚未獲得獎勵)導向 啟用 (Active)(從下一個週期邊界開始,賺取獎勵)導向 停用中 (Deactivating)(提出贖回請求後,不再獲得新獎勵)最終返回 非啟用 (Inactive)(於冷卻週期邊界完成後可提取)。
重要提示: 質押與贖回皆受週期限制。在規劃您的質押變動時,請預留最多一個完整週期(2 至 3 天)的時間。有關完整的協議規範,請參閱 Solana 的質押帳戶文件)
在週期的何時進行委託是否重要?
預熱規則如下:
- 您在當前週期的任何時間點委託 SOL。
- 您的質押帳戶進入「啟用中」狀態,直到該週期結束。
- 在下一個週期邊界,您的質押將轉為「啟用」狀態並開始賺取獎勵。
- 您的第一筆獎勵將在第一個啟用週期結束時收到。
無論您在週期的何時委託,您的質押都會在下一個週期邊界開始時啟用。在週期開始時進行委託,意味著幾乎需要等待整個週期才能啟用。在週期接近結束時進行委託,則只需等待剩餘的時間,可能只有幾個小時。等待時間總是「直到下一個週期邊界」,而不是固定的日曆時間。
在週期內等待特定時間點進行委託,沒有實質上的好處。
贖回需要多長時間?
贖回遵循類似的過程:
- 您在當前週期的任何時間點提交贖回(停用)請求。
- 您的質押帳戶進入「停用中」狀態。
- 在下一個週期邊界,將處理停用請求。
- 您的 SOL 在該週期結束後將變得可流通且可提取。
請預留一個完整週期(2 至 3 天)的時間,以便在啟動贖回後才能存取您的 SOL。
流動質押協議(例如 mSOL 或 jitoSOL)以不同的方式處理預熱和冷卻期,可立即提供流動性代幣。本文僅涵蓋原生質押。
驗證器切換: 如果您切換驗證器,舊的質押必須完成一個週期的冷卻,而新的質押必須完成一個週期的預熱。此轉換可能導致錯過一個週期的獎勵。傭金率變更將在週期邊界生效,因此如果您的當前驗證器提高了傭金率,您有直到下一個週期邊界的時間來重新委託,以免新費率影響您的獎勵。
三項質押決策總結:
- 委託時間: 隨時委託。直到下一個週期邊界為止的等待時間,與您在當前週期的哪個位置無關。
- 驗證器切換: 考慮轉換期間可能出現的一個週期的獎勵斷檔。切換前請檢查新驗證器的投票積分分數。
- 取消委託: 請預留一個完整週期,之後您的 SOL 才會變得可流通。請勿委託您可能在 2 至 3 天內需要存取的 SOL。
Solana 週期與 Ethereum 週期:主要差異
儘管名稱相同,Solana 和 Ethereum 的週期卻有不同的目的,並且在完全不同的時間尺度上運行。此比較引用了 Ethereum 於 2022 年 9 月合併後(Post-Merge)的權益證明架構。合併前的 Ethereum 具有不同的週期機制,故不包含在內。
| 特徵 | Solana | Ethereum (合併後) |
|---|---|---|
| 每個週期的插槽數 | 432,000 | 32 |
| 插槽持續時間 | 約 400 毫秒 | 約 12 秒 |
| 週期持續時間(實際) | 2 至 3 天 | 約 6.4 分鐘 |
| 共識機制 | 歷史證明 + Tower BFT (PoS 變體) | 權益證明 (Gasper/Casper FFG) |
| 獎勵分配時間 | 每個週期邊界(約 2 至 3 天) | 每日(與週期節奏無關) |
| 區塊生產者分配 | 每個週期的確定性領導者排程 | 每個插槽的委員會制驗證器選取 |
Ethereum 的週期(約 6.4 分鐘)主要用於通過 Casper FFG 進行最終性檢查點和驗證器委員會輪換。Ethereum 每日分配質押獎勵,其節奏與週期結構無關。
Solana 的週期(約 2 至 3 天)用於領導者排程分配、質押獎勵分配、代幣增發鑄造、質押帳戶狀態轉換和傭金率更新。所有這些功能都受週期限制。
Solana 的較短插槽持續時間(約 400 毫秒,而 Ethereum 約 12 秒)允許在長達數天的週期窗口內容納 432,000 個插槽。Ethereum 在約 6.4 分鐘內完成 32 個插槽。這兩種架構反映了針對吞吐量和最終性節奏的不同設計優先級。有關 Ethereum 的週期規格,請參閱 Ethereum 的合併後共識文件.
週期邊界發生什麼事:完整檢查表
在每個週期邊界,Solana 協議都會自動執行一系列固定的狀態轉換和經濟事件。
- 下一個週期的領導者排程將根據當前驗證器的質押權重計算。
- 處於「啟用中」狀態的質押帳戶將轉為完全啟用並開始賺取獎勵。
- 處於「停用中」狀態的質押帳戶將變得完全可流通且可提取。
- 將為所有啟用質押計算質押獎勵並分發給質押帳戶。
- 將根據當前的代幣增發計劃鑄造新的 SOL,並作為獎勵進行分發。
- 驗證器先前排定的傭金率變更將在新的週期生效。
- 在已完成週期中累積的投票積分將進行統計並重置,以供下一個週期使用。
注意: 事件 2 至 5 和事件 7 會自動發生。驗證器和委託人無需採取任何行動。事件 6 是唯一需要驗證器預先輸入(設定新的傭金率)的事件。
事件 2 和 3 對委託人最為重要:這是新委託質押變得啟用以及質押的 SOL 可提取的時刻。
事件 1 對驗證器營運者最為重要:下一個週期的插槽分配將在此時刻根據週期邊界快照的質押權重鎖定。
事件 4 和 5 相輔相成:代幣增發計劃鑄造新的 SOL,而新鑄造的 SOL 將根據質押權重和投票積分分數,按比例分發為質押獎勵。
事件 6 記錄了一項大多數面向質押者的內容都會忽略的規則。驗證器無法在中途變更其傭金率。在週期內宣布的任何變更將在此(週期邊界)生效,讓委託人在週期內有時間觀察變更並選擇重新委託。
Solana 的代幣增發模型與週期代幣經濟學
Solana 的質押獎勵不來自固定的資金池。它們是通過協議內建的程式化代幣增發計劃,在每個週期產生的。
此處的「代幣增發」特指協議級別發行新的 SOL 代幣,而非宏觀經濟的消費者物價通貨膨脹。這兩個概念是不同的,不應混淆。
代幣增發計劃:Solana 最初的年化代幣增發率超過 8%。該比率在一個反通貨膨脹模型下每年下降 15%,朝著長期目標 1.5% 邁進。在每個週期邊界,將根據當前代幣增發率鑄造新的 SOL,並按質押權重按比例分發給驗證器及其委託人。這是質押獎勵的來源:每位委託人將獲得該週期新發行 SOL 的一部分。
驗證者會賺取兩類 epoch 獎勵。主要類別是來自鑄造排程的膨脹獎勵。次要類別是其分配到的槽位期間收集的交易費用的 50%;剩餘的 50% 會被燒毀,減少總 SOL 供應量。膨脹部分是委託人質押獎勵的主要驅動因素。
膨脹率會逐年降低。如需目前的費率,請參閱 Solana 基金會的膨脹文件.)。文章中引用的任何特定費率,隨著排程的推進都會過時。
如何檢查目前的 Solana Epoch
三個區塊瀏覽器提供即時的 Solana epoch 資料,每個都會在槽位處理時自動更新。
注意: Epoch 編號大約每 2 至 3 天變更一次。文章中引用的任何特定 epoch 編號,在您閱讀時都會過時。請使用以下工具獲取目前資料。
步驟 1: 前往 Solana Beach。首頁上的 epoch 小工具會顯示目前的 epoch 編號、目前 epoch 已經過的槽位數、剩餘槽位數,以及到下一個 epoch 邊界的大約時間。
步驟 2: 前往 Solscan (solscan.io)。網路統計面板中的「Epoch」分頁會顯示目前的 epoch 數量,以及按 epoch 細分的驗證者績效資料。
步驟 3: 前往 Solana Explorer (explorer.solana.com)。叢集統計面板會顯示 epoch 資訊、槽位高度和交易計數。
開發人員也可以從命令列查詢 epoch 資料:
solana epoch-info此命令會傳回目前的 epoch 數量、該 epoch 內的槽位索引,以及剩餘的槽位數。
若要以程式化方式存取 epoch 資料,包括在鏈上程式或透過 JSON-RPC 讀取 epoch 設定,請參閱下方的開發人員區段。EpochSchedule sysvar 是鏈上的 epoch 設定資料來源。
開發人員專區:透過 EpochSchedule Sysvar 和 RPC 存取 Epoch 資料
本區段涵蓋了為在 Solana 上建置具備 epoch 感知能力的應用程式的開發人員,提供以程式化方式存取 epoch 資料的方法。非技術讀者可以跳至常見問題區段。
若要實作具備 epoch 限制的代幣歸屬、治理投票視窗、週期性協定再平衡和驗證者績效追蹤等功能的應用程式,則需要具備 epoch 感知能力的邏輯。
EpochSchedule Sysvar
Sysvar 是一種特殊的唯讀 Solana 系統帳戶,可將網路設定資料公開給鏈上程式。 EpochSchedule Sysvar 會公開 epoch 排程設定,其中包含:
slots_per_epoch:432,000(主網的協定常數)leader_schedule_slot_offset:432,000(用於計算領導者排程的位移)warmup:布林值(是否啟用初始 epoch 預熱期)first_normal_epoch:具有完整槽位計數的第一個 epochfirst_normal_slot:第一個正常 epoch 的第一個槽位
EpochSchedule 是數種 Solana Sysvar 之一;其他(Clock、Rent、StakeHistory、SlotHashes)在此不涵蓋。完整的欄位定義可在 EpochSchedule Sysvar 文件.) 中取得。
slots_per_epoch 值(432,000)是所有 epoch 持續時間計算的固定協定常數。PoH 槽位時間是 EpochSchedule 計算的基礎:Sysvar 會公開排程結構,而實際的實際時間則取決於真實世界的槽位處理速度。
透過 getEpochInfo RPC 方法讀取 epoch 資料
getEpochInfo JSON-RPC 方法會傳回目前的 epoch 狀態。使用空的參數陣列呼叫它:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getEpochInfo",
"params": []
}回應:
{
"jsonrpc": "2.0",
"result": {
"absoluteSlot": 166598,
"blockHeight": 166500,
"epoch": 27,
"slotIndex": 2790,
"slotsInEpoch": 432000,
"transactionCount": 22661093
},
"id": 1
}欄位說明:
absoluteSlot:整個鏈歷史中的目前槽位編號blockHeight:目前的區塊高度epoch:目前的 epoch 編號slotIndex:目前 epoch 中的槽位索引(範圍從 0 到 431,999)slotsInEpoch:在主網上永遠是 432,000(協定常數)transactionCount:迄今為止處理的總交易數
slotIndex 值告訴您目前已進行到目前 epoch 的哪個階段。將 slotIndex 減去 slotsInEpoch(432,000)即可計算目前 epoch 中剩餘的槽位數。
主要區別:EpochSchedule 公開固定的排程設定資料;getEpochInfo 傳回動態的目前狀態。使用 EpochSchedule 讀取排程參數;使用 getEpochInfo 或 Clock Sysvar 在執行階段讀取目前的 epoch 編號。
在鏈上程式中存取目前的 epoch 編號
要在鏈上程式中讀取目前的 epoch 編號,請存取 Clock Sysvar。epoch 欄位會以 u64 格式傳回目前的 epoch 編號。
use solana_program::sysvar::clock::Clock;
use solana_program::sysvar::Sysvar;
// 在您的指令處理器內部:
let clock = Clock::get()?;
let current_epoch: u64 = clock.epoch;
// current_epoch 現在持有目前的 Solana epoch 編號此模式適用於任何需要依據 epoch 來限制邏輯的鏈上程式:在特定 epoch 編號釋放歸屬代幣、將治理投票限制在定義的 epoch 視窗內,或依 epoch 追蹤驗證者績效。
關於 Solana Epoch 時間的常見問題
以下問題涵蓋了在所有五個「人們也問」群組中,關於 Solana epoch 最常見的搜尋。
Solana 的 epoch 是什麼?
Solana 的 epoch 是一個固定週期,長度為 432,000 個連續槽位,在實際條件下約持續 2 至 3 天。每個 epoch 構成了 Solana 網路如何將區塊生產責任分配給驗證者、累積投票積分、分配質押獎勵、透過膨脹鑄造新的 SOL,以及處理質押帳戶狀態變更的方式。所有這些事件都會在 epoch 邊界自動發生。
Solana 的 epoch 包含恰好 432,000 個槽位。以協定目標的每個槽位約 400 毫秒的時間來看,理論最小值約為 2.0 天(48 小時)。實際上,跳過的槽位和網路狀況會將實際 epoch 持續時間推升至 2 至 3 天。每個 epoch 的槽位數是固定的協定常數;實際時間是可變的。
Solana 的質押獎勵會在每個 epoch 結束時自動分配,大約每 2 至 3 天一次。無需手動操作。在 epoch 邊界,協定會根據每個委託人其質押佔總質押 SOL 的比例、該 epoch 的驗證者投票積分分數,以及目前的膨脹率來計算其獎勵。獎勵會直接存入委託人的質押帳戶並自動再質押。
當您委託 SOL 時,您的質押會進入「啟用中」狀態,並且在下一個 epoch 邊界之前不會賺取獎勵。這個預熱期可能需要幾小時(如果您在 epoch 結束前委託)到將近 2 至 3 天(如果您在 epoch 開始時委託)。啟用時間取決於下一個 epoch 邊界,而不是自您委託以來經過的時間。
在每個時期邊界,Solana 協議會自動執行七個事件:(1) 下一個時期的領導者排程根據目前的質押權重計算;(2) 啟動中的質押帳戶將完全啟用;(3) 停用中的質押帳戶將變得可提取;(4) 質押獎勵將計算並分配;(5) 新的 SOL 將根據通膨排程鑄造;(6) 已排隊的驗證者佣金率變更將生效;(7) 投票點數將被統計並重置。
Solana 的領導者排程如何運作?
領導者排程是驗證者在一個時期內被分配到特定槽位的確定性、預先計算的指派。在每個時期邊界,網路會根據當時每個驗證者的質押權重,計算出在整個即將到來的時期中,哪些驗證者被分配到哪些槽位。任何節點都可以從相同的輸入獨立計算出相同的排程。質押權重較大的驗證者將被分配到不成比例更多的槽位。
Solana 的時期與以太坊的時期有何不同?
Solana 的時期包含 432,000 個槽位,持續時間約為 2 到 3 天。以太坊的時期(合併後)包含 32 個槽位,持續時間約為 6.4 分鐘。兩者有不同的用途:Solana 時期用於領導者排程指派、獎勵分配和通膨鑄造。以太坊時期透過 Casper FFG 處理最終性檢查點和驗證者委員會輪換。以太坊每天分配質押獎勵,其週期與其時期結構分開。
如何檢查目前的 Solana 時期?
三個工具提供即時時期數據:Solana Beach 在其首頁顯示目前的時期號碼、已經過的槽位和剩餘時間。Solscan (solscan.io) 在其網路統計面板中提供時期數據。Solana Explorer (explorer.solana.com) 在叢集統計面板中顯示時期資訊。開發人員也可以透過 Solana CLI 執行 solana epoch-info。時期號碼大約每 2 到 3 天變更一次。
我有可能因為在錯誤的時間委託而錯過獎勵週期嗎?
無論何時委託,都不會永久錯過獎勵週期。不論您在時期的哪個時間點委託,您的質押將在下一個時期邊界的開始時啟用,並從那時起賺取獎勵。如果您在時期結束時委託,您的等待時間會較短。如果您在時期開始時委託,您將等待將近一個完整的時期。您不會錯過獎勵;您只是延遲了首次賺取獎勵的時期。
一年有多少個 Solana 時期?
以理論上最短的 2.0 天/時期計算,一年約有 182 個時期(365 天除以 2.0 天/時期)。以更典型的實際情況 2.5 天/時期計算,一年約有 146 個時期。確切的數量會因全年網路效能而異。
Solana 的時期年化收益是多少?
Solana 的質押年化收益 (APY) 不是固定的,無法以單一數字表示。其關係大約是:(年度通膨發行量 / 總質押 SOL) 乘以 (1 - 您的驗證者佣金率)。由於通膨率和總質押 SOL 均隨時間變化,年化收益會隨著每個時期而改變。如需目前估計值,請使用您的錢包質押介面、Solana 質押計算器,或參考 Solana 基金會的通膨文件。
利用時期知識做出更佳的質押決策
Solana 的時期是網路的基本協調週期:432,000 個槽位,大約 2 到 3 天,所有經濟事件都在每個時期邊界自動觸發。
閱讀本文後,您現在可以自信地做到以下四件事:
- 定義什麼是 Solana 時期:一個固定週期,恰好包含 432,000 個連續槽位,用於安排驗證者排程、獎勵分配和通膨。
- 說明其持續時間:在實際情況下約 2 到 3 天,視槽位處理速度而定。
- 解釋為何持續時間會有所不同:跳過的槽位、網路擁塞和歷史中斷可能導致實際時間超過理論上的 2.0 天最短時長。
- 知道獎勵何時到帳以及質押何時啟用:兩者都在時期邊界自動發生,無需任何操作。
針對您的 Solana (SOL) 質押活動,有三個實用重點:
- 質押獎勵大約每 2 到 3 天到帳,自動存入您的質押帳戶。
- 預計新委託的 SOL 需要 2 到 3 天才能啟用,之後才可能預期首次獎勵。
- 若要更換驗證者,請考慮過渡期間潛在的一個時期獎勵空窗期,並驗證新驗證者的投票點數。
將 Solana Beach 或 Solscan 加入書籤,以便在獎勵週期之間追蹤目前時期和您的驗證者投票點數。
本文僅供參考和教育目的。它不構成財務或投資建議。質押加密貨幣涉及風險,包括損失風險。在做出任何質押或投資決策前,請務必自行研究。Solana 協議參數和網路統計數據,包括通膨率和平均時期持續時間,可能會隨時變動。如需目前數據,請參考 Solana 基金會的官方文件或 Solana 區塊瀏覽器.
相關 Solana 技術指南
正在研究質押相關產品的讀者可以分別查看 SOL 賺幣) 和 SOL 價格頁面)。產品的可用性、條款和風險因地區而異,並可能隨時變動。