以太坊收據介面
A. 以太坊的「分片」是指什麼
寫在文前:視頻版本和文字版本略有不同,想要看我深情並茂演繹,請看視頻版本 (喵懂區塊鏈22期|分片(Sharding):以太坊太慢,「盤」他!),思維邏輯怪,請看文案加長版。
最近以太坊由於君士坦丁堡升級(Constantinople)而出現了壓倒性的積極走勢,而以太坊的升級之路則猶如升級打怪一般,落入了rabbithole,誰也不知道這洞有多深。既然是「路漫漫其修遠兮」,則把腳下的每一步走好走准,則成了至關重要的點。攻破這一難點之後,以太坊的下一技術難點---Sharding分片,則又被擺到了檯面上。本期《喵懂區塊鏈》會帶大家走進讓以太坊快起來的法寶--- Sharding分片。
什麼是sharding分片?
分片技術其實並不是什麼新概念,起初是針對大型中心資料庫提出的優化方案,具體來說就是將大型資料庫中的數據劃按照某種規則分成很多數據分片(shard),再將這些數據分片分別存放在不同的伺服器中,以減小每個伺服器的數據訪問壓力,從而提高整個資料庫系統的性能。
我們舉一個通俗的小例子:
比如我們平時經常使用的美團,滴滴打車等軟體,就可以按照「城市」來進行分片,由於不同城市的數據不需要互通,就可以將不同城市的數據存放在不同資料庫中,這樣既可以把資料庫伺服器部署到離對應城市最近的節點上,還可以提高訪問速度,何樂而不為呢?!
從上面的例子中,我大家應該對分片的概念有了初步了解,那麼對應到區塊鏈場景中來說,分片又是怎麼樣的呢?
以以太坊分片為例,在原有的單鏈系統中,公鏈整體的性能取決於單個節點的性能,進行分片之後,每個節點只需要承當全網部分工作,各個分片並行工作,按照Vitalik的話來說,each shard is like a separate galaxy每個分片都像是獨立的小宇宙,這樣效率自然噌噌噌提升!原本以太坊鏈全網TPS約為20,現在若增加到100個分片,那麼全網TPS可以提升至2000,同理,全網容量也將提升至原來的100倍。
「每個節點只需要承擔全網部分工作」,這就會引出幾大問題,1.怎麼確定這個節點是負責哪個分片的工作?2.哪些交易應該歸類到哪些分片當中去?3.每個節點是否只需要儲存自己所在分片的交易信息(賬本)?
根據以上問題的實現與否,我們可以將分片依次分為三種類型:網路分片,交易分片,狀態分片。
網路分片:如何將全網節點劃分到不同分片當中去。
交易分片:如何將全網交易劃分到不同分片當中去。
狀態分片:如何讓各個節點只維護各自分片內的賬本,但又不影響整個系統的安全性。
主鏈和分片鏈的區別和聯系?
分片的類型我們已經明白了,那麼主鏈(Main chain)和分片鏈(shard chain)有什麼不同呢?
向左轉|向右轉
以太坊分片的實現是一個漫長的過程,就連Vitalik自己也說將會分階段來逐步實現,分片到底能不能從理論走向實踐,我們還是小小期待一下吧。
B. 以太坊的「分片」是指什麼
「分片」的大致思路是:將區塊鏈網路中的每個區塊變為一個子區塊鏈,子區塊鏈中可以容納若干(目前為 100 個)打包了交易數據的 Collation(大概可以稱為「校驗塊」,為了在分片的情景中將其與區塊的概念區分開),這些 Collation 最終組成一個在主鏈上區塊;因為這些 Collation 是整體作為區塊存在的,所以其數據必定是全部由某個特定的礦工所打包生成,本質上和現有協議中的區塊沒有區別,所以不再需要增加額外的網路確認。這樣,每個區塊的交易容量就大概擴大了 100 倍;而且這種設計還有利於未來的繼續擴展。整個擴展計劃目前也被大致分為 4 個階段;本文所介紹的僅僅是第一階段的相關實現細節。轉自簡書。數字貨幣交易所幣匯