📜 [專欄新文章] 區塊鏈管線化的效能增進與瓶頸
✍️ 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.
👏 歡迎轉載分享鼓掌
同時也有3部Youtube影片,追蹤數超過4萬的網紅阿宅爸爸,桐心協力過生活!,也在其Youtube影片中提到,《阿宅爸爸的小米》開箱跟心得影片https://bit.ly/2BRduZ1 訂閱阿宅爸爸的影片 https://tinyurl.com/y9w99rf6 =========================== 終於收到期待已久的小米Note8 Pro了! 而且是在雙11推出的新顏色"深海藍", 跟...
「cpu怎麼拆」的推薦目錄:
- 關於cpu怎麼拆 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於cpu怎麼拆 在 康承親子概念藥局 Facebook 的最佳解答
- 關於cpu怎麼拆 在 Facebook 的最佳貼文
- 關於cpu怎麼拆 在 阿宅爸爸,桐心協力過生活! Youtube 的最讚貼文
- 關於cpu怎麼拆 在 老頭 OldMan Youtube 的最讚貼文
- 關於cpu怎麼拆 在 TechaLook 中文台 Youtube 的精選貼文
- 關於cpu怎麼拆 在 [技術] 拔CPU技巧- 看板hardware - 批踢踢實業坊 的評價
- 關於cpu怎麼拆 在 cpu風扇拆不下來的推薦與評價,MOBILE01、PTT和網紅們 ... 的評價
- 關於cpu怎麼拆 在 cpu風扇拆不下來的推薦與評價,MOBILE01、PTT和網紅們 ... 的評價
- 關於cpu怎麼拆 在 [求助]如何拆Intel Socket478 CPU! - Mobile01 的評價
- 關於cpu怎麼拆 在 [請益] 拆CPU散熱器不小心連CPU一起起來 - PTT 問答 的評價
- 關於cpu怎麼拆 在 請問套裝機的CPU可拆嗎? - 3C板 | Dcard 的評價
cpu怎麼拆 在 康承親子概念藥局 Facebook 的最佳解答
今年還有沒有人有需求想再買兒童智慧定位手錶嗎?
最近不少人在敲碗想要入手⌚️Hereu HERO Watch
這一團的價格,依然會是 #市面最優惠
開團價格真的跟官網差好多!!
還加贈六大好禮💪💪💪💪💪💪
#尤其今年要上小一的可以好好來看看喔!
記得自從孩子拿到小一新生入學通知那天
局長和夫人覺得"天哪~我孩子要上小學了!!!"
人生的另一個階段,開始我們想讓他學會獨立自主
但又不免擔心現在壞人這麼多,誘惑這麼多
該怎麼樣在離開我們身邊時仍讓爸媽放心
當孩子真的遇到危險或是不小心迷路時能及時聯絡
而手機又很不適合給他們使用太容易看到不適當的內容
而且也很怕這樣的娛樂產品會讓他們上課分心啊!!
#當爸媽真的就是擔心那麼多
#開心看到孩子成長又害怕他們的安危
-
去年,很驕傲又很開心我們遇見了Hereu HERO Watch
是全台首款奈米科技兒童智能定位手錶⌚️
深耕台灣多年的 Hero Watch
擁有做兒童智慧手錶最完整的技術
從2G到4G 歷經4年👍👍
聆聽上萬位名家長的反饋意見
我們一直努力研發不斷更新
只為擺脫過去
#智能手錶易耗電 #不防水 #充電不便利的迷思
身為雙寶爸的局長,說真的對定位手錶要求不高
只要能讓我
✓即時定位我的孩子
✓能在不打擾孩子的情況下知道他周遭的環境
✓能與孩子撥打電話聯絡
✓孩子能戴的舒適而且一般洗手能防水
✓手錶的待機時間夠長
而Hereu HERO Watch超過好多好多
感受到品牌的用心開發,讓我們這些有小孩的爸媽好安心
1. 全球首款奈米科技防水兒童手錶
2. 可替換電池兒童手錶,延長使用時間
3. 遠端看看、聽聽-隨時都可以看寶貝在做什麼
4. 電話、網路電話、視訊電話-關心不是距離
5. 定位、歷史軌跡、安全定位-保護你寶貝安全
#可以取代手機與寶貝做聯繫,不再讓寶貝緊盯手機螢幕
1⃣支援4G VoLTE:最新4G網路技術,3G網路中止後一樣可以進行語音通話功能
2⃣四核心:四核心CPU讓效能是雙核的好幾倍速度
3⃣Android 9.0 :讓系統保持最新狀態穩定運行
4⃣可拆式電池:搭配750 mAh大容量鋰電池 三天待機,秒換100%容量電池繼續使用
5⃣奈米科技防水:主板螢幕防水後,寶貝洗手戲水更放心
6⃣APP下載:真正的智慧手錶就該如此
7⃣記憶卡擴充:最高32GB容量記憶卡擴充
8⃣複合式材料螢幕:讓手錶更加堅固耐用
-
很多人很擔心的 #防水 這次Hereu HERO Watch採用的是奈米技術防水塗層保護主機板/螢幕
💪HeroWatch使用奈米防水技術(PECVD)工法並配合密閉抽真空設備,將奈米等級的塗層顆粒覆蓋上主機板以及螢幕上,因為塗層的縫隙比水分子還小,所以可以隔絕濕氣對電子產品的影響💪💪💪💪💪
#今年雖然還沒有新款上市
#但系統2月也有提供更新升級
#有興趣想要開團通知的請留言+1吧
cpu怎麼拆 在 Facebook 的最佳貼文
今天的大家好嗎嗎嗎嗎嗎嗎?!尬的今天怎麼一樣也好漫長!😅😅😅
但今天的孩子好像有比較乖,昨天的不給看電視可能有嚇到他們(但其實也嚇到我本人😆😆),還跟生父討論今天如果要處罰、不要說取消電視,就讓他們各自回房間冷靜半小時,這樣我們還可以趁機安靜做事😂😂😂,魔羯男果然很能理智的權衡利弊👍👍👍
阿對!今天放了一個朋友分享、來自台中科博館的超酷影片「大自然真相」完整版,好多集,兩個人靜靜的一起看影片(搭配我偶爾驚呼),然後就在一個神奇的moment ,虎虎睡著了,UU自己喬好位置畫畫了!🎉🎉🎉🎉(難道是影片有什麼神奇魔力?!😆😆😆)
後來就趕快趁這個溫馨時刻跑去拆箱上週到的韓貨樣品(顯示為超會利用時間😌😌😌)但邊拍邊在想,這個時候還會有人想買衣服嗎?畢竟身為一個每天都睡衣的在家工作者,這應該是我一整週來第一次好好穿衣服⋯(而且只是為了拍照😂😂),所以試穿試拍完褲子就收工了(好容易收工😆😆)
來附上很神奇可以讓孩子安靜(或睡著)的 #大自然真相完整版,有20部短片,限時免費5/20~6/8
https://www.nmns.edu.tw/learn/feature/limit/
也附上最近很多好吃好喝、解壓消毒讓大家在家防疫、和可能會上架新衣的 #CPU的好好生活 😌😌 👉 https://goo.gl/FS4Q3H
cpu怎麼拆 在 阿宅爸爸,桐心協力過生活! Youtube 的最讚貼文
《阿宅爸爸的小米》開箱跟心得影片https://bit.ly/2BRduZ1
訂閱阿宅爸爸的影片 https://tinyurl.com/y9w99rf6
===========================
終於收到期待已久的小米Note8 Pro了!
而且是在雙11推出的新顏色"深海藍",
跟我老婆一樣,
我的前一隻手機也用了五年,
這次換新手機從開箱就非常有感,
有一種原來現在的科技已經這麼進步了!?的感慨,
才6400元就能買到規格這麼好的手機,
6400萬畫素,4鏡頭,維距鏡頭,指紋解鎖,4500mAh電池,
光以上這些零件模組拆開來賣都不只6400元了吧,
何況還有螢幕,cpu,記憶體那些了,
想想GoPro光一顆電池就要1千元,充電器就要800元了.
真的不知道現在的手機廠商都賺什麼?
值得一提的是我的前一隻手機是微軟的Windows Phone,
它還有一個很大的價值是可以支援Xbox的遊戲,
可以解Xbox Live成就,所以我應該還是會繼續留著使用.
#redmi #Note8Pro #小米手機
===========================
拍攝工具:
GoPro Hero 8
Sj8 Pro
Panasonic Lumix DMC-GF3
SONY RX100M5A
===========================
剪輯工具:
iMovie
final cut pro
===========================
合作邀約:
kirafu@gmail.com
===========================
幸福有沒有在我身邊,怎麼一直看不見~
爸爸說幸福就在鏡子裡,那就是我快樂的臉~
cpu怎麼拆 在 老頭 OldMan Youtube 的最讚貼文
👉馬上訂閱YouTube頻道,接收最新影片消息:http://bit.ly/1OnlTWy
🔴方舟 生存進化 所有系列 【播放清單】:http://bit.ly/2bOpMDq
🔴所有遊戲【播放清單】:http://bit.ly/2A0jIDo
👉老頭紀錄檔副頻道:https://bit.ly/2oCMoxy
👉贊助老頭可以獲得專屬頭貼跟貼圖喔:https://bit.ly/2QKh5xU
👉如果你喜歡遊戲,歡迎留言與我交流、分享遊戲資訊
👉如果您是遊戲廠商,歡迎洽談合作
👉聯絡電郵:f0987284469@gmail.com
電腦配備
CPU:intel I9-7940X
(內搭塔扇:日系 Scythe Mugen 5 無限五 CPU風扇散熱器)
主機版:X299 AORUS GAMNG 7 PRO
顯示卡: RTX 技嘉 2080Ti GAMING OC 11G
硬碟: 固態硬碟 EZLINK 2.5吋 256G
固態硬碟 Kingston M2 480G
傳統硬碟 Seagate 2TB 3.5吋
傳統硬碟 WD【黑標】4TB 3.5吋電競硬碟
記憶體:Kingston 金士頓 DDR4 2400 HyperX Fury 16G兩支
機殼:AORUS C300 GLASS(GB-AC300G 機殼)
電源供應器:銀欣650W 金牌/半模
鍵盤:TESORO鐵修羅 剋龍劍Gram RGB機械式鍵盤-紅軸中文黑
滑鼠:羅技 Logitech G300S
麥克風:AT2020USBi 靜電型電容式麥克風
cpu怎麼拆 在 TechaLook 中文台 Youtube 的精選貼文
http://www.techalook.com.tw/thermaltake-core-x2/
全新概念mATX平躺式機殼,堆疊設計將DIY水冷推向極致!
Thermaltake Core X2 是一個非常特別的機殼,小編看完產品介紹後的第一個感覺是:這在玩樂高嗎?大家一定很好奇為什麼說是玩樂高,其實Core X2它是小編玩到第一台全模組化的機殼,就是說基本上機殼內什麼都可以拆卸啦!這樣的設計給玩家非常大的自由度,組裝出超級個人化電腦。
Thermaltake Core X2 外觀令小編又愛又恨,因為機殼除了其中一個側板外就是全沖孔設計,散熱能力非常的強大,而全部沖孔都有附上濾網,不必擔心灰塵問題。可是如果安裝太多風扇的話就每個禮拜都要清理。大家應該可以猜到恨什麼了吧,對!就是清灰塵....
安裝以及使用後的心得:
我們在安裝的時候一直在想著要裝風扇式還是水冷式散熱,後來決定安裝水冷加風扇。開始安裝的時候很快,基本上就是拆卸全部機殼配件再一一安裝,Tommy 花了一個多小時終於安裝完,可是中間有幾個小問題,可以看影片中Tommy的說明。
總結來說 Thermaltake Core X2 非常適合喜歡玩機殼改裝客制玩家,也適合愛電競和超頻的人拿來炫設備。價錢三千多其實不算貴,畢竟一個機殼你愛怎麼裝都隨你可是很少見的!
安裝配件:
CPU: Intel i5 4690k
記憶體: kingston hyperx savage 32GB DDR3
SSD: kingston hyperx 3k 120GB
HDD: WD 藍標
PSU: FSP Aurum PT 850W
顯卡: MSI GTX970
鍵盤&滑鼠: Ozone 系列
Facebook: http://www.facebook.com/techalook.com.tw
G+: https://plus.google.com/+TechaLookTw/
Twitter: http://twitter.com/TechaLook
微博: http://weibo.com/u/3756536004
優酷: http://i.youku.com/TechaLook
Help us caption & translate this video!
http://amara.org/v/GVGF/
cpu怎麼拆 在 [求助]如何拆Intel Socket478 CPU! - Mobile01 的推薦與評價
請問大家要如何拆Intel Socket478 CPU, 最近我那台舊電腦(P4-1.6 + ASUS P4B266)的USB常常不work- 插讀卡機會show E:, F: G:但差MS Card卻讀不到, 因此想把主機板升級 ... ... <看更多>
cpu怎麼拆 在 [請益] 拆CPU散熱器不小心連CPU一起起來 - PTT 問答 的推薦與評價
各位版友大家好小弟今天打算換CPU散熱器但在拆原廠AM4散熱器的時候不小心連CPU一起拔起來@@ 已經很小力很小心了但還是這樣感覺是散熱膏塗太多稍微檢查 ... ... <看更多>
cpu怎麼拆 在 [技術] 拔CPU技巧- 看板hardware - 批踢踢實業坊 的推薦與評價
今天想換cpu
但是在拔cpu時 遇到了點問題
爬文看到很多人都是拔散熱風扇時
cpu就跟著起來了
但是我的情況是
散熱器拆掉之後
卻不知道如何拆cpu
想請問拆cpu有沒有甚麼特殊技巧或角度?
今天已經幾乎要用蠻力拆了
還是拆不下來 只好先裝回來
上來問問版友
先謝謝大家了~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.103.97
※ master0101:轉錄至看板 ask 10/30 21:43
... <看更多>