搭建礦池教程
轉自: 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協議的配合下,礦池終於可以大聲的對礦工說,讓算力來的更猛烈些吧。
B. 求大神教導如何挖萊特幣 要詳細的
第一步 下載萊特幣客戶端下載萊特幣客戶端可以 點擊這里下載 ,讀者可以找到適合自己操作系統的版本。
安裝過程非常簡單,只要等待數據塊下載完畢就可以使用了。
對於CPU挖礦首先你需要下載pooler-cpuminer來進行CPU挖礦。下面的列表中有各個操作系統的版本下載。選擇適合你的版本,下載並解壓縮。
Windows 32 bits Version 2.23Windows 64 bitsVersion 2.22
Linux 32 bits Version 2.2.3
Linux 64 bits Version 2.2.3
Macintosh 32 bits Version 2.1.2Macintosh 64 bits Version 2.2.2對於網路狀況不好的童鞋,可能還需要安裝 Stratum mining proxy 。將下載好的mining_proxy放到pooler-cpuminer的壓縮文件中
第三步 注冊一個礦池賬號。下面是一些著名的萊特幣礦池,選擇一個你喜歡的,注冊一個賬號。
C. 怎麼樣自己搭建礦
怎麼自己搭建礦池
要自己搭建一個礦池,需要完成以下幾個步驟:
選擇一個適合的幣種:首先要選擇一個自己熟悉並且感興趣的幣種,可以根據市場需求和挖礦難度等因素進行選擇。
選擇一個合適的礦池軟體:選擇一款可靠的礦池軟體,常見的有P2Pool、CKPool等。
部署礦池軟體:將礦池軟體部署在一台伺服器上,並對其進行必要的配置。
設置錢包地址:在礦池軟體中設置自己的錢包地址,以便於挖礦收益能夠直接打入自己的錢包賬戶。
配置礦工程序:安裝礦工程序,將其連接到礦池伺服器,並設置相應的挖礦參數。
啟動礦池:啟動礦池伺服器,並開始挖礦。
需要注意的是,在搭建礦池的過程中,需要對伺服器進行必要的安全配置,以防止黑客攻擊和數據泄露等問題。同時,要定期備份礦池數據,以避免數據丟失和恢復不及時等問題。另外,還要定期維護伺服器和軟體,保持其正常運行。
D. 實錘!K32或都將失效,Chia官方5月17號推出礦池
突發消息:Chia創始人:預計將於5月17日發布官方的礦池方案原型,之前P的K32文件不支持新的礦池,如果需要接入官方礦池,需要重新P圖。
此消息一出,引發了礦工的騷動尤其是一些大玩家正在P盤的過程中尤其擔心,是不是K32將無效了,花錢150元/T代P的文件是不是廢品了?
1.官方是不是5月17日發布新的礦池?
實錘,官方將在5月17日開放自己合作的礦池。
2.老的plot文件可以繼續用,但是無法加入17號推出的官方礦池?
是的,官方目前公布的信息明確指明,老的數據K32未來可以使用,不需要重新plot繪制,但是老的K32數據無法加入到新推出的礦池協議,但是可以繼續在SOLO挖礦,只是不能加入官方礦池。
3.未來K32文件會不會失效?
會失效,官方是解釋是未來K32的文件會隨著技術的迭代而廢掉,屆時需要重新繪圖,但是我們會提前3個月以上發布公告。
官方推特聲明對於之前chia市場亂象 (現在許多自己搭建的礦池有復制粘貼算力產幣等這對所有人是不公平的)
1、官方要更新迭代以後所有挖chia都會接入官方礦池爆塊更穩定。
2、市場上目前p好盤的算力將來未必能接入到官方,有可能出現爆不了塊的風險,這是官方發出的通知,通過奇亞創始人推特了解到了實際情況如果這時候不停止p盤,全部p完的話,一旦到時接入官方礦池可能面臨重新買硬碟重新p盤的風險。
3、硬碟挖礦工特別提醒:挖礦是礦工長久且穩定的收益,我們建議待官方17號左右更新迭代後再開始p盤,同時取消自己礦池統一接到官方礦池更穩定的爆塊產幣!
4、現在所有還在p盤的礦產也慌的1批,據了解多家良心礦商,緊急叫停所有p盤等待官方更新結束重新開始!
E. 怎麼樣搭建zec礦
怎麼搭建zec礦池
ZEC(Zcash)是一種加密貨幣,如果你想搭建ZEC礦池,你需要遵循以下步驟:
1.確定挖礦軟體和礦池軟體:在搭建礦池之前,你需要選擇一款挖礦軟體和礦池軟體。目前市面上有許多可供選擇的開源軟體,如ClaymoreZcashMiner、EWBFsCUDAZcashMiner等。另外,你需要選擇一種支持ZEC的礦池軟體,例如CoiniumServ、NOMP等。
2.安裝和配置挖礦軟體:在安裝挖礦軟體之前,你需要確保你的計算機滿足軟體的要求,例如顯卡型號、內存、操作系統等。然後,你需要按照軟體提供的指導來安裝和配置挖礦軟體。
3.安裝和配置礦池軟體:在安裝礦池軟體之前,你需要確保你的計算機滿足軟體的要求,例如資料庫、Web伺服器等。然後,你需要按照軟體提供的指導來安裝和配置礦池軟體。
4.配置礦工連接礦池:一旦你成功地安裝和配置了挖礦軟體和礦池軟體,你需要為礦工配置連接礦池的信息,如礦池的IP地址、埠號、礦工的用戶名和密碼等。
5.啟動礦池:最後,你需要啟動礦池並監控其運行狀況,以確保礦池正常運行,礦工能夠連接到礦池並獲得收益。
需要注意的是,在搭建ZEC礦池之前,你需要了解相關的法律法規和風險提示,以確保你的操作合法合規並具有一定的風險意識。同時,你還需要學習一些基本的網路和伺服器知識,以便更好地理解和解決可能出現的問題。
F. 奇亞Chia挖礦價值分析|chia礦池搭建
隨著區塊鏈技術的普及,加密貨幣成為投資熱點,挖礦作為進入區塊鏈的一種方式,受到廣泛關注。傳統項目如以太坊挖礦競爭激烈,成本與收益不成正比。在此背景下,奇亞(Chia)項目逐漸引起關注,成為尋求新機會的選擇之一。
奇亞(Chia)項目是綠色環保的典範,貼合當下社會需求,避免過度中心化問題,促進全民參與。奇亞挖礦與傳統挖礦方式不同,它利用硬碟閑置磁碟空間進行空間證明(Pospace)運算,與時間證明(Potime)配合驗證區塊鏈,以資源量-存儲空間量作為收益依據,對集中化的播種有抑製作用。
奇亞挖礦機制降低了參與門檻,減少了硬體、電力消耗,更加適合普通用戶。與比特幣等傳統項目相比,奇亞的挖礦方式更加節能、環保。據數據表示,比特幣挖礦消耗的電量與全球用電量相當,Chia的出現旨在利用閑置硬碟空間,減少能源浪費。
參與奇亞挖礦主要通過購買礦機或算力產品兩種方式。奇亞礦機與傳統礦機相比,存在本質區別,它與傳統行業硬體設備之間存在粘連性,即使未來市場熱度退散,礦機仍有較高的轉售價值,折損成本低,風險小。
以ChiaFarm Miner 112T為例,每T算力每天產出0.04個XCH(奇亞代幣),每匹算力等於1024T,每天產出40個XCH。假設某礦工以25W資金入場,可以購買大約9台礦機,每天產出40.32個XCH。按照當前場外價格,每枚XCH約20 USDT,礦工每天產出約806.4 USDT,摺合人民幣約5402元。
計算顯示,扣除其他費用後,在兩個月內理論上可以實現成本回收,並享受到後續的盈利空間。奇亞鼓勵更多礦工參與,不僅帶動了閑置存儲硬體的二次使用,還符合其綠色環保的理念。
G. 什麼是礦池 礦場
比特幣也是「挖」出來的,只不過它是由計算機我們一般稱之為「礦機」)在虛擬網路世界中開采出來的。所以,要挖幣,同樣需要選擇一片合適的區域,搭建起廠房,把成百上千台礦機連接起來一起挖礦,這就是礦場。
一個礦場的成本包括建設成本、設備成本、維護成本、網路成本等。其中維護成本包括電力成本和人力成本,這也是我們會把礦場選建在電費相對比較便宜的地方的原因。一台比特幣礦機的回本周期,和政策、技術、幣價、算力、維護狀況等多種因素有關,一般需要200-300天回本。但隨著市場波動,回本周期也會變化。
說完礦場,我們來說說礦池。由於現在挖礦的人越來越多,加入的礦機和礦場也起來越多、總算力越來越大。這種情況下,單個礦機挖到比特幣的概率越來越小。於是,人們想出了個辦法、既然礦機單槍匹馬不行,那我們把礦機聯合起來去和全球其他礦機競爭——這種礦機算力的集合就是所謂的礦池。這樣就能大大增加挖到礦的概率,挖到比特幣後,再根據每台礦機對總算力的貢獻,給予其相應的獎勵。
礦池的概念比礦場抽象。礦池可以是若干礦機的集合,也可以是若干礦場中礦機算力的集合。比如談到現實中一個在中國的礦池,接入這個礦池的礦機既有中國礦機,也有來自國外的礦機,不分區域、大家按勞分配。
H. 礦池排行
礦池排名:1.SparkPool(星火礦池)、2.Ethermine、3.F2Pool、4.FlexPool、5.Hiveon、6.Nanopoo
拓展資料:
①隨著整個比特幣網路的計算水平持續指數級提升,單個設備或少量計算能力都無法獲得比特幣網路在比特幣網路上提供的區塊獎勵。全網算力提升到一定程度後,獲獎概率較低,促使《比特幣談話》上的一些極客想辦法將少量算力結合在一起,這樣搭建的網站被稱為《礦池》。 在這一機制中,無論個別礦工能夠使用多少算力,只要通過加入礦池參與挖掘活動,無論是否成功挖掘出有效數據塊,都可以通過貢獻礦池獲得少量比特幣獎勵,即多人合作挖掘,比特幣獎勵也由多人根據貢獻分享。
②在中本聰論文中描述的比特幣世界中,整個網路平均每10分鍾產生一個區塊,每個區塊包含50個比特幣(現在是12.5,比特幣每四年左右減半),而一個區塊只能被一些幸運的人挖走。直接擁有50個比特幣(現在是12.5,比特幣每四年左右減半),而其他人則一無所有。挖掘概率與礦工投入的設備計算能力成正比。這註定了,如果比特幣挖掘參與者數量龐大且分散到一定程度,那麼發現比特幣的概率將無限接近於零,類似於中獎。也許一台礦機投入開采,開采一個區塊需要5到10年的時間,這讓比特幣開采陷入尷尬境地,讓普通人幾乎無法參與。
③礦池的存在降低了比特幣等虛擬數字貨幣的挖礦難度,降低了挖礦門檻,真正實現了人人可參與的比特幣挖礦理念。但它的缺點也非常明顯,因為連接到礦池的計算能力,作為一個礦池,將擁有極其巨大的計算資源。在比特幣世界,算力代表記賬權,算力就是一切。
④如果單個礦池的計算能力達到50%以上,就很容易對比特幣等類似虛擬數字貨幣發起51%的攻擊,後果非常可怕: 壟斷礦業權,可以使礦池顆粒剩餘49%的計算能力無人收獲,瞬間退出競爭和破產,礦池計算能力超過50%,如果發動51%的攻擊,將輕易占據全網所有有效計算能力。 壟斷記賬權,通過51%的攻擊可以進行雙重支付,一筆錢可以多次使用,會直接破壞比特幣等信用體系,讓其信用化為烏有。 壟斷分配權,由於單個(或可能是多個)礦池通過51%的攻擊佔用全網計算能力,會迅速擠占剩餘礦池,導致其關閉。由於沒有競爭,礦池可以自行分配收入,並向礦工收取過高的手續費等過高的稅款和雜稅。