Skip to main content
會觸及運行中網路的變更有三類:參數變更(某個風險限額、某張費率表、某個資金費率上限)、行為變更(執行本身如何運作),以及市場變更(上市與退市)。 三者的公告方式不同,但共享一個性質,而這個性質才是關鍵:變更在鏈上歷史的某個具體位置生效,該位置之前的歷史不受影響。

參數變更

風險參數、槓桿級距、資金費率上限、部位限額和費率表都是鏈上配置。改動其中任何一項,都是一筆在區塊中執行的協議交易,排在區塊優先級的最前面。 取值本身就是鏈上狀態,所以變更是看得到的,不必靠人通報。某個市場的維持保證金變了,你不需要別人告訴你:現在是多少可以讀出來,過去任一區塊是多少也可以讀出來。 配置鍵還帶有版本。某個取值變的若是結構而不是數字,新結構就寫在新鍵之下,舊鍵仍然可讀。用戶端即時解析配置,就能跨越這次變更繼續工作;把鍵路徑寫死的用戶端則會立刻發現問題,不會悄悄讀到過時的東西。參見狀態模型。

行為變更

改變執行的行為,比改一個數字更難,因為每個驗證者都必須在完全相同的時刻做出這一改變。變更若在不同節點上於不同時間生效,那不是分階段發布,那是分叉。 Intention 用鏈上開關(gate)來處理這件事。每個開關就是一個存放區塊高度的狀態鍵:新行為從這個高度開始生效。
新行為靜默發布已在程式裡,但未啟用
寫入一個開關一個存放未來區塊高度的狀態鍵
所有驗證者讀到同一個高度
行為在該區塊精確切換
該高度必須在未來開關不能設成已經過去的高度。光是這一條規則,就保證了變更的同時性。
開關不存在即為未啟用重放歷史的節點在那些高度上讀不到這個鍵,於是走舊路徑;歷史重放的正確性因此不必靠相容性矩陣。
在正在執行的版本上讀取絕不從快取讀。重放舊區塊時去讀當前值,等於把今天的規則套用到昨天的歷史上。
由此得出三個性質,每一個都是承重的: 寫入時該高度必須在未來。 開關不能設成已經過去的高度。光是這一條規則就保證了變更的同時性:每個驗證者走到那個區塊,看到的都是同一個已經存在的鍵。 開關不存在即為未啟用。 重放歷史的節點在那些高度上讀不到這個鍵,於是走的正是舊程式碼路徑。歷史重放的正確性是免費得到的,不需要誰去維護一張相容性矩陣。 開關要在正在執行的那個版本上讀取,絕不從快取讀。 重放舊區塊時去讀當前值,等於把今天的規則套用到昨天的歷史上,會算出一個不同的狀態根。所以取值一律從正在執行的那個區塊的執行視圖中讀。 同樣的機制也支援逐步啟用:旗標可以先以未啟用狀態引入,用真實流量驗證,再在預定高度打開,不必當成一次性的二進位升級整體上線。

通知期

通知期多長,看這項變更可能對你手上的部位造成多大影響。 最後一行是真實的例外,不是漏洞。部位限額若必須等一週才能收緊,那恰恰在最需要它的那一週裡毫無作用。真的用到這一條時,變更內容與原因會一併公布。
保證金要求或槓桿級距一變,你手上部位的強平價格就跟著變。這不會平掉任何東西,也不會單獨通知你。帶著部位跨過一次已公告的風險參數變更,就按新的取值重算你離強平還有多遠,不要用開倉時生效的取值。參見槓桿。

不能改變的東西

已經提交的區塊所適用的規則。 每一次規則變更,生效的高度在記錄當下都還在未來,所以重放舊區塊,套用的一定是當時生效的規則。某條規則在過去某個版本是否生效,這個問題只有一個答案,今天問和一年後問,答案一樣。 這比一條公開的政策更強。重點不在於協議不會改寫歷史,而在於這套機制根本沒有辦法表示一條「從過去開始生效」的規則。參見狀態模型。

公告

本頁的通知承諾自 2026 年 9 月 20 日的公開測試網開始生效。私有測試網變更參數和行為不會發通知,它存在的目的就是調這些。
通知期開始之後,每一次變更都會記入協議變更日誌,註明生效日期;上表要求時,還會在該日期之前先行公告。 條目的日期以變更在網路上生效的時間為準,而不是公告時間。

後續閱讀

協議變更日誌

已發布內容的帶日期記錄。

上市與退市

市場變更及其通知期。

狀態模型

為什麼配置鍵要帶版本、要即時解析。

槓桿

風險參數變更對已開部位意味著什麼。