鏈的可用資源是有限的。資源包括內存使用、存儲 I/O、計算、交易/塊大小和狀態數據庫大小。有幾種機制可以管理對資源的訪問,并防止鏈中的各個組件消耗過多的資源。重量(Weights)是用于管理驗證區塊所需時間的機制。一般來說,這來自于限制存儲 I/O 和計算。
注意:重量不是用于限制對其他資源的訪問,例如存儲本身或內存占用。有其他機制用于這個。
塊可以包含的重量是有限的,可選的重量消耗(即不需要作為塊的初始化或終結階段的一部分部署的重量,也不需要用于強制的固有外部重量)通常通過經濟措施來限制,或者簡單地說,通過交易費用來限制。重量系統的費用含義包含在交易費用文檔中(https://substrate.dev/docs/en/knowledgebase/runtime/fees)。
Substrate 將一個重量單位定義為在固定參考硬件(Intel Core i7-7700K CPU,64GB RAM 和 NVMe 固態硬盤)上執行時間的皮秒(微微秒)。參考硬件上的基準測試使重量在 runtime 之間具有可比性,從而允許來自不同來源的軟件組件的可組合性。為了針對不同的驗證人硬件假設去調節 runtime,可以設置不同的最大塊重量。例如,為了允許驗證人參與,速度只有參考機器的一半,最大塊重量應該是默認值的一半,保持默認的塊時間。
《美國銀行家》:三年內超過三分之一的銀行將提供加密服務:12月19日,《美國銀行家》 ( American Banker)根據對175位高管的調查結果發布了2022年銀行業預測,其中包括全球和社區金融公司的C級、區域和部門高管。根據該報告,明年加密貨幣將在傳統銀行業中發揮更大的作用,近40%的受訪者表示,他們明年可能會向零售客戶提供加密服務;目前約有10%的客戶在其客戶賬戶中管理比特幣或其他數字貨幣;平均而言,受訪者表示,他們4%的消費者客戶目前擁有某種類型的加密貨幣;60%的調查參與者表示,他們預計消費者客戶的加密貨幣所有權將在2022年增加。(DailyCoin)[2021/12/19 7:49:00]
最大塊重量應等于目標塊時間的三分之一,分配三分之一用于塊構造,三分之一用于網絡傳播,三分之一用于導入和驗證。雙倍塊時間會雙倍最大塊重量。這些優化選項為 runtime 開發人員提供了一種方法,使其能夠在每秒交易數與硬件需求之間為其場景進行最佳權衡。這些權衡可以通過 runtime 更新進行調整,以跟上硬件和軟件的改進。
媒體:薩爾瓦多2020年GDP不到比特幣市值三分之一:金色財經報道,據半島電視臺消息,薩爾瓦多將比特幣定為法幣后仍需面臨諸多問題,主要原因是薩爾瓦多是一個小國,其2019年的國內生產總值為269億美元,而在2020年,因新冠危機產生的負面影響,該國的國內生產總值減少至246億美元,只占到比特幣市值的27%左右。另外還需要關注薩爾瓦多應對比特幣價值波動的能力,許多公民可能并不喜歡使用比特幣進行交易,盡管法律規定了接受該貨幣的義務,但是人們的利益會因此面臨更多的風險。[2021/9/10 23:14:14]
重量表示區塊鏈必須驗證區塊的有限時間。這包括計算周期和存儲 I/O。自定義實現可以使用復雜結構來表示這一點。Substrate 重量只是一個數值(https://crates.parity.io/frame_support/weights/type.Weight.html)。
過去一小時推特討論量:排名前三分別為BTC、ETH及AXS:CoinTrendz.com數據顯示,過去一小時推特討論量排行中,BTC憑借187的討論量位居第一,ETH以95的討論量排名位居第二,AXS以58的討論量排名第三位。討論量排名四至十位的分別為:XTZ(53)、SHIB(50)、DOGE(43)、EGLD(42)、BNB(39)、ADA(33)、KCS(24)[2021/7/15 0:54:48]
重量的計算應始終:
在調度前可計算。塊生成器應該能夠在實際決定是否接受它之前檢查可調度的重量。
本身消耗的資源很少。消耗同樣的資源去計算交易重量是沒有意義的,當它會在執行中花費掉。因此,重量計算應該比調度輕得多。
能夠在不咨詢鏈狀態的情況下確定所使用的資源。在不需要昂貴的 I/O 的情況下,重量能夠很好地表示固定的測量值或僅基于可調度函數的參數的測量值。當成本取決于鏈的狀態時,重量就不那么有用了。
數據:比特幣期貨未平倉金額達37億美元,OKEx占近三分之一:據Skew數據顯示,比特幣期貨未平倉金額約為37億美元,其中OKEx未平倉比特幣金額超10億美元,BitMEX的比特幣未平倉金額為9.4億美元。[2020/6/2]
在可調度的重量嚴重依賴于鏈狀態的情況下,有兩個選項可用:
確定或引入一個強制上限,以確定可調度的可能承受的重量。如果強制上限和可調度的最小可能重量之間的差異很小,則可以假定它始終處于重量上限,而無需咨詢狀態。然而,如果差異太大,那么進行較少交易的經濟成本可能太大,這將扭曲激勵機制,造成吞吐量的低效率。
要求將有效重量(或可用于有效計算的前體)作為參數傳遞給調度。收取的重量應以這些參數為基礎,但也包括在調度期間驗證這些參數所需的時間。必須進行驗證,以確保重量參數與鏈上狀態準確對應,如果不符合,則操作可能出錯。
動態 | 三分之一的墨西哥企業將允許加密貨幣付款:據cryptonews消息,根據一項新研究,超過三分之一的墨西哥企業表示他們已經開始使用一種新系統,該系統很快就會允許他們接受加密貨幣的付款。普華永道墨西哥報告稱,作為該公司2018年更大的全球信息安全狀況調查的一部分,它發現其調查的墨西哥公司中有38%表示他們希望開始使用加密貨幣作為一種付款方式。與此同時,33%的公司表示他們已經開發或采用了允許他們處理加密貨幣交易的薪酬平臺。[2018/11/15]
有幾個因素會影響執行時間,從而影響重量計算。一個很大的貢獻者是一個可調度執行的數據庫訪問數。由于數據庫訪問的成本在很大程度上取決于數據庫后端和存儲硬件,因此重量計算是參數化的,而不是數據庫讀寫的重量成本。這些成本是通過在一些參考硬件上對每個可用的數據庫后端進行基準測試來確定的。這允許在不更改所有重量計算的情況下切換數據庫后端。
除了只使用常量進行預調度重量計算外,開發人員還可以將給定可調度對象的輸入參數考慮在內。當執行時間取決于例如一個參數的長度時,這非常有用。重要的是,這些計算本身不需要任何有意義的工作。使用一些基本算法,可以從輸入參數中輕松計算預調度的最大重量。
系統模塊(System pallet )負責在執行時累積每個塊的重量,并確保其不超過限制。交易支付模塊(Transaction Payment pallet)負責解釋這些重量并根據這些重量扣除費用。重量功能是 runtime 的一部分,因此可以根據需要進行升級。
在某些情況下,可調度的實際重量不能從其輸入中簡單地計算出來。例如,重量可能取決于可調度的邏輯路徑。如果在調度后沒有任何方法來校正重量,我們會不斷高估這些可調度的價格,然后再多收費,因為我們必須在調度前假設最壞的情況,以確保鏈條的安全。
發布調度后的重量修正允許任何可調度的在執行后返回其實際重量。此重量必須小于或等于調度前最壞情況的重量。要允許用戶包含外部用戶,他們仍然必須能夠支付最大重量,即使最終付款將基于實際重量。
除了影響費用之外,重量系統的主要目的是防止一個區塊被執行時間過長的交易填滿。在塊內處理交易時,系統模塊將塊的總長度(以字節為單位的編碼交易的總和)和塊的總重量相加。如果這兩個數字中的任何一個超過了限制,則該區塊不接受進一步的交易。這些限制在 MaximumBlockLength 和 MaximumBlockWeight是有定義的。
關于這些限制的一個重要注意事項是,其中一部分是為 Operational 調度類保留的。此規則適用于這兩個限制,比率可以在 AvailableBlockRatio中找到。
例如,如果塊長度限制為 1 兆字節,并且比率設置為 80%,則所有交易都可以填充塊的前 800 千字節,而最后 200 千字節只能由操作類填充。
還有一個 Mandatory 調度類,可以用來確保外部始終包含在塊中,而不管它對塊重量的影響如何。請參閱交易費用文檔(https://substrate.dev/docs/en/knowledgebase/runtime/fees)以了解有關不同調度類以及何時使用它們的更多信息。
下一步
了解更多
Substrate 菜譜中有包含自定義重量和重量費用的案例。
案例模塊:https://github.com/paritytech/substrate/blob/master/frame/example/src/lib.rs
查看給自定義 runtime 函數添加一個交易重量的例子。https://substrate.dev/recipes/3-entrees/weights.html
交易支付模塊:https://github.com/paritytech/substrate/blob/master/frame/transaction-payment/src/lib.rs
重量:https://github.com/paritytech/substrate/blob/master/frame/support/src/weights.rs
原文:https://substrate.dev/docs/en/knowledgebase/learn-substrate/weight
翻譯:PolkaWorld 社區
首檔行情直播欄目 金晚8點 熱點資訊、現貨合約,一對一實時解答隨時隨地掌握后市行情,把握幣市掘金機會2020/07/01丨今日主題:《9000刀關鍵位置.
1900/1/1 0:00:0066,000,000枚USDT從Bitfinex轉移到Tether Treasury:金色財經報道,據WhaleAlert監測,66,000,000枚USDT(65,967.
1900/1/1 0:00:00一、市場解讀 之前的文章和直播過程中,曾多次提及多空比,而且提示大家說這個指標在震蕩市中尤其有用,并跟大家分享了“70%法則”.
1900/1/1 0:00:00昨晚行情整體又進行了一波幾十個點的小反彈,震蕩區間也稍微上移了一個階段,且試探過前期壓力轉支撐的位置并確認有效,整體依然可以看作是區間大一些的震蕩,但確實暫時緩解了進一步的下行風險.
1900/1/1 0:00:00首檔行情直播欄目 金晚8點 熱點資訊、現貨合約,一對一實時解答隨時隨地掌握后市行情,把握幣市掘金機會2020/07/14丨今日主題:《主流幣暴力插針是正常調整.
1900/1/1 0:00:00數據是新時代的石油。隨著人們在線上的行為日趨頻繁,留下的個人資料和行為數據越來越多。這些數據多數為Facebook、谷歌、Amazon等巨型科技企業所掌握.
1900/1/1 0:00:00