我花了一些時間思考:在授權系統中,策略究竟代表什麼。起初,我以爲規則本身就是標識(identity)。當策略存在之後,每一次未來的授權都會簡單地指向同一套邏輯,並從那裏繼續。隨着我越深入研究 Newton Mainnet Beta,我越意識到該協議劃定了不同的邊界。

策略不僅僅是可執行的邏輯。每一次授權都會針對特定的策略配置進行評估,而該配置會成爲“被識別”的一部分。結果是,授權不僅與策略做了什麼有關,也與它被設想用於運行的精確條件有關。

這改變了我對政策演進的看法。更新設定不只是把某個選項在幕後調整而已。它會為未來的評估建立新的參考點。先前的授權仍然會與其產生時所存在的設定保持關聯,而不是在不知不覺中默默繼承之後發生的任何變更。

最引人注目的是它不只是更新政策的能力。大多數系統最終都需要調整操作參數。真正有趣之處在於,Newton 將設定(configuration)視為值得擁有自身身分的概念,而不是被隱藏在某個恆定規則之後的東西。

我認為這個邊界具有實務價值。它讓政策的演進變得更清楚明確,因為授權(authorization)永遠都能在其被建立時的脈絡中被理解。與其去追問在某個較晚的時間點,某條規則剛好是什麼版本,應用程式可以推理出最初產生該授權的精確設定。

當然,這同時也帶來另一項責任。變更設定(configuration)會成為授權生命週期的一部分,而不是單獨的行政操作。開發者必須思考政策更新會如何影響未來的請求,同時也要意識到較早的授權決策屬於先前的設定狀態。

這大概是 Newton Mainnet Beta 這次帶給我的最大思維轉變。協定(protocol)不只是用來辨識政策邏輯;它也在辨識賦予政策實際意義的操作情境。由於把設定變更視為可見的生命週期事件,而不是看不見的背景更新,因此授權會更容易被理解。

@NewtonProtocol #Newt $NEWT