簡單回顧下挖礦的流程。
首先先要對所有的交易做驗證,剔除有問題的,然後通過一套自定義的標准來選擇哪些交易希望打包進區塊,比如說提供的交易費與交易佔用的位元組大小的比值超過某個門檻,這樣的交易才被認為有利可圖。當然,節點也可以特意選擇要加入某條交易,或者故意忽略某些交易。如果是通過礦池挖礦的話,礦池的伺服器會去篩選交易,然後分配給每個參與的礦機一個獨立的任務。
一旦篩選好交易數據,層層約減,通過這些交易就可以計算出一棵Merkle樹,可以確定一個唯一的摘要,這就是Merkl樹的根。
然後我們再依次獲取挖礦需要的其他信息,這些信息組成一個區塊的頭。
區塊頭的位元組分配
區塊頭只有80個位元組,挖礦只需要對區塊頭進行運算即可。交易數據都通過merkle樹固定了下來,不需要再包含進來。
這些信息中大部分已經是固定下來的,或者是可計算的。
我們以區塊277316為例,其信息來自網站 http://blockchain.info
Bitcoin Block #277316blockchain.info
選擇這個區塊的原因是在《Mastering Bitcoin》一書中,中文社區譯本和英文原版在介紹這部分內容時有出入,而且作者Antonopoulos並沒有提到一個關鍵點,就是位元組順序的問題,相信很多人可能會踩這個坑。這里還原的細節可以幫助讀者與書籍做相互參考。
請大家注意下面的每個步驟,注意每一個變化,這是比特幣最核心的演算法。
轉換時間,記住,一定要轉為utc的時間戳,此處遇到過坑,小心。
這一步的發現異常艱辛,耗費了大量的查詢,大坑,大坑,謹記。發明人中本聰可能為了讓機器計算更快,而變為了更接近機器的編碼方式little-endian.
最終得到的結果就是
16進制下前面15個0,然後是1; 而難度目標對應的數字是
16進制下前面15個0,然後是3. 計算結果小於難度目標,符合要求。這個結果與網站上公布的數字一致。
在挖礦時,nonce隨機數是未知的,要從0試到2^32,但是這個數字其實不大,只有4294967296,以現在的礦機動輒14T每秒的算力,全部算完到上限也不需要一秒。剛才提到在這種情況下,需要使用創幣交易中的附帶信息,額外的字元串成為extra nonce。
另外,創世區塊也可以通過上面的方法來驗證,有好奇的朋友可以嘗試下。
提示:
⑵ 怎麼用礦機挖礦
比特幣挖礦就是利用你挖礦設備的算力計算數學難題,確認交易,系統會根據你為全網貢獻算力的大小給予不等分的比特幣獎勵。比特幣挖礦經過了3個階段,第一個階段大家使用CPU進行挖礦,那是挖礦的人少;第二階段,大家使用顯卡挖礦,通俗點就是燒顯卡挖礦,玩家開始覺醒;第三階段使用專業的ASIC礦機進行挖礦,其中以阿瓦隆的礦機橫空出世和烤貓礦機的投入市場為起點,這個階段算力激增,挖礦難度不斷增加,在隨後的一段時間不斷有新的礦機廠商加入礦機行業,但目前隨著算力的增加和技術的進步,一些礦機廠商開始破產或淡出市場名單阿瓦隆始終活躍在人們的視野,不斷推出新的晶元,目前,阿瓦隆已經推出了三代礦機晶元,第四代也即將推出。
⑶ 以太坊礦池有哪些
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%?
⑷ 如何建立礦池
要在全網算力提升到了一定程度後,過低的獲取獎勵的概率,促使一些「bitcointalk」上的極客開發出一種可以將少量算力合並聯合運作的方法,使用這種方式建立網站。
在此機制中,不論個人礦工所能使用的運算力多寡,只要是透過加入礦池來參與挖礦活動,無論是否有成功挖掘出有效資料塊,皆可經由對礦池的貢獻來獲得少量比特幣獎勵,亦即多人合作挖礦,獲得的比特幣獎勵也由多人依照貢獻度分享。
截止2019年1月,全球算力排名前五的比特幣礦池有:BTC.com 、Poolin、AntPool、slush pool、、F2Pool,目前全球約70%的算力在中國礦工手中。
(4)礦池需要統一分配給礦機擴展閱讀:
手續費:
比特幣礦工會對大部分交易收取少量費用,其主要目的是防止有人大量發送無聊的小額交易,浪費網路資源。當前每筆交易的手續費大部分是฿ 0.0001/KB(0.0001btc/KB),實際上0.9.0以後的版本將默認手續費降為฿ 0.00001/KB(0.00001 btc/KB)。
因為大部分交易佔用的數據量都小於1千位元組,所以一般情況下฿ 0.00001(0.00001 btc/KB)的手續費就足夠了。同時,在將來比特幣區塊獎勵較少時,手續費將成為礦工收入的主要來源,比特幣的手續費會與該交易佔用的位元組數相關。
目前比特幣系統中手續費的計算標准並非強制性的,因此使用者也可以在交易進行時不給予任何手續費;
但大多數礦工在組建資料塊時通常會優先考慮帶有較高手續費的交易,以便在挖礦成功時能獲得較高的報酬,因此無附帶任何手續費的交易,可能會需要等待較長的時間才能被處理並納入區塊鏈中。
此外,現在因為區塊容量上限1MB以及近期比特幣交易量大增的因素,手續費大幅上漲,而且等待交易被確認的時間也變長了許多。
⑸ 知識百科| 礦池的來源及運作原理
由於比特幣全網的運算水準在不斷的呈指數級別上漲,單個設備或少量的算力都無法在比特幣網路上獲取到比特幣網路提供的區塊獎勵。所以我們將少量算力合並聯合運作的方法,使用這種方式建立的網站便被稱作「礦池」。
在此機制中,不論個人礦工所能使用的運算力多寡,只要是透過加入礦池來參與挖礦活動,無論是否有成功挖掘出有效資料塊,皆可經由對礦池的貢獻來獲得少量比特幣獎勵,亦即多人合作挖礦,獲得的比特幣獎勵也由多人依照貢獻度分享。
例如,在四五年前,數字貨幣產業如比特幣還可以使用電腦配置來挖掘。但數字貨幣在發行總量受限的情況下,大多在設計時加入了區塊減半、提高挖礦難度來減慢數字貨幣的發行速度。
隨著礦工越來越多,全網算力也隨之增長。獎池還是這么大競爭的人變多了,小礦工再照這種單打獨斗的方式幾百年才能碰運氣挖到幣。
因此礦工們通過抱團的形式,將大家的裝備技能整合起來變成超級大算力,獲得的獎勵由這個團隊成員根據貢獻程度進行瓜分。
礦工們加入礦池對好處也由此可以看出:礦工的日收益得到了一定保障;避免了運行完整節點的麻煩,接入礦池後礦機只要進行運算,其他的運營和收益分配交給礦池來負責就好。
⑹ 有誰了解礦池一般採用哪種收益模式不同收益模式的區別是什麼
個人怎樣選擇礦池?
礦池費用
目前礦池的分配方式主要有:PPS、PPS+、FPPS、PPLNS以及SOLO模式。
在相應分配方式上,礦池以一定的費率收取礦工部分收益作為礦池費用。
PPS:收益穩定,只要礦機正常工作就有收益,收益和提交的工作量有關,和礦池幸運值、交易手續費無關。
PPS+ (Pay Per Share Plus) 結算方式是對傳統 PPS 結算方式的一種改進,在傳統的 PPS 結算方式基礎上,增加了礦工費的分配。
FPPS:Full PPS(完全PPS),對包括交易費在內的全部區塊收益進行分配。 相比傳統的PPS結算模式(不分配交易費)可提升 10%-20% 左右收益。
PPLNS (Pay Per Last N Shares) 結算方式下,礦池每發現有效的區塊, 根據過去 N 個難度周期中用戶算力占礦池算力的比例進行分配。 這種方式下礦工的收益和礦池的出塊相關,礦工收益不穩定,但長期平均收益更高。
SOLO 結算方式下,全部收益分配給挖出該塊的礦工,其他礦工不參與分配,礦池收取極少手續費,用於礦池運營和維護。
個人如何選擇礦池:
1.首先,考慮能連上的礦池;
2.其次,選擇你的分配模式,追求穩定還是高收益。一般建議選擇PPS或者大礦池的PPLNS;
3.最後,根據分配模式選擇支持的礦池,從中選擇連接速度快的,收益好的;
4.另外,選擇1-2個備用礦池,以供不時之需。
⑺ 什麼是礦池 礦場
比特幣也是「挖」出來的,只不過它是由計算機我們一般稱之為「礦機」)在虛擬網路世界中開采出來的。所以,要挖幣,同樣需要選擇一片合適的區域,搭建起廠房,把成百上千台礦機連接起來一起挖礦,這就是礦場。
一個礦場的成本包括建設成本、設備成本、維護成本、網路成本等。其中維護成本包括電力成本和人力成本,這也是我們會把礦場選建在電費相對比較便宜的地方的原因。一台比特幣礦機的回本周期,和政策、技術、幣價、算力、維護狀況等多種因素有關,一般需要200-300天回本。但隨著市場波動,回本周期也會變化。
說完礦場,我們來說說礦池。由於現在挖礦的人越來越多,加入的礦機和礦場也起來越多、總算力越來越大。這種情況下,單個礦機挖到比特幣的概率越來越小。於是,人們想出了個辦法、既然礦機單槍匹馬不行,那我們把礦機聯合起來去和全球其他礦機競爭——這種礦機算力的集合就是所謂的礦池。這樣就能大大增加挖到礦的概率,挖到比特幣後,再根據每台礦機對總算力的貢獻,給予其相應的獎勵。
礦池的概念比礦場抽象。礦池可以是若干礦機的集合,也可以是若干礦場中礦機算力的集合。比如談到現實中一個在中國的礦池,接入這個礦池的礦機既有中國礦機,也有來自國外的礦機,不分區域、大家按勞分配。
⑻ 火幣礦池備用地址
礦機後台配置三個挖礦地址,第一個是主礦池地址,後兩個是備用礦池地址,礦機為了確保礦工的挖礦收益,設置了自動檢測備用礦池機制,也就是礦機本身會不斷的檢測備用礦池是否可連,礦機在不停地檢測備用礦池的可用性,在此期間主礦池一直保持連接狀態,所以不會影響各位的挖礦收益。
拓展資料
礦池的分配方式主要有:「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模式,即使暫時沒有產生真正的區塊,以後產生出來了真正的區塊,還是會根據挖這個區塊的貢獻,分配給每個礦工。礦工挖礦至少都是挖幾個月,甚至幾年,所以從長遠來看,這兩種模式挖出幣的數量是一樣。
⑼ 以太坊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:
一般的礦機與礦池通訊過程就如下所示:
⑽ 實時算力和本地算力差距大嗎
實時算力和本地算力一般差距較大。一般來說,顯卡礦機的本地算力一直都很穩定,而礦池上顯示的實時算力卻經常波動。有的時候,這台礦機在礦池的實際算力會高於本地算力,有的時候,這台礦機在礦池的實際算力會低於本地算力。
理論上,礦池其實只需要按照有效share的數量,向每一個礦機(綁定的地址)發放獎勵就可以了。不過,實際過程中,礦池是需要給礦機主提供一個數據,來幫助礦工判斷礦機是否在正常工作。
因此,礦池需要把有效share的數量按照每一個任務的權重,反推計算出來一個算力值,來供礦機主參考,辨別礦機是否在正常工作。礦池算力其實並不是你本地的算力數據,而是通過你提交的有效share反推出來的一個幫助判斷機器是否正常運行的數據指標。
本地算力與實時算力的關系
一般礦池算力會顯示成兩個數據:
一個是短時間的算力,或者叫瞬時算力(不同礦池會顯示5分鍾、10分鍾、15分鍾算力);另一個則是長時間的算力,一般會選擇24小時算力。
短時間算力,比如15分鍾算力,就是統計15分鍾提交的有效share然後按照權重反推出來的平均算力值。而長期算力,則是24小時內提交的有效share然後按照權重反推出來的平均算力值。那麼兩個數據的關系,則取決於統計時間內有效share提交的數量。
如果礦機的運算效率高,在此統計周期內(比如15分鍾內),提交的有效share特別多,則這時候的15分鍾算力數據會特別高,甚至比本地算力還要高很多。
(這種情況,可以理解為機器在超負荷運算。例如,機器的能力只有310M水平,卻在這15分鍾完成了400M水平的運算工作。)正常來說,一個機器當然不可能持續的超負荷工作。
所以我們會看到礦池反應的算力曲線是實時波動的,並且同一地址下的礦機數量越少,算力波動會越明顯,若多台礦機一起顯示的總算力會平穩些。而礦池顯示的24小時平均算力,由於統計周期比較長,所以是一個比較穩定的數據。一般會比本地算力略低一些。
因此,也會出現很多時候,在此統計周期內(比如15分鍾內),提交的有效share比較少。那麼這個時候的15分鍾算力數據就會比較低,低於本地算力。