📜 [專欄新文章] 區塊鏈管線化的效能增進與瓶頸
✍️ Ping Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
使用管線化(Pipeline)技術可以提升區塊鏈的處理效能,但也可能會產生相應的代價。
Photo by tian kuan on Unsplash
區塊鏈的擴容方案
說到區塊鏈的效能問題,目前討論度最高的應該是分片(sharding)技術,藉由將驗證者分成多組的方式,可以同時分別處理鏈上的交易需求,即使單分片效能不變,總交易量可以隨著分片/驗證者集的數量線性增加。
除了分片,另一個常用來提升程式效能的方案是將計算步驟拆解,以流水線的方式將複雜的運算攤平,降低系統的閒置時間,並大幅提升工作效率。為了達到管線化預期的目的,會需要先知道系統的瓶頸在哪。
區塊鏈的效能瓶頸
熟悉工作量證明設計哲學的人應該會知道,區塊鏈之所以需要挖礦,並不是為了驗證交易的正確性,而是要決定交易的先後順序,從而避免雙花和帳本分裂的發生。可以說,區塊鏈使用低效率的單線程設計,並付給礦工高額的成本,都只為了一件事,就是對交易的全局排序產生共識。
在這樣的基礎之上,區塊鏈在一段時間內可以處理的交易數量是有限的,這之中包含許多方面的限制,包括 CPU 效能、硬碟空間、網路速度等。其中,關於 TPS(每秒交易數) 提升和對硬體的要求大致上是線性增加的,但在設計共識演算法時,通訊複雜度常是平方甚至三次方的關係。
以現在的目標 TPS 來說,處理交易和生成一個合法的區塊並不困難,只是因為區塊鏈的特性,新區塊需要透過洪水法的方式擴散到全網路,每個節點在收到更新請求的時候都要先執行/驗證過區塊內的交易,等於整個廣播的延時會是「驗證區塊時間×經過的 hop 數量」這麼多。似乎網路越分散、節點越多,我們反而會需要降低計算量,以免讓共識不穩定。
管線化的共識機制
使用權益證明取代工作量證明算是行業發展的趨勢,除了環保或安全這些比較顯然的好處之外,權益證明對產生共識的穩定性也很有幫助。首先,權益證明在同一時間參與共識的節點數是已知的,比較容易控制數量級的邊界;其次,權益證明的出塊時間相較工作量證明固定很多,可以降低計算資源不足或閒置的機率。
相較於工作量證明是單一節點出塊,其餘節點驗證,權益證明的出塊本身就需要很多節點共同參與,瓶頸很像是從驗證轉移到通訊上。
以 PBFT 為例,每次產新區塊都需要經過 pre-prepare, prepare, commit 三個階段,你要對同意驗證的區塊簽名,還要對「你有收到某人的簽名」這件事簽名,再對「你有收到 A 說他有收到 B 的簽名」這件事簽名,過程中會有很多簽名飛來飛去,最後才能把一個區塊敲定。
為了降低每兩個區塊間都需要三輪簽名造成的延遲,後來的共識演算法包括 HotStuff 和 Casper FFG 採用了管線化的區塊驗證過程。也就是對區塊 T 的 pre-prepare 同時是對 T-1 的 prepare 和對 T-2 的 commit。再加上簽名聚合技術,出塊的開銷在複雜度等級和係數等級都降低許多。
然而,要保持管線化的區塊生產順利,需要驗證者集合固定不變,且網路通訊狀況良好。如果會經常更動驗證者集合或變換出塊的領導者,前後區塊間的相依性會是個大問題,也就是 T 的驗證者集合取決於 T-1 裡有沒有會導致刪除或新增驗證者的交易,T-1 的合法性又相依於 T-2,以此類推。
當激烈的分叉出現的時候,出塊跟共識的流水線式耦合就從優雅變成災難了。為了避免這種災難,更新的共識演算法會限制驗證者變更的時機,有些叫 epoch 有些叫 checkpoint,每隔一段時間會把前面的區塊徹底敲定,才統一讓驗證者加入或退出。到這些檢查點的時候,出塊的作業流程就會退化成原本的三階段驗證,但在大部分時候還是有加速的效果。
管線化的狀態更新
另一個可以用管線化加速的是區塊鏈的狀態更新。如前所述,現在公鏈的瓶頸在於提高 TPS 會讓區塊廣播變慢,進而導致共識不穩定,這點在區塊時間短的以太坊上尤其明顯。可是如果單看執行一個區塊內的交易所花的時間的話,實際上是遠遠低於區塊間隔的。
只有在收到新區塊的時候,節點才會執行狀態轉移函數,並根據執行結果是否合法來決定要不要把區塊資訊再廣播出去。不過其實只要給定了交易集合,新的狀態 s’ = STF(s, tx) 應該是確定性的。
於是我們有了一個大膽的想法:何不乾脆將交易執行結果移出共識外呢?反正只要大家有對這個區塊要打包哪些交易有共識,計算的結果完全可以當作業留給大家自己算吧。如果真的不放心,我們也可以晚點再一起對個答案,也就是把這個區塊執行後的新狀態根包在下個區塊頭裡面。
這就是對狀態更新的管線化,在區塊 T 中敲定交易順序但暫不執行,區塊 T+1 的時候才更新狀態(以及下一批交易)。這麼做的好處十分顯而易見,就是將原本最緊繃的狀態計算時間攤平了,從原本毫秒必爭的廣播期移出來,變成只要在下個塊出來之前算完就好,有好幾秒的時間可以慢慢來。新區塊在廣播的每個 hop 之間只要驗證交易格式合法(簽名正確,有足夠的錢付手續費)就可以放行了,甚至有些更激進的方案連驗簽名都省略了,如果真的有不合法交易混進去就在下個區塊處罰礦工/提案者便是。
把負擔最重的交易執行移出共識,光用想的就覺得效能要飛天,那代價呢?代價是區塊的使用程度會變得不穩定。因為我們省略了執行,所以對於一筆交易實際用掉多少 gas 是未知的。本來礦工會完整的執行所有交易,並盡可能的塞滿區塊空間,然而在沒有執行的情況下,只能以使用者設定的 gas limit 當作它的用量,能打包的交易會比實際的上限少。
緊接著,下一個問題是退費困難。如果我們仍然將沒用完的手續費退還給使用者,惡意的攻擊者可以透過發送 gas limit 超大,實際用量很小的交易,以接近零的成本「霸佔」區塊空間。所以像已故區塊鏈 DEXON 就直接取消 gas refund,杜絕濫用的可能。但顯然這在使用者體驗和區塊空間效率上都是次優的。
而最近推出的 smartBCH 嘗試擬了一套複雜的退款規則:交易執行後剩餘的 gas 如果小於 gas limit 的一半(代表不是故意的)就退款;如果剩餘量介於 50%-75% 可以退一半;超過 75% 推斷為惡意,不退款。乍看是個合理的方案,仔細一想會發現製造的問題似乎比解決的還多。無論如何,沒用掉的空間終究是浪費了,而根據殘氣比例決定是否退款也不會是個好政策,對於有條件判斷的程式,可能要實際執行才知道走哪條路,gas limit 一定是以高的情況去設定,萬一進到 gas 用量少的分支,反而會噴更多錢,怎麼想都不太合理。
安全考量,退費大概是沒希望了。不過呢,最近以太坊剛上線的 EIP1559 似乎給了一點方向,如果區塊的使用程度能以某種回授控制的方式調節,即使偶爾挖出比較空的區塊似乎也無傷大雅,也許能研究看怎麼把兩者融合吧。
管線化方案的發展性
考慮到以太坊已經堅定地選擇了分片的路線,比較激進的單鏈高 TPS 管線化改造方案應該不太有機會出線,不過管線化畢竟是種歷史悠久的軟體最佳化技巧,還是很有機會被使用在其他地方的,也許是 VDF 之於信標鏈,也許是 rollup 的狀態轉換證明,可以坐等開發者們表演。
倒是那些比較中心化的 EVM fork/sidechain,尤其是專門只 for DeFi 的鏈,管線化加速可以在不破壞交易原子性的前提下擴容,確實是有一些比分片優秀的地方可以說嘴,值得研究研究,但這就要看那些機房鏈們有沒有上進心,願不願意在分叉之餘也投資發展自己的新技術了。
給我錢
ping.eth
區塊鏈管線化的效能增進與瓶頸 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
cpu挖 礦 效率 在 股民當家 幸福理財 Facebook 的最讚貼文
【散熱劃時代革命-液冷散熱】
時間:2021/8/1
發文:NO.1287篇
大家好,我是 LEO
.
❖晶片效能越強-解熱難度越高
隨著半導體晶片發展-體積越來越小,電晶體密度越來越高,逐漸朝向高性能,超薄,微型化發展,電子元件散熱的空間越來越小,單位面積內所產生的熱能卻越來越高,無論是手機、電腦發熱發熱密度皆呈現指數級增長,此外,加密貨幣挖礦場,大型伺服器與資料中心,高階CPU、GPU產生的熱能更為驚人,如果熱能不能快速有效散出,輕則影響效能,嚴重會導致電腦或手機產生「電子遷移效應」,導致當機無法工作。
.
❖台積電未雨綢繆超前部署
今年7月台積電在超大型積體電路 (VLSI) 研討會,展示晶片水冷研究結果,採用水通道直接引導到晶片,藉此提高晶片散熱效率。聽起來覺得不可思議,為什麼突然做這項研究?傳統晶片散熱-在晶片上塗導熱矽脂,將熱量傳到散熱器底部,導熱管、水冷管再將熱量導到鰭片,最後風扇將鰭片的熱量吹走,完成散熱。
.
但是,若未來晶片採用 3D 堆疊技術,最新的SoIC先進封裝可以任意組合各種不同製程的晶片,除了記憶體甚至還能直接將感測器一起封裝在同一顆晶片裡面,線路的密度將是2.5D的1000倍,散熱就會遇到大瓶頸。
.
3D堆疊晶片設計更複雜,更小的微縮製程,把晶片一層一層的堆疊起來,中間部分難以有效散熱,所以台積電的研究人員認為,解決方法就是讓水在夾層電路間流動,讓水直接從晶片內帶走熱量,這是最有效的方案,這裡指的水並非一般純水,而是不會導電的介電液,實際上操作起來非常複雜且昂貴,目前處於研究階段,這顯示出解決晶片散熱問題,將是半導體產業未來重要發展趨勢之一。
.
❖晶片改朝換代推動-伺服器新設計
我們從上面描述可以知道新晶片設計只會更小,更複雜,更熱,而伺服器產業面臨的問題會更大,試想大型資料處理中心,裡面有多少伺服器?多少高階CPU、GPU都是24小時不斷電持續運作,龐大的熱能如何處理?當處理器的瓦數越來越高,一般來說,處理器的熱設計功耗超過240W就很難用風扇(氣冷)來解決,偏偏霸主Intel或是AMD新一代處理器動輒超過270甚至280W,現在馬上面臨到需要液冷散熱來帶走熱量。
.
❖跟著產業霸主的方向走準沒錯
Intel在伺服器市場,主流解決方案以x86架構為主,全球 CPU市占率約 92%左右。未來Intel 仍將保持產業龍頭的地位,圍繞它的 CPU平台的升級仍是影響伺服器硬體產業鏈周期性變化的關鍵因素。
.
2021 年第一季開始Intel最新的 Whitley Ice Lake 的處理器已向資料中心業者小量出貨,第二季開始放量,到第四季預估將占總出貨量的 40%,滲透率將大幅且快速提升,下一步,Intel英特爾預計 2022 年初量產支援 PCIe Gen5 的 Eagle Stream 平台,將會加速升級資料傳輸速度。
.
❖英特爾正式將水冷散熱放進白皮書
有趣的事情來了,產業龍頭也意識到新平台-散熱問題非常棘手,2020年Whitley平台是intel「首度」將水冷頭(注意:非浸沒式)納入技術白皮書,更誇張的事情是未來的新平台 Eagle Stream第一顆CPU Sapphire Rapids至少 300W以上,甚至將來很多GPU會達到500瓦甚至700W以上,水冷散熱方案成為唯一解方,冷卻液監控主機(CDU)與水冷頭(覆蓋在處理器上方的水冷散熱片)全世界只有三家廠商通過Intel認證,台灣的廣運(6125)是唯一兩項全拿的合格供應商。
.
❖節能減碳-省電又可以賺積分
歐盟在7月剛通過55套案,其中碳邊境調整機制,又稱碳關稅,預計自2023年起試行,2026年正式實施,先從鋼鐵、電力等產業先行,但是用電大戶的資料中心無法置身事外,跟大家分享一個數字會比較有概念,2017年中國數據中心總耗電量為1200-1300億KW,超過三峽大壩與葛洲壩電廠2017年全年發電量總和(分別為976億KW、190億KW),占中國總發電量的2%,到了2025年資料中心耗電將高達 3842億KW,占全中國總發電量的 6%,這隻吃電怪獸肯定會被盯上,高排碳業者會被課較高關稅(碳關稅),將進一步帶動資料中心業者積極導入液冷散熱達到「省電」與「節能減碳」的效果,甚至有望仿效電動車Tesla透過碳積分來挹注獲利,可望大幅提高液冷散熱滲透率。
.
❖水冷散熱技術門檻高-不簡單
2021年3月26日雲端資料中心伺服器開發商---緯穎科技宣佈,參與資料中心液冷廠商LiquidStack的A輪融資,並取得一席董事席位,其實早在2019年緯穎就與3M合作開發液冷方案,但是3M的電子氟化液是非導電-介電液是一種專利配方,掌握在3M手中,未來耗材都需向3M購買補充,入股LiquidStack可望取得自主技術。
.
大家知道這種-不導電的「介電液」有多貴嗎?1公斤要價100美元,一個180KW的機櫃光是介電液裝滿就要價1000萬,重點是這個介電液每年都會耗損,需要定時補充,這樣就知道賣水的概念有恐怖、有多賺了吧,得介電液者得天下。
就算目前短期重點放在一般的「冷卻水」,得到英特爾認證的兩款冷卻水,一個櫃的成本大約7~8萬元,廣運集團研發成功的介電液打七折賣,一公斤70美元就相當有競爭力,而冷卻水一個櫃更只需要8000元,重點是水要通過認證,水在管線裡面跑如何恆久不變質?裡面還必須添加抗凍劑、苔癬抑制劑等特殊配方,是不是很多眉角!這些都是LEO深入研究去挖出來的。
.
❖廣運(6125)上中下游整套系統全部整合
目前有三大產品線,水冷背門(20~25萬)/櫃,水冷頭(100~150萬)/櫃-目前英特爾首度放入新平台技術白皮書,已通過Intel認證,浸沒式機櫃(1000萬)/櫃,此外還有最重要的冷卻液監控主機(CDU)它是水冷散熱技術的根源,還有各種耗材、管線、冷卻水、介電液都是未來的發展重點。
.
傳統散熱模組雖然便宜,一個42U的機櫃,風扇加散熱模組成本頂多台幣8~10萬,但將來水冷變成剛性需求,水冷頭機櫃,水對氣120~150萬/櫃,水對水90~120萬/櫃,全球的資料中心大約有 500萬櫃,每年新增30萬櫃左右,大家可以算看看,這產值增速有多恐怖。
.
目前全世界只有2家公司有能力量產伺服器等級水冷頭機櫃,雙鴻、超眾這些傳統大廠要跨入最難的CDU(水冷監控主機)至少需要5年以上的參數與經驗值,而廣運的陳總已經深耕30年的散熱產業經驗,水冷頭機櫃的五大關鍵零件--廣運擁有四項(CDU、水冷頭、分岐管、制冷背門)盲插或快接頭,這個產業很新,很多法人也還沒那麼了解,有很多眉角,很多技術秘密,篇幅有限今天LEO就先介紹的這邊。
.
如果大家想知道更多關於這個新的「水冷散熱產業」訊息,請鎖定 LEO股民當家團隊的頻道喔,⧉傳送門在下方↓
.
❖Line群組傳送門⤵
https://lihi1.com/jjjwf
❖TG 頻道傳送門⤵
https://t.me/stock17168
天佑台灣,疫情早日結束❤️
cpu挖 礦 效率 在 哪裡好吃哪裡去:神秘的水原誠 Facebook 的最佳解答
最近幾天之前提過使用的P圖軟體Swar Chia Plot Manager推出新的0.1版 畫面顯示更為清楚, 但舊版的設定無法延續使用 不過水哥發現其實只是多添加幾個部分 其實補上去差異的部分就可以的 差異主要在於通知設定以及任務設定新增了幾個參數 在通知設定的部分 現在新增對於telegram機器人與IFTTT的支援 其實水哥之前接收訊息都是用telegram機器人居多, 但因為之前已經有discord了, 這次就沒有去設定 至於IFTTT, 推測應該可以搭配LINE notify來使用做通知, 不過一樣啦, 看自己常用哪個就用哪種吧! 任務參數的部分 這次新增了排除最終資料夾(skin full destinations)的功能 這樣可以有效排除solo與礦池雙挖的問題!! 像是之前版本, P好一張圖後, 官方錢包就會被加入P好圖的路徑, 因而把原本排除的plot都載入形成雙挖 加入這選項後就能避免... 另一個特性則是CPU親合度(enable cpu affinity)的部分 預先設定好P圖會用到的核心, 這樣就能夠避免減少調度CPU資源時所額外耗費的時間 讓你P圖更有效率 其實windows本身也可以設定這個功能 但預設都是系統管理 若是使用swar的親和性功能, 你在工作管理員內就可以看到預設被排定在哪幾個核心處理作業 以這樣的原則下去設定 就可以在多P的情況下, 盡可能去利用CPU資源而不打結 另外之前對於權重問題沒有太多理解 原來你P過幾個圖之後 可以使用指令python manager.py analyze_logs來分析既有的紀錄檔 他會列出建議的權重值 我們再把權重值填入設定檔中重新啟動即可 舊的設定檔可以前面加# mark掉 可以看到目前水哥設定的與原本預設的還是有段差距 應該是針對不同主機所因應的調整手段吧 0.1版大概就是這樣了 其他都差不多 原本水哥以為沒顯示的phase進度會有改善 沒想到卻還是沒有Orz... 或許~~之後再看看吧, 確實是有越來越好用的趨勢 像是現在都還會標示哪個任務使用哪個暫存硬碟, 連最終會放哪個硬碟都會標示 真是清楚多了@奇雅 希望未來能再進步吧 畢竟才0.1版...
https://mshw.info/mshw/?p=27239