低難度share挖礦
目前全網P2POOL節點礦池的算力是20T左右,但是實際利用率僅有10-15T算力,浪費了很多算力。
全網的算力以及出塊情況在這里看http://www.taobtc.net/
算力被浪費了很多,造成這個原因還的從P2POOL礦池的結構說起,P2POOL節點礦池會根據工人挖礦設備的算力自動調節礦池的難度,而這個過程是相當快的,幾分鍾就會調整一次難度,導致挖礦的設備很容易報錯,就是產生大量的R,效率降低。而P2POOL礦池是PPLNS模式,需要提交一個有效的SHARE,才會有有收益,提交有效SHARE後,24小時內產生的塊你都可以分到。有效SHARE的難度比較大,在我的池子里反應出來的是1G的算力根本挖不到有效SHARE。
如何提高P2POOL礦池的效率呢?
1.首先作為節點礦池,礦池建設的本身需要添加節點文件,顯示在比特幣錢包下方的連接數,增加節點後連接數能達到幾十個連接甚至更多,要看你添加的節點有多少,有效減少無效的SHARE。
2.礦工需要固定挖礦設備的算力難度,要怎麼做呢?在你的挖礦設備啟動bat裡面設置即可。
比如你的單個挖礦設備是10G,你就在bat文件里,用戶名(既錢包地址)後面加
/1000+10。比如我的bat里
-u
/1000+10
-p
1,這是什麼意思呢?意思就是說你的這個設備是10G算力,你在P2POOL礦池挖礦使用固定難度10G的難度。如果你是1G的設備就在後面寫/1000+1,這樣難度就固定了,有效提高了設備效率。
❷ 細數幾種挖礦模式,哪種更適合新手
曾幾何時,挖礦還僅僅只是極客和部分區塊鏈技術開發人員之間的娛樂。但隨著資本的湧入,加密貨幣世界越來越多的涉足金融世界,交易所Binance(幣安)宣布其收入遠超德意志銀行(Deutsche Bank),采礦巨頭 Bitmain(比特大陸)也即將上市,不管我們喜不喜歡,采礦作為新興行業迅猛發展已成事實。
無數礦工的湧入,極大的推高了數字貨幣的全網算力,單打獨斗的solo挖礦由於POW(Proof of Work,工作量證明機制)而受限於礦機性能,往往無法與大礦工進行競爭(獨立建立礦場的大佬除外)。取而代之的,是無數礦工抱團取暖,貢獻算力,然後挖到幣之後大家按算力貢獻大小分,也就是所謂的礦池。
目前市場上的礦池很多,各自選用的模式也有所不同,為了方便新手選擇,接下來我們就細數幾種模式的區別,然後審查它們的弱點和好處,以便理解。
Pay Per Last N Shares模式就是" 根據過去的N個股份來支付收益 "。主流礦池一般採用PPLNS模式,這個也是最原始的挖礦模式,大家一起組隊挖礦,挖了礦、出了塊,扣除礦池的手續費後,剩下的 按貢獻的算力分配 。
在PPLNS模式下,運氣成佔比很大。不管是什麼幣種,出塊都是一個概率問題,運氣好的時候運算一會兒就出塊了。運氣不好的時候半天都出不了一個。也有可能今天出5個,明天就出3個,礦池一天內發現區塊的多與少,會直接影響到礦工的分紅。
長遠來看收益差不多,短期就有太多不確定因素。但是這種模式的 手續費相對較低 ,適合穩定在一個礦池的礦工,隨意切換會降低收益,因為收益想穩定就得把時間軸拉長。
優點:收益全分配,運氣好時會獲得更多收益
缺點:收益沒保證,收益時高時低,完全看運氣
PPLNS時而收益高,時而沒有收益,極不穩定,為了解決這一問題,Pay Per Share運用了新的分配方案。新方案是礦池根據你的算力提前推算出你的在一個周期內能夠獲得多少幣,直接將對應算力的幣支付給你,這樣礦工收益就固定了,完全不用承擔風險。相當於將算力賣給礦池,礦池自己負責盈虧。即使一天沒有出塊也沒事,照樣有收益。但是如果有一天收益高了,那麼這時候礦池就賺了。
事實上,PPS模式的礦池為了避免虧本風險,往往會 收取更高額手續費 。相對的,PPS收益盡管低了點,但每天比較穩定,不容受到挫折,礦工也不用擔心切換礦池而損害收益。
優點:收益固定,可以隨意切換礦池
缺點:手續費比較高,沒有高收益獎勵
再有就是PPS+模式,結合了PPS和PPLNS模式的優點。這種模式是 將收益拆分為固定塊收益和交易手續費 。爆塊的獎勵是固定的,提前按pps的方式計算,給你按理論收益再扣除礦池費率,給礦工結算,能保證收益的固定。交易費用按PPLNS計算,在轉賬高手續費,以及礦池幸運值高的時候爆塊多的時候,會明顯提高礦工的收益。
優點:收益可觀,適合所有礦工
缺點:高收益依賴於高轉賬手續費和礦池幸運值
當然,除了上述這些,還有一些其他的小眾模式,相對比較少見,這里就不做贅述。
總的來說,3種模式都各有優劣,出塊數量和穩定性、身處礦池的周期、礦池的費率等都會對最終收益造成影響,對於新手來說,最好可以根據自己的情況進行分析,這樣才能找到真正適合自己的挖礦模式。
❸ 什麼是比特幣挖礦難度如何調整原理是什麼
比特幣挖礦難度(Difficulty),是對挖礦困難程度的度量,挖礦難度越大,挖出區塊就越困難。目標值(Target)與挖礦難度成反比。難度越高,目標值越小。而難度目標是目標值通過轉化得到,是一個只有 4 個位元組的欄位(為了便於理解,本文將難度目標等同目標值處理)。比特幣系統正是通過調整區塊頭中難度目標來控制挖出區塊所需平均時間的。
目標值是個長度為 256 比特的字元串,換句話說目標值約有 2^256 種可能的取值。調整難度目標就是調整目標值在整個輸出空間的佔比。
舉例說明:挖礦就如射擊,所有射出去的子彈都會落在一個很大的靶子上。難度目標就是這個大靶子上圈出一個范圍,這個范圍越小,被射中的難度就越高。調節難度目標,就是調節這個圈在整個靶子上的佔比。
挖礦算力增大,單位時間射擊的次數就越多,目標范圍被射中所需的時間就越短。反之,挖礦算力減小,目標范圍被擊中所需的時間就越長。而比特幣系統追求的平均出塊時間為 10 分鍾,這時候就需要調整難度目標來實現。
02 如何調整難度目標?
比特幣系統是怎樣調整難度目標的呢?在《白話區塊鏈入門 080 | 數說比特幣,了解 比特幣 必須知道這 10 個數字》一文中,我們介紹了比特幣系統每過 2016 區塊(大約為 14 天時間),會自動調整一次難度目標。所有區塊高度為 2016 整數倍的區塊,系統就會自動調整難度目標。如果上一個難度目標調整周期(也就是之前 2016 個區塊),平均出塊時間大於 10 分鍾,說明挖礦難度偏高,需要降低挖礦難度,增大難度目標(准確地說是目標值);反之,前一個難度目標調整周期,平均出塊時間小於 10 分鍾,說明挖礦難度偏低,需要縮小難度目標。
03 難度目標的可調范圍
比特幣系統設定,難度目標上調和下調的范圍都有 4 倍的限制。舉例說明:假設上一個難度目標調整周期內的 2016 個區塊,由於算力暴漲,只用 7 天就全部挖出來了,通過難度目標調整,將難度目標縮小一倍,可以將平均出塊時間維持在 10 分鍾左右,但如果算力暴漲,前 2016 個區塊全部挖出只用了 1 天,那麼難度目標最小隻能調整為原來的四分之一。
04 總結
比特幣的算力是持續波動的,比特幣系統通過難度目標的調整,使得平均出塊時間維持在 10 分鍾左右。難度目標和挖礦難度成反比,挖礦難度越大,難度目標越小。當區塊高度為 2016 的整數倍時,比特幣系統就會在該區塊上,自動調整難度目標。如果上一個難度目標調整周期內,平均出塊時間超過 10 分鍾,那麼降低挖礦難度,增大難度目標;反之則提高挖礦難度,減小難度目標。難度目標上調和下調的范圍都有 4 倍的限制。
比特幣每 2016 個區塊(大約 14 天)調整一次挖礦難度,相比於 BCH 每個區塊都調整(大約 10 分鍾調整一次),有明顯的滯後性。你認為是哪種調整方式更合理呢?為什麼呢?歡迎在留言區分享你的觀點。
❹ 挖礦軟體中的shares是什麼意思
shares
美 [ʃɛr]
n. [金融] 股份(share的復數形式)
v. [計] 共享,共有;分配(share的三單形式)
❺ 目前挖礦,要注冊礦池,一般都哪些礦池
目前挖礦要注冊礦池,一般礦池的分配方式主要有:「PPLNS、PPS、PROP」三種。
1、PPLNS模式:(最純正的組隊挖礦)全稱Pay Per Last N Shares,意思是說「根據過去的N個股份來支付收益」,這意味著,所有的礦工一旦發現了一個區塊,大家將根據每個人自己貢獻的股份數量佔比來分配區塊中的貨幣。
在PPLNS模式下,運氣成份非常重要,如果礦池一天能夠發現很多個區塊,那麼大家的分紅時間會非常快,如果礦池一天下來都沒有能夠發現區塊,那麼大家當天也就沒有任何收益,收益要等到你參加的區塊被完全挖掘出來才能得到分配。
同時,由於PPLNS下,具有一定的滯後慣性,你的挖礦收益會有一定的延遲,比如說,你加入到一個新的PPLNS礦池,這個時候你會發現前面幾個小時的收益比較低,那是因為別人在這個礦池裡已經貢獻了很多個share了,你是新來的,你的貢獻還很少,所以分紅時你的收益都是比較低的。
隨著時間的推移,該結算的也結算了,大家又開始進行了新一輪的運算時,你就回到和別人一樣的水平了。同樣道理,若你離開了PPLNS礦池不再挖礦,你貢獻的share還在,在此後的一段時間里,你依然會得到分紅收益,直到你的share被結算完畢。
2、PPS模式:Pay-Per-Share方式---該方式為立即為每一個share支付報酬。該支出來源於礦池現有的比特幣資金,因此可以立即取現,而不用等待區塊生成完畢或者確認。這樣可以避免礦池運營者幕後操縱。
這種方法減少了礦工的風險,但將風險轉移給了礦池的運營者。運營者可以收取手續費來彌補這些風險可能造成的損失。為了解決PPLNS那種有時候收益很高,有時候沒有收益的情況,PPS採用了新的演算法。PPS根據你的算力在礦池中的佔比,並估算了礦池每天可以獲得的礦產,給你每天基本固定的收益。
3、PROP模式:比特幣區塊的產生是:由礦池發現區塊後向全網路廣播,經過120次確認後,才會產生區塊。PPS模式是:礦工每貢獻一點速度,礦池就向礦工支付相應的比特幣,礦池的幣還是要來自真正的區塊產生,只不過在真正的區塊產生之前,礦池就提前支付給了礦工。
PROP模式是:礦池經過120次確認產生真正區塊後,會把比特幣按每個礦工的貢獻分配給礦工,這種模式更符合比特幣區塊的產生。在PROP模式,即使暫時沒有產生真正的區塊,以後產生出來了真正的區塊,還是會根據挖這個區塊的貢獻,分配給每個礦工。礦工挖礦至少都是挖幾個月,甚至幾年,所以從長遠來看,這兩種模式挖出幣的數量是一樣。
利弊分析:
礦池的存在降低了比特幣等虛擬數字貨幣開採的難度,降低了開采門檻,真正實現了人人皆可參與的比特幣挖礦理念。但其弊端也非常明顯,因為算力接入礦池,作為礦池來說,將掌握極其龐大的算力資源,在比特幣世界中,算力代表著記賬權,算力即是一切,如果單家礦池算力達到50%以上,將可以輕易對比特幣等類似的虛擬數字貨幣發動51%攻擊,其後果是非常可怕的。
1、壟斷開采權,可使掌握剩餘49%算力的礦池顆粒無收,瞬間退出競爭並倒閉破產,礦池算力超過50%以上,如果發動51%攻擊,將能輕易占據全網全部有效算力。
2、壟斷記賬權,可通過51%攻擊進行雙重支付等行為,可將1筆錢多次使用,這將直接摧毀比特幣等的信用體系,使之信用灰飛煙滅。
3、壟斷分配權,由於單家(也可能是多家礦池聯盟)礦池通過51%攻擊占據全網算力,可快速排擠剩下礦池使其倒閉,由於沒有競爭,礦池便可自行進行收益分配,對礦工收取高額手續費等苛捐雜稅。
❻ 以太坊礦池有哪些
1. Ethpool(Ethermine)ETHpool.org是第一個官方的以太坊礦池。此前由於工作量超負荷,該礦池不接受新用戶,只接受老客戶。因此,許多新礦工被迫轉向單獨挖礦,因為那時還沒有其他可替代的礦池。在Ethpool上挖礦,必須安裝以太坊的C++ETH版本。? 市場佔有率:23%? 當前礦池算力:399.1GH / s? 挖礦獎勵結算模式:PPLNS? 費率:1.0%? 網址:https://ethpool.org/2. NanopoolNanopool雖然是新礦池,但已經是目前以太坊上最大的礦池之一。份額(Share)的復雜性是靜態的,相當於50億。在該礦池上進行挖礦的最低哈希率僅為5 Mhesh / s。此外,此礦池根據PPLNS方案計算挖礦獎勵,其中N是最近10分鍾內所有接受的份額。(註:PPLNS全稱Pay Per Last N Shares,即根據最近的N個股份來支付收益。)Nanopool的伺服器遍及全球,官網頁面簡潔直觀。但是這個礦池的最低支付門檻相對較高,建議連接3個伺服器,避免等待長時間的付款期。? 市場佔有率:8%? 當前礦池算力:16,176.3GH / s? 挖礦獎勵結算模式:PPLNS? 費用:1.0%? 網址:https://eth.nanopool.org/3. F2Pool(魚池)F2Pool是2019年最受歡迎的礦池之一。F2pool的伺服器主要位於中國、其他亞洲國家和美國。F2pool.com因其開放性,可訪問性和易用性而備受礦工喜愛。礦工在F2Pool上注冊後才可以挖礦。以太坊挖礦需要一個顯卡礦機。 ? 市場佔有率:10%? 當前礦池算力:19.38TH / s? 挖礦獎勵結算模式:PPS+? 費率:2.5%? 網址:https://www.f2pool.com/4. Sparkpool(星火礦池)在ETH,GRIN和BEAM生態系統中,最強大的中國資源庫是Sparkpool,它是與全球礦工合作的開放資源。在挖礦之前,你需要配置礦機。基於AMD GPU處理器的以太坊挖礦收益更高。它需要快閃記憶體改進的BIOS並調整MSI Afterburner或AMD驅動程序設置中的超頻選項。 ? 市場佔有率:29%? 當前礦池算力:56.96TH / s? 挖礦獎勵結算模式:PPS +? 費用:1.0%? 網址:https://www.sparkpool.com/5. Dwarfpool在DwarfPool,礦工的信用等級分為RBPPS或HBPPS。使用RBPPS,只要有A值,你就可以獲得對應獎勵(死塊除外)。HBPPS計提演算法是基於時間的股份支付。每小時計算一次所有推廣和發現的區塊。該礦池具有經過優化的最佳挖礦引擎,拒絕率較低,透明且詳細的統計信息。每小時進行一次支付結算,伺服器遍布世界各地。? 市場佔有率:6%? 當前礦池算力:2377109 MH / s? 挖礦獎勵結算模式:HBPPS? 費用:1.0%? 網址:https://dwarfpool.com/6. MiningPoolHubMiningPoolHub允許礦工通過挖礦獲利,並根據不同支付系統的匯率來交易數字貨幣。該礦池使用PPLNS演算法確定用戶獎勵。提款手續費為0.9%。? 市場份額:3.7%? 當前礦池算力:7.05T / s? 挖礦獎勵類型:PPLNS? 費用:1.0%?
❼ 挖礦接受率低怎麼回事
通過架設比特幣節點獲利的過程,被人們形象地稱為 「挖礦」(mining),而參與建設節
點的那些人被人們稱為 「礦工」(miners)。因為 「搶紅包」 是有一定運氣因素存在的
行為,所以,礦工們會集中挖礦,方式是把自己的節點算力集中到一個「礦池」(mining pool)之中,以便增加自己搶紅包時的運氣。
礦機挖礦接受率低通常有以下幾種情況:
1. 網路通信問題導致丟包、延時問題,請檢查網線和網路情況。
礦機通過連接礦池進行礦池,礦池定時給礦機分發job,礦機隨之將share提交給礦池,這個過程中涉及大量的數據傳輸。網路情況對礦機的算力和拒絕率有直接的影響。
您可以通過以下方法確認網路情況:
1)將電腦連接至礦機所在的區域網
2)在電腦上打開cmd命令提示符
3) 輸入ping+空格+幣印礦池某幣種挖礦地址,比如我想確認礦機連接幣印礦池大零幣ZEC北京節點的網路情況,可輸入ping zec-bj.ss.poolin.com,並按回車鍵獲取結果。
通常ping值在50ms內都是一個比較正常的范圍。
2. 礦機溫度過高
礦機溫度過高同樣會影響礦機的算力和拒絕率,特別是在炎熱的夏季。如下截圖中的溫度基本正常。不同的礦機對最高溫度適應情況不同,通常在90-100以下的溫度還是比較正常的。具體的需要根據不同的機型進行確認。
3.固件問題,部分礦機可能因為固件問題導致拒絕率普遍偏高。出現類似情況,可咨詢礦機廠商。
4.挖礦系統或軟體有問題,用原版Claymore軟體跑一下,看運行界面,有沒有紅色字提醒超頻過了或者其他錯誤的;
❽ 游戲我的世界生存模式中,都有哪些挖礦的技巧
作為一款沙盒游戲而言,我的世界這款游戲並不像其他游戲那般曇花一現,其熱度經久不衰,牢牢霸佔著沙盤類游戲的巨頭寶座。
第三個方法,也是最後一個方法。這個方法也是最好理解的,那就挖礦時不要帶太多物資,攜帶著一些必備物資就好了。這樣輕裝上陣,空出來的格子也能多裝點礦石了。好了這就是挖礦的三個小竅門了,如果你學會了的話,那就塊去試試吧。
❾ 比特幣礦池的協議stratum
轉自: https://zhuanlan.hu.com/p/23558268
getblocktemplate協議誕生於2012年中葉,此時礦池已經出現。礦池採用getblocktemplate協議與節點客戶端交互,採用stratum協議與礦工交互,這是最典型的礦池搭建模式。
與getwork相比,getblocktemplate協議最大的不同點是:getblocktemplate協議讓礦工自行構造區塊。如此一來,節點和挖礦完全分離。對於getwork來說,區塊鏈是黑暗的,getwork對區塊鏈一無所知,他只知道修改data欄位的4個位元組。對於getblocktemplate來說,整個區塊鏈是透明的,getblocktemplate掌握區塊鏈上與挖礦有關的所有信息,包括待確認交易池,getblocktemplate可以自己選擇包含進區塊的交易。
挖礦有兩種方式,一種叫SOLO挖礦,另一種是去礦池挖礦。前文所述的在節點客戶端直接啟動CPU挖礦,以及依靠getwork+cgminer驅動顯卡直接連接節點客戶端挖礦,都是SOLO挖礦,SOLO好比自己獨資買彩票,不輕易中獎,中獎則收益全部歸自己所有。去礦池挖礦好比合買彩票,大家一起出錢,能買一堆彩票,中獎後按出資比率分配收益。理論上,礦機可以藉助getblocktemplate協議鏈接節點客戶端SOLO挖礦,但其實早已沒有礦工會那麼做,在寫這篇文章時,比特幣全網算力1600P+,而當前最先進的礦機算力10T左右,如此算來,單台礦機SOLO挖到一個塊的概率不到16萬分之一,礦工(人)投入真金白銀購買礦機、交付電費,不會做風險那麼高的投資,顯然投入礦池抱團挖礦以降低風險,獲得穩定收益更加適合。因此礦池的出現是必然,也不可消除,無論是否破壞系統的去中心化原則。
礦池的核心工作是給礦工分配任務,統計工作量並分發收益。礦池將區塊難度分成很多難度更小的任務下發給礦工計算,礦工完成一個任務後將工作量提交給礦池,叫提交一個share。假如全網區塊難度要求Hash運算結果的前70個比特位都是0,那麼礦池給礦工分配的任務可能只要求前30位是0(根據礦工算力調節),礦工完成指定難度任務後上交share,礦池再檢測在滿足前30位為0的基礎上,看看是否碰巧前70位都是0。
礦池會根據每個礦工的算力情況分配不同難度的任務,礦池是如何判斷礦工算力大小以分配合適的任務難度呢?調節思路和比特幣區塊難度一樣,礦池需要藉助礦工的share率,礦池希望給每個礦工分配的任務都足夠讓礦工運算一定時間,比如說1秒,如果礦工在一秒之內完成了幾次任務,說明礦池當前給到的難度低了,需要調高,反之。如此下來,經過一段時間調節,礦池能給礦工分配合理難度,並計算出礦工的算力。
礦池通過getblocktemplate協議與網路節點交互,以獲得區塊鏈的最新信息,通過stratum協議與礦工交互。此外,為了讓之前用getwork協議挖礦的軟體也可以連接到礦池挖礦,礦池一般也支持getwork協議,通過階層挖礦代理機制實現(Stratum mining proxy)。須知在礦池剛出現時,顯卡挖礦還是主力,getwork用起來非常方便,另外早期的FPGA礦機有些是用getwork實現的,stratum與礦池採用TCP方式通信,數據使用JSON封裝格式。
先來說一下getblocktemplate遺留下來的幾個問題:
礦工驅動:在getblocktemplate協議里,依然是由礦工主動通過HTTP方式調用RPC介面向節點申請挖礦數據,這就意味著,網路最新區塊的變動無法及時告知礦工,造成算力損失。
數據負載:如上所述,如今正常的一次getblocktemplate調用節點都會反饋回1.5M左右的數據,其中主要數據是交易列表,礦工與礦池需頻繁交互數據,顯然不能每次分配工作都要給礦工附帶那麼多信息。再者巨大的內存需求將大大影響礦機性能,增加成本。
Stratum協議徹底解決了以上問題。
Stratum協議採用主動分配任務的方式,也就是說,礦池任何時候都可以給礦工指派新任務,對於礦工來說,如果收到礦池指派的新任務,應立即無條件轉向新任務;礦工也可以主動跟礦池申請新任務。
現在最核心的問題是如何讓礦工獲得更大的搜索空間,如果參照getwork協議,僅僅給礦工可以改變nNonce和nTime欄位,則交互的數據量很少,但這點搜索空間肯定是不夠的。想增加搜索空間,只能在hashMerkleroot下功夫,如果讓礦工自己構造coinbase,那麼搜索空間的問題將迎刃而解,但代價是必要要把區塊包含的所有交易都交給礦工,礦工才能構造交易列表的Merkleroot,這對於礦工來說壓力更大,對於礦池帶寬要求也更高。
Stratum協議巧妙解決了這個問題,成功實現既可以給礦工增加足夠的搜索空間,又只需要交互很少的數據量,這也是Stratum協議最具創新的地方。
再來回顧一下區塊頭的6個欄位80位元組,這個很關鍵,nVersion,nBits,hashPrevBlock這3個欄位是固定的,nNonce,nTime這兩個欄位是礦工現在就可以改變的。增加搜索空間只能從hashMerkleroot下手,這個繞不過去。Stratum協議讓礦工自己構造coinbase交易,coinbase的scriptSig欄位有很多位元組可以讓礦工自由填充,而coinbase的改動意味著hashMerkleroot的改變。從coinbase構造hashMerkleroot無需全部交易,
如上圖所示,假如區塊將包含13筆交易,礦池先對這13筆交易進行處理,最後只要把圖中的4個黑點(Hash值)交付給礦工,同時將構造coinbase需要的信息交付給礦工,礦工就可以自己構造hashMerkleroot(圖中的綠點都是礦工自行計算獲得,兩兩合並Hash時,規定下一個黑點代表的hash值總是放在右邊)
。按照這種方式,假如區塊包含N筆交易,礦池可以濃縮成log2(N)個hash值交付給礦工,這大大降低了礦池和礦工交互的數據量。
Stratum協議嚴格規定了礦工和礦池交互的介面數據結構和交互邏輯,具體如下:
1. 礦工訂閱任務
啟動挖礦機器,使用mining.subscribe方法鏈接礦池
返回數據很重要,礦工需本地記錄,在整個挖礦過程中都用到,其中:
Extranonce1,和 Extranonce2對於挖礦很重要,增加的搜索空間就在這里,現在,我們至少有了8個位元組的搜索空間,即nNonce的4個位元組,以及 Extranonce2的4個位元組。
2. 礦池授權
在礦池注冊一個賬號 ,添加礦工,礦池允許每個賬號任意添加礦工數,並取不同名字以區分。礦工使用mining.authorize方法申請授權,只有被礦池授權的礦工才能收到礦池指派任務。
3. 礦池分配任務
以上每個欄位信息都是必不可少,其中:
有了以上信息,再加上之前拿到的Extranonce1 和Extranonce2_size,就可以挖礦了。
4. 挖礦
1) 構造coinbase交易
用到的信息包括Coinb1, Extranonce1, Extranonce2_size 以及Coinb2,構造很簡單:
為啥可以這樣,因為礦池幫礦工做了很多工作,礦池已經構建了coinbase交易,系列化後在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定信息,比如coinb1包含區塊高度,coinb2包含了礦工的收益地址和收益額等信息,但是這些信息對於礦工來說無關緊要,礦工挖礦的地方只是Extranonce2 的4個位元組。另外Extranonce1是礦池寫入區塊的指定信息,一般來說,每個礦池會寫入自己礦池的信息,比如礦池名字或者域名,我們就是根據這個信息統計每個礦池在全網的算力比重。
2) 構建Merkleroot
利用coinbase和merkle_branch,按照上圖方式構造hashMerkleroot欄位。
3) 構建區塊頭
填充餘下的5個欄位,現在,礦池可以在nNonce和Extranonce2 里搜索進行挖礦,如果嫌搜索空間還不夠,只要增加Extranonce2_size為多幾個位元組就可輕而易舉解決。
5. 礦工提交工作量
當礦工找到一個符合難度的shares時,提交給礦池,提交的信息量很少,都是必不可少的欄位:
礦池拿到以上5個欄位後,首先根據任務號ID找出之前分配任務前存儲的信息(主要是構建的coinbase交易以及包含的交易列表等),然後重構區塊,再驗證shares難度,對於符合難度要求的shares,再檢測是否符合全網難度。
6. 礦池給礦工調節難度
礦池記錄每個礦工的難度,並根據shares率不斷調節以指定合適難度。礦池可以隨時通過mining.set_difficulty方法給礦工發消息另其改變難度。
如上,Stratum協議核心理念基本解析清楚,在getblocktemplate協議和Stratum協議的配合下,礦池終於可以大聲的對礦工說,讓算力來的更猛烈些吧。
❿ 比特幣挖礦時A值與share還有收益的關系
Yes ~ share、A值越高證明算力越強,算力越越強證明什麼?你懂的~