㈠ GHOST,DAG,SPECTRE,PHANTOM和CONFLUX技術原理
DAG概念,當做繼比特幣,以太坊後新的一代區塊鏈技術(區塊鏈3.0),那麼DAG區塊鏈是什麼?DAG的由來是什麼?它的技術理念是怎麼樣的?運行在DAG區塊鏈上的協議有哪些?
要想解釋DAG,離不開Yonatan Sompolinsky 和 Aviv Zohar兩位以色列人,他們是DAG區塊鏈這一概念的提出者。在DAG之前,Aviv Zohar提出了一個GHOST協議(以太坊初期就採用了GHOST協議),該協議解決的是鏈分叉帶來的安全性問題,而分叉的區塊鏈 在GHOST協議下數據結構就從一條鏈變成了一個樹(Tree),而之後Aviv Zohar進一步提出了一個inclusive協議,在inclusive協議規則下,區塊的結構就變成了有向無環圖(DAG)。
接下來本文將:
1.介紹 GHOST協議,DAG由來 背後的 設計原理
2.介紹三種針對DAG型區塊鏈設計的協議,SPECTRE、PHANTOM和CONFLUX。
GHOST協議是為了解決 分叉 導致 鏈安全性降低 的一個協議。
下邊將通過解釋什麼是 分叉 ,為什麼 分叉會降低鏈的安全性 , 鏈上擴容 為什麼會導致更多分叉來詳細介紹GHOST協議。
一筆比特幣交易為什麼要等6個區塊的交易時長呢?
等待不是為了 防範51%攻擊 的。落後6個區塊,如果擁有超過51%的算力,只要足夠長的時間,一定能夠產生更長的鏈完成攻擊。它是為了防止 分叉 帶來的風險。
比特幣在 理想情況 下,不同節點之間有相同的一條區塊鏈,全部節點都是基於 同一個區塊 進行挖礦,但當兩個挖礦節點 幾乎同時 挖到一個新的區塊,當它們接收到對方產生的區塊時,不同的節點將選擇基於 其中一個 區塊挖礦, 分叉 產生了。之後節點會根據哪條 分叉更長 ,選擇哪條是主鏈進行挖礦,而不是主鏈的分叉區塊全部被 拋棄 。
比特幣每天都會發生 二分叉 ,但出現連續的 六次分叉 幾乎不可能,於是要等待6個區塊的確認時間。(這種分叉不是來自惡意攻擊,是 偶然性以及網路延遲 導致的。
分叉將『攻擊不超過51%算力,比特幣就是安全的』這一理論推翻。
在比特幣中,當鏈有 分叉 時,將選擇分叉 最長 的鏈作為主鏈,惡意攻擊就是產生一條比主鏈更長的鏈 代替主鏈。
下圖中藍色區塊代表誠實區塊,紅色代表攻擊區塊。2號、3號藍色區塊產生 分叉 ,此時攻擊節點產生5個攻擊區塊(紅色)就能產生一條 更長 的鏈完成攻擊。雖然藍色區塊總數更多(有6個), 但分叉的區塊沒有增加鏈的長度 ,這種情況下,紅色攻擊方在算力(假設每個區塊代表算力相同)沒有超過51%的情況下攻擊成功。
比特幣當前安全的原因在於10分鍾的區塊時間降低了分叉可能性,但其實際安全算力仍低於51%,也就是說,不需要51%的算力也能攻擊成功。
採用 大區塊 以及 小的產出時間 將導致鏈有 很多分叉。
比特幣當前處理交易量很低,改進這個缺陷一個可行方法就是 增大區塊的大小和減小區塊的產出時間 。大區塊需要更多的網路傳輸時間、單位時間更多的區塊數都會導致 更多的分叉 。
鏈上擴容的方案對比特幣處理交易能力提升是巨大的 ,假如每個區塊大小變為原來的八倍(8M),出塊時間縮短為原來的五分之一(2分鍾),理想情況下,比特幣的處理交易量將變為原來的 40倍 ,實際情況會產生分叉,交易量不會有這么高。
主鏈選擇中,採用計算最大子樹來代替比特幣中的最長鏈規則。
比特幣的最長鏈規則在有分叉情況下,將降低鏈的安全性,分叉越多,安全性越低。鏈上擴容將導致更多分叉,導致鏈不安全。
Yonatan Sompolinsky提出GHOST規則, 當有分叉時,通過計算最大子樹,也就是每條分叉擁有的所有區塊數來決定哪條鏈是主鏈 。圖0中,鏈在區塊0後分叉了,上邊分叉總計有6個藍色區塊,下邊分叉有5個紅色區塊,藍色區塊1是主鏈,所以 紅色攻擊失敗 。
在有大量分叉的情況下,GHOST規則將鏈安全性直接提到了51%,分叉對採用GHOST協議的鏈安全性沒有影響。
根據GHOST規則,上圖中雖然誠實節點產生了12個區塊,但加入主鏈的只有4個區塊,大量區塊 被丟棄 ,假定比特幣每個區塊大小變為原來的八倍(8M),出塊時間縮短為原來的十分之一(1分鍾),分叉率為0.33(產生的區塊加入主鏈的概率),比特幣的處理交易能力將變為原來的 26.6倍 。
GHOST協議解決了鏈上擴容導致分叉帶來的安全性問題。
區塊的結構類型就從一條鏈變為樹
在GHOST的提出後,Yonatan Sompolinsky提出一種新的設想,新產生的區塊指向所有已知的分叉末端區塊,即一個區塊有多個父親,此時 區塊鏈就從一條鏈變為多條分叉鏈共同組成的的結構,這樣的鏈結構就被叫做DAG(有向無環圖) 。
Yonatan Sompolinsky進而提出了在DAG上運行的 inclusive協議 ,原理如下:
遺憾的是, Yonatan Sompolinsky之後並沒有詳細介紹補充該協議 ,而是提出了一種新思路的DAG協議——SPECTRE。
看完上邊內容之後,你會發現, 最長鏈規則下,分叉的區塊對比特幣安全性和交易量沒有任何貢獻 ,白白的浪費了算力,而 GHOST通過計算分叉區塊個數來提升鏈的安全性 ,但分叉區塊除了納入區塊計數外,區塊內包含的交易信息卻全部 被丟棄 。
這種新的區塊結構帶來了新的特性,當然,比特幣的 最長鏈規則 也可以在DAG上實施,只不過安全性和處理交易能力不佳,而GHOST協議可以提高安全性和處理交易能力,為了 最大化 利用DAG區塊鏈特性,社區提出了不同的協議,接下來介紹Yonatan Sompolinsky 提出的 SPECTRE協議 ,以及 PHANTOM協議 ,以及國內某社區提出的 CONFLUX協議 。
丟棄主鏈概念,所有產生的區塊共同構成賬本,不丟棄任何一個區塊
只要是產生的區塊就不會被丟棄,所有的區塊都是有效的,所有區塊共同組成賬本,這樣進一步提高了區塊鏈的處理交易能力, 該設計的關鍵在於設計演算法來保證區塊鏈不會被惡意攻擊成功。
SPECTRE協議較為復雜,下邊將從其如何產生區塊、如何處理沖突交易以及產生可信交易集三個方面進行描述。
SPECTRE協議中,當產生區塊時,要指向之前所有分叉的末端區塊。
下圖中,左邊為比特幣產生區塊時,當有分叉出現,新區塊將選擇基於其中一個產生新的區塊,而SPECTRE中,將基於所有分叉末端區塊產生新的區塊。同時,當有新區塊產生時,節點要立刻將新區塊(包含基於哪些區塊產生這一信息)發送給與自己相連接的節點。
仔細觀察,GHOST協議中雖然有分叉,但每個區塊都只基於前邊某一個區塊產生,而SPECTRE協議中要基於當前節點知道的所有末端區塊產生下一個區塊。
SPECTRE協議將礦工維持交易不沖突的要求剝除
比特幣就像一本 權威 的賬本,只要是里邊記錄的,就一定是真的(不考慮分叉和惡意攻擊),而SPECTRE產生的DAG就像一本 不權威 賬本,里邊的交易信息可能沖突(上邊圖1中兩個1區塊中可能包含沖突交易信息)。
該協議下,挖礦節點只 負責迅速挖區塊 (能夠達到1秒一個區塊),而對分叉中可能包含的沖突交易在挖礦階段並 不做任何處理 ,將記錄交易速度最大化,讓DAG這種區塊鏈有著恐怖的處理交易能力。
是時候解決挖礦不解決的 沖突交易 問題了,SPECTRE的思路是設計一個計算投票的演算法,讓誠實區塊會投票給誠實的區塊,後邊的誠實區塊會給前邊的 堆疊算力 ,從而讓惡意攻擊失敗,其安全算力也是 51% 。
拿雙花舉例,下圖中,X和Y區塊中包含著兩條沖突交易會導致雙花,此時DAG中的區塊會對X和Y進行投票, 決定哪一個交易有效。
投票規則如下,投X的標藍,投Y的標紅,X<Y代表X先於Y:
根據投票結果,X中的那條交易信息 有效 ,Y中對應的那條交易信息 無效 。 Yonatan Sompolinsky也對 不指向前邊區塊 以及 產生區塊不發給鄰居節點的惡意攻擊 有進行分析,在投票規則中,低於50%算力的攻擊者會失敗。
投票聽起來像是一個主動地中心化行為,實際上不是,程序根據當前DAG區塊所處的狀態自發完成這一區塊投票計算過程,就相當於,給定一個DAG數據,輸入為兩條沖突信息,運行該規則演算法,將得出一對沖突交易的哪一個為有效。
SPECTRE可信交易集就相當於超過當前6個區塊的比特幣鏈里組成的交易集合。 區塊鏈從數字加密貨幣的角度來說,就是一個 賬本 ,從賬本上的交易信息中得出每個 賬戶 所擁有的貨幣,所以,得出 確定的、不可能更改 的交易信息就至關重要,SPECTRE可信交易集產生過程如下:
SPECTRE並不會對所有區塊進行排序,所有區塊沒有一個完整的線形順序,有的只是決定沖突信息先後的區塊順序對。
比特幣中的高度代表的就是 線形順序 ,高度低的區塊中交易信息先於高度高的區塊里的信息,高度高的區塊就不能 包含和高度低的區塊沖突的交易 ,而SPECTRE有大量的分叉,區塊高度不能代表線形順序,前邊的區塊交易信息不一定先於後邊的分叉區塊交易信息,交易信息的有效性要由投票演算法來決定,區塊投票演算法很快,再加上它將 所有分叉區塊 都包含進來,也就沒有了比特幣所面臨的 分叉風險 (等待6個區塊),交易確認時間可以達到10秒。
至此,和比特幣相比,SPECTRE對應的DAG區塊鏈有三個特點:
SPECTRE協議非常 適合DAG型數字加密貨幣 ,但當它用於智能合約時,它的缺陷就出來了,智能合約需要一個 嚴格的線性順序 ,對此Yonatan Sompolinsky新設計了 PHANTOM 協議來對DAG區塊形成一個 線性順序 ,下邊將詳細介紹PHANTOM協議。
SPECTRE和PHANTOM是兩個完整的獨立的協議,不是一個對另一個的補充。
PHANTOM的挖礦機制和SPECTRE一樣,會產生同樣類型的DAG,不同的是PHANTOM通過對 區塊連通度分析 ,判定區塊誠實還是惡意,按照分類對區塊排序,對DAG區塊產生一個嚴格的 線性順序 ,通過線性順序來判斷 沖突交易有效性 。
DAG中,攻擊者有兩種攻擊手段, 一產生的區塊不基於已知的末端區塊,二不立即發布自己產生的區塊 ,前者會讓自己區塊指向的區塊變少,後者讓其他節點產生的區塊不會指向自己的區塊,這兩種情況都會導致這些惡意區塊的與其它區塊的 連接度低 。
誠實區塊在考慮網路最大延遲下,經過一定時間一定會傳遍整個網路,一定會被後邊的區塊所指向,誠實節點在產生新區塊時也一定會指向自己所知道的末端區塊。
通過對 區塊指出去的邊和指向該區塊的邊 進行分析,也就是區塊的 連通度 ,當考慮最大的網路延遲,連通度會有一個 極限值K ,低於該值的區塊可以被認定為惡意區塊,在排序中要處於 劣勢 。
接下來,進行區塊 誠實和惡意 判定,判定分兩步,第一步最重要, 實現復雜也耗費時間 ,主要為通過對區塊連通度的判定,將強連通度的區塊標為藍色視為誠實區塊,弱的標為紅色視為惡意區塊。
第二步 先對藍色區塊集排序 ,拓撲排序,然後對 紅色區塊集排序 。紅色區塊的順序要處於弱勢,例如上圖中C,它處於A和I之間,那麼它的順序會排在I的前一個區塊,而D、H都會排在C前。 注意通過考慮最大延遲時間設定連通度的值,幾乎所有正常誠實節點產生的區塊都會被標記為藍色
至此,PHANTOM協議實現了對DAG的 線性排序 ,通過線性順序就可以提取 無沖突交易集 ,進而提取 可信交易集 ,雖然耗時較長,滿足智能合約的要求。
Yonatan Sompolinsky在PHANTOM協議論文結尾,提出一種將PHANTOM + SPECTRE結合起來的可能協議,沒有詳細展開介紹。下圖是幾種協議的對比:
至此,介紹了Yonatan Sompolinsky一開始從分叉導致不安全提出的GHOST,到後來將DAG引入區塊鏈,設計了SPECTRE協議,以及為智能合約考慮的PHANTOM協議。接下來,介紹國內某社區提出的CONFLUX協議。
GHOST有 主鏈但丟棄分叉區塊 ;SPECTRE 沒有主鏈,包含所有分叉,但沒有線性順序 ;PHANTOM 沒有主鏈,包含分叉且有線性順序 ,而CONFLUX 即有主鏈,又是DAG,利用主鏈讓DAG產生線性排序 ,下面將從挖礦機制和區塊排序兩方面來說明CONFLUX協議。
CONFLUX協議定義了根源邊和參考邊。 新區塊是基於前一個主鏈區塊產生的,新區塊用根源邊(實線)指向前一區塊,用參考邊(虛線)指向分叉的其他區塊末端 ,如下圖最後一個新區塊實線指向H,虛線指向分叉末端區塊K。 根源邊用於代表區塊基於哪個區塊產生,給哪個區塊堆疊算力,參考邊用於表示分叉的其它區塊產生在該區塊之前。
挖礦過程如下:
根源邊只能有一條,參考邊可多條(視情況而定)
以主鏈區塊為分割點,將DAG分段,段間段內設計簡單排序演算法
CONFLUX協議下產生的區塊鏈如上(圖2),接下來對其進行線性排序,排序演算法如下:
通過上述排序,DAG有了一個 線性順序 ,上圖DAG區塊順序為 Genesis, A, B, C, D, F, E, G, J, I, H, and K 。接下來對該線性順序的區塊里的交易信息進行交易排序, 單一區塊 里可能包含的沖突交易將直接按照該區塊內交易信息排列 先後順序 決定。
至此,CONFLUX對DAG所有區塊產生一個 線性順序 ,進而可以對區塊內交易信息排序,產生 無沖突交易集 ,超過一定時間的無沖突交易組成 可信交易集 。 主鏈只是排序的標尺,作為分割時段的標准,CONFLUX包含所有分叉區塊。
GHOST論文
Inclusive論文
SPECTRE論文
PHANTOM論文
CONFLUX論文
DAGlabs 相關講解視頻合集
㈡ 什麼是DAG,DAG有發展前途嗎
DAG(Directed acyclic graph),有向無環圖,是計算機領域一個常用的數據結構,因為獨特的拓撲結構所帶來的一些特性,經常被用到處理動態規劃,導航中尋求最短路徑,數據壓縮等場景中。從15年開始,區塊鏈概念被單拎出來,這之前區塊鏈還只是比特幣技術里的一個數據結構,中本聰白皮書里把block和chain連一起的時候也只是a chain of blocks 。隨著以太坊去中心化計算機的概念提出來,很多人開始把以太坊稱作區塊鏈2.0,而比特幣被歸到了區塊鏈1.0。至於區塊鏈3.0,市場上為了搶奪區塊鏈3.0的冠名權打的不可開交,沒准會是DAG。
㈢ 一文了解以太坊礦機及挖礦原理
在以前的文章中,我們分別了解了比特幣挖礦和以太坊挖礦的區別。本文重點介紹以太坊挖礦及礦機部分。
以太坊是一個開源的有智能合約功能的公共區塊鏈平台,通過其專用加密貨幣ETH提供去中心化的以太虛擬機來處理點對點合約。目前ETH的挖礦主要是通過顯卡礦機,所謂顯卡礦機,其實就是類似家用台式機,只不過每台機器裡面有6-10張顯卡,並且沒有顯示器(如圖)。
圖:顯卡礦機
之所以以太坊沒有發展出類似於BTC一樣的ASIC礦機,主要是由於ETH的特殊挖礦機制決定的。
在ETH挖礦過程中,會產生一個DAG文件,該文件需要一直被調用,因此必須有專門的存儲空間放置。這個對於存儲空間的硬性需求會導致即使生產出來了ASIC晶元,也並不能大幅度降低單位算力的成本。簡單來說,就是性價比很差。
以太坊的DAG大小自2016年6月份引入Dagger-Hashimoto 演算法時的1GB開始,以每年約520MB的速度增大到了現在的 3.7G,預計2020年底以太坊的DAG大小將增加至4G。屆時,顯存小於4G的顯卡都將被陸續淘汰。
還需要介紹一點的是,由於顯卡礦機的體積通常是比特幣礦機的2-4倍,而消耗的電力卻只有比特幣礦機的1/2甚至更低,這就導致一般人不願意修建專門的顯卡礦機礦場(因為礦場主要賺取的是電費差價,同樣面積的場地,可以放置的顯卡數量少,消耗的電量更少)。即使有少量的顯卡礦場,收取的電費成本通常也比比特幣礦機礦場的高。
㈣ 什麼是DAG區塊鏈技術
DAG全稱是「有向無環圖」,沒有區塊概念,不是把所有數據打包成區塊,再用區塊鏈接區塊,而是每個用戶都可以提交一個數據單元,這個數據單元里可以有很多東西,比如交易、消息等等。數據單元間通過引用關系鏈接起來,從而形成具有半序關系的DAG(有向無環圖)。DAG的特點是把數據單元的寫入操作非同步化,大量的錢包客戶端可以自主非同步地把交易數據寫入DAG,從而可以支持極大的並發量和極高的速度。同時,使用DAG技術的TrustNote還支持聲明式智能合約,聲明式的智能合約要表達的意思是可以直接按照用戶想要的結果去寫、去描述,以很簡單的語言,讓大家都能看懂的語言去描述他要乾的事情。
截止到2017年年底,「高流量應用」越來越多,除了主流電商平台外,還有直播平台、P2P理財、今日頭條、陌陌等嶄露頭角,如果「高流量應用」與DAG區塊鏈技術結合,將會給行業帶來哪些變革呢?除區塊鏈自身的特點去中心化、分布式賬本、不可篡改之外,DAG區塊鏈技術不但可以支持高並發,結合雙層共識機制,使用工作量證明共識演算法,還能夠防止「雙花」問題。
那麼,DAG如何支持高並發的呢?第一,數據不像比特幣和以太坊一樣強同步,而是弱同步,允許節點在同一時刻數據不一樣,數據可以有一些微小的差別。第二,可以通過數據單元之間的引用來完成交易的確認,就是後面發生的單元去引用前面的單元,這樣不需要我們把數據傳給礦工,整個過程都是由自己去完成的,這個過程很快。DAG是解決高並發比較優美的方法,比起之前的閃電網路,還有其他一些方面,DAG有其先天優勢。
再來看看DAG是如何防止「雙花」?在有向圖里如果能選出一個MainChain,這個時候會發現所有圖裡面的節點都可以用一種方法來給它做排序,把這個序號連接起來在一排,這張圖將會變成跟區塊鏈一樣的序列結構,就是排完序的節點,而且每個節點是一個交易,而不是一個區塊。所以,確定了主鏈,通過主鏈,可以形成全序。最後達到的結局就是在某一個邏輯狀態里,交易還是被排序了,這是DAG最關鍵核心的部分。
「高流量應用」是隨著節點數和交易數的增加平滑擴展,當這個節點數超過1億或交易數超過並發100萬時,DAG的特性剛好是交易越多越快,節點越多越快。
㈤ 一文了解以太坊挖礦演算法及算力規模2020-09-09
以太坊網路中,想要獲得以太坊,也要通過挖礦來實現。當前以太坊也是採用POW共識機制,但是與比特幣的POW挖礦有點不一樣,以太坊挖礦難度是可以調節的。以太坊系統有一個特殊的公式用來計算之後的每個塊的難度。如果某個區塊比前一個區塊驗證的更快,以太坊協議就會增加區塊的難度。通過調整區塊難度,就可以調整驗證區塊所需的時間。
以太坊採用的是Ethash 加密演算法,在挖礦的過程中,需要讀取內存並存儲 DAG 文件。由於每一次讀取內寸的帶寬都是有限的,而現有的計算機技術又很難在這個問題上有質的突破,所以無論如何提高計算機的運算效率,內存讀取效率仍然不會有很大的改觀。因此,從某種意義上來說,以太坊的Ethash加密演算法具有「抗ASIC性」。
加密演算法的不同,導致了比特幣和以太坊的挖礦設備、算力規模差異很大。
目前,比特幣挖礦設備主要是專業化程度非常高的ASIC 礦機,單台礦機的算力最高達到了 112T/s(神馬M30S++礦機),全網算力的規模達到139.92EH/s。
以太坊的挖礦設備主要是顯卡礦機和定製GPU礦機,專業化的ASIC礦機非常少,一方面是因為以太坊挖礦演算法的「抗 ASIC 性」提高了研發ASIC礦機的門檻,另一方面是因為以太坊升級到2.0之後共識機制會轉型為PoS,礦機無法繼續挖。
和ASIC礦機相比,顯卡礦機在算力上相差了2個量級。目前,主流的顯卡礦機(8卡)算力約為420MH/s,比較領先的定製GPU礦機算力約在500M~750M,以太坊全網算力約為235.39TH/s。
從過去兩年的時間維度上看,以太坊的全網算力增長相對緩慢。
以太坊協議規定,難度的動態調整方式是使全網創建新區塊的時間間隔為15秒,網路用15秒時間創建區塊鏈,這樣一來,因為時間太快,系統的同步性就大大提升,惡意參與者很難在如此短的時間發動51%(也就是半數以上)的算力去修改歷史數據。
㈥ 為什麼要用DAG作為底層技術相比別的以太坊和比特幣底層技術,其優勢是什麼
DAG區塊鏈與傳統區塊鏈工作機制不同之處在於,後者需要礦工完成工作量證明(PoW)來執行每一筆交易,而DAG區塊鏈能擺脫區塊鏈的限制來完成這樣的操作。相反的是,在DAG區塊鏈中一筆交易接著另外一筆,這意味著一筆交易能夠對下一筆交易提供證明,由此一直排序下去。這些交易之間的連接就是DAG,就像區塊通過哈希值來向整條區塊鏈提供它們的名字一樣。
在傳統塊鏈式區塊鏈中,每筆交易要花費不少時間,而對於DAG區塊鏈來說,交易時間將變得微不足道
㈦ 以太坊架構是怎麼樣的
以太坊最上層的是DApp。它通過Web3.js和智能合約層進行交換。所有的智能合約都運行在EVM(以太坊虛擬機)上,並會用到RPC的調用。在EVM和RPC下面是以太坊的四大核心內容,包括:blockChain, 共識演算法,挖礦以及網路層。除了DApp外,其他的所有部分都在以太坊的客戶端里,目前最流行的以太坊客戶端就是Geth(Go-Ethereum)
㈧ 比特幣和以太坊挖礦有什麼區別
比特幣採用的是SHA-256加密演算法發,在挖礦的時候,比拼的是算力。為了提高算力,比特幣經歷了CPU挖礦、GPU挖礦、FPGA挖礦和現在的ASIC礦機挖礦四個階段,專業化程度越來越高。
以太坊採用的是Ethash加密演算法,在挖礦的過程中,需要讀取內存並存儲DAG文件。由於每一次讀取內存的帶寬都是有限的,而現有的計算機技術又很難在這個問題上有質的突破,所以無論如何提高計算機的運算效率,內存讀取效率仍然不會有很大的改觀。因此從某種意義上來說,以太坊的Ethash加密演算法具有「抗ASIC性」.
加密演算法的不同,導致了比特幣和以太坊的挖礦設備、算力規模差異很大。
目前,比特幣挖礦的、設備主要是專業化程度非常高的ASIC礦機,單台礦機的算力最高達到了110T/s,全網算力的規模在120EH/s以上。
以太坊的挖礦設備主要是顯卡礦機,專業化的ASIC礦機非常少,一方面是因為以太坊挖礦演算法的「抗ASIC性」提高了研發ASIC礦機的門檻,另一方面是因為以太坊升級到2.0之後共識機制會轉型為PoS,礦機無法繼續挖礦。
和ASIC礦機相比,顯卡礦機在啊算力上相差了2個量級。目前,主流的顯卡礦機(8卡)算力約為420MH/s,以太坊全網算力約為230TH/s.
從過去兩年的時間維度上看,比特幣的全網算力增長迅速,以太坊的全網算力增長相對緩慢。
比特幣的ASIC礦機被幾大礦機廠商所壟斷,礦工只能從市場上購買;以太坊的顯卡礦機,雖然也有專門的礦機廠商生產製造,礦工還可以根據自己的需求DIY,從市場上購買配件然後自己組裝。
㈨ a卡挖eth用什麼內核
可以用360驅動大師來安裝,360驅動大師是一款專業解決驅動安裝更新軟體,百萬級的驅動庫支持,驅動安裝一鍵化,無需手動操作,它可以智能檢測硬體,匹配最合適驅動。
ifconfig 查看你是否開啟網卡 /etc/init.d/network restart啟動網卡 查看 cd /etc/sysconfig/network-scripts/ 是否有ifcfg-eth0這個文件 沒有的話配置一個 內容 DEVICE=eth0 (哪張網卡) ONBOOT=yes BOOTPROTO=static。
a卡挖eth微內核:
微內核(Microkernelkernel)結構由一個非常簡單的硬體抽象層和一組比較關鍵的原語或系統調用組成,這些原語僅僅包括了建立一個系統必需的幾個部分,如線程管理,地址空間和進程間通信等。
微核的目標是將系統服務的實現和系統的基本操作規則分離開來。例如,進程的輸入/輸出鎖定服務可以由運行在微核之外的一個服務組件來提供。這些非常模塊化的用戶態伺服器用於完成操作系統中比較高級的操作,這樣的設計使內核中最核心的部分的設計更簡單。
㈩ 以太坊stratum協議原理
參照比特幣的 stratum協議 和 NiceHash的stratum協議規范 編寫了一版以太坊版本的stratum協議說明.
stratum協議是目前最常用的礦機和礦池之間的TCP通訊協議。
以太坊是一個去中心化的網路架構,通過安裝Mist客戶端的節點來轉發新交易和新區塊。而礦機、礦池也同時形成了另一個網路,我們稱之為礦工網路。
礦工網路分成礦機、礦池、錢包等幾個主要部分,有時礦池軟體與錢包安裝在一起,可合稱為礦池。
礦機與礦池軟體之間的通訊協議是 stratum ,而礦池軟體與錢包之間的通訊是 bitcoinrpc 介面。
stratum是 JSON 為數據格式.
礦機啟動,首先以 mining.subscribe 方法向礦池連接,用來訂閱工作。
礦池以 mining.notify 返回訂閱號、ExtraNonce1和ExtraNonce2_size。
Client:
Server:
其中:
是 訂閱號 ;
080c是 extranonce ,Extranonce可能最大3位元組;
礦機以 mining.authorize 方法,用某個帳號和密碼登錄到礦池,密碼可空,礦池返回 true 登錄成功。該方法必須是在初始化連接之後馬上進行,否則礦機得不到礦池任務。
Client:
Server:
難度調整由礦池下發給礦機,以 mining.set_difficulty 方法調整難度, params 中是難度值。
Server:
礦機會在下一個任務時採用新難度,礦池有時會馬上下發一個新任務並且把清理任務設為true,以便礦機馬上以新難度工作。
該命令由礦池定期發給礦機,當礦機以 mining.subscribe 方法登記後,礦池應該馬上以 mining.notify 返回該任務。
Server:
任務ID : bf0488aa ;
seedhash : 。每一個任務都發送一個seedhash來支持盡可能多的礦池,這可能會很快地在貨幣之間交換。
headerhash : 。
boolean cleanjobs : true 。如果設為true,那麼礦工需要清理任務隊列,並立即開始從事新提供的任務,因為所有舊的任務分享都將導致陳舊的分享錯誤。如果是 false 則等當前任務結束才開始新任務。
礦工使用seedhash識別DAG,然後帶著headerhash,extranonce和自己的minernonce尋找低於目標的share(這是由提供的難度而產生的)。
礦機找到合法share時,就以」 mining.submit 「方法向礦池提交任務。礦池返回true即提交成功,如果失敗則error中有具體原因。
Client:
任務ID : bf0488aa
minernonce : 6a909d9bbc0f 。注意minernonce是6個位元組,因為提供的extranonce是2個位元組。如果礦池提供3位元組的extranonce,那麼minernonce必須是5位元組
Server:
一般的礦機與礦池通訊過程就如下所示: