日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

以太坊的挖礦機(jī)制是怎樣的?以太坊的挖礦機(jī)制是什么?

隨著以太坊正式運(yùn)行的臨近,詢問以太如何挖礦的朋友也越來越多 。這篇文章綜合了我們目前所知道的信息,希望能對(duì)大家有一些幫助 。由于挖礦算法的設(shè)計(jì)和改進(jìn)仍在進(jìn)行中,以下信息僅供參考 。下面小編給大家介紹一下!

以太坊的挖礦機(jī)制是怎樣的?以太坊的挖礦機(jī)制是什么?


設(shè)計(jì)目標(biāo)
抵抗礦機(jī)(ASIC Resistance) 。使用專門優(yōu)化的芯片產(chǎn)生的挖礦優(yōu)勢(shì)應(yīng)該盡可能的小,小到即使使用普通CPU挖礦也能產(chǎn)生收益 。
輕客戶端可驗(yàn)證 。輕客戶端應(yīng)該有能力驗(yàn)證每一個(gè)塊的真實(shí)性 。目標(biāo)是在普通桌面電腦上運(yùn)行用C實(shí)現(xiàn)的驗(yàn)證算法,驗(yàn)證時(shí)間小于0.01秒,用Python或者Javascript小于0.1秒,使用內(nèi)存不超過1MB 。
挖礦算法
以太幣(ether)的挖礦算法叫做Ethash, 又名Dashimoto (Dagger-Hashimoto),是Hashimoto算法結(jié)合Dagger之后產(chǎn)成的一個(gè)變種 。它的特點(diǎn)是挖礦的效率基本與CPU無關(guān),卻和內(nèi)存大小和內(nèi)存帶寬正相關(guān) 。對(duì)內(nèi)存大小和帶寬的要求意味著那些通過共享內(nèi)存的方式大規(guī)模部署的礦機(jī)芯片并不能在挖礦效率上有線性或者超線性(super-linear)的增長 。
接下來讓我們看看Dashimoto的基本流程:
對(duì)于每一個(gè)塊(block),先計(jì)算出一個(gè)種子(seed) 。種子的計(jì)算只依賴于當(dāng)前塊的信息,例如block number以及block headers 。
使用種子產(chǎn)生32MB的偽隨機(jī)數(shù)據(jù)集,稱為cache 。輕客戶端需要保存cache 。
基于cache再生成一個(gè)1GB大小的數(shù)據(jù)集,稱為the DAG 。這個(gè)數(shù)據(jù)集中的每一個(gè)元素都只依賴cache中的某幾個(gè)元素,換句話說,只要有cache就可以快速計(jì)算出DAG中指定位置的元素 。完整的可挖礦的客戶端需要保存DAG 。
挖礦可以概括為從DAG中隨機(jī)選擇元素然后對(duì)其進(jìn)行hash的過程 。驗(yàn)證的過程也是一樣,只不過不是從DAG里面選擇元素,而是基于cache計(jì)算得到指定位置的元素,然后驗(yàn)證這個(gè)元素集合的hash結(jié)果小于某個(gè)值 。由于cache很小, 而且指定位置的DAG元素很容易計(jì)算,因此驗(yàn)證過程只需要普通CPU和普通內(nèi)存即可完成 。
cache和DAG每一個(gè)周期更新一次,一個(gè)周期的長度是1000個(gè)塊 。也就是說這1000個(gè)塊產(chǎn)生的cache和DAG是完全一樣的,因此挖礦的主要工作在于從DAG中讀取數(shù)據(jù),而不是更新cache和DAG 。DAG的大小隨時(shí)間的推移線性增長,從1GB開始,每年增加大約7GB – 因此到2015年12月大約是8GB, 到2016年12月大約15GB 。
注:以上步驟中的數(shù)字已經(jīng)隨著開發(fā)的推進(jìn)有了調(diào)整,準(zhǔn)確值請(qǐng)參考源代碼 。
挖礦軟件
我們預(yù)計(jì)在上線之時(shí)將有至少兩種挖礦方式:
使用Mist客戶端(官方客戶端實(shí)現(xiàn),基于Go語言)進(jìn)行CPU挖礦 。
【以太坊的挖礦機(jī)制是怎樣的?以太坊的挖礦機(jī)制是什么?】通過以太坊守護(hù)進(jìn)程(eth daemon)和sgminer的組合進(jìn)行GPU挖礦 。守護(hù)進(jìn)程和sgminer之前的數(shù)據(jù)通訊可以通過JSON-RPC API完成 。目前有兩個(gè)API和挖礦有關(guān):eth_getWork以及eth_submitWork 。

    推薦閱讀