搭建礦池win7
轉自: 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協議的配合下,礦池終於可以大聲的對礦工說,讓算力來的更猛烈些吧。
⑵ 實錘!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盤等待官方更新結束重新開始!
⑶ 如何搭建自己的區塊鏈
第一部分:從 0 到 1 建立自己的區塊鏈 目錄:
1.1 從模仿開始,初識區塊鏈
1.2 區塊鏈的基礎:共識機制剖析
1.3 共識機制的設計原理和設計方法
1.4 如何快速克隆一條區塊鏈
1.5 如何把比特幣變成自己的私鏈–分叉比特幣
1.6 如何把以太坊變成自己的私鏈–分叉以太坊
1.7 如何把 Ripple 變成自己的私鏈–分叉 ripple
1.8 如何把 stellar 變成自己的私鏈–分叉 stellar 1.9 如何搭建一個礦池,並挖出自己的創始區塊
1.10 如何開發自己的區塊鏈錢包(Windows 和 MAC) 1.11 如何開發自己的區塊鏈錢包(Android 和 IOS) 1.12 如何開發一個類似於 blockchain.info 的在線錢包 1.13 如何增加自己的區塊鏈網路的安全性和魯棒性 1.14 如何利用 coind 來處理充值提現業務
1.15 如何利用資金池搭建一個混幣服務
1.16 如何設計一種新的挖礦演算法
一般情況下都是這個流程,但一般人也是非常難以完成的。區塊鏈成熟的項目有以太坊、DECENT、比特幣等等。
⑷ 礦池排行
礦池排名: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%的攻擊佔用全網計算能力,會迅速擠占剩餘礦池,導致其關閉。由於沒有競爭,礦池可以自行分配收入,並向礦工收取過高的手續費等過高的稅款和雜稅。
⑸ 如何建立礦池
要在全網算力提升到了一定程度後,過低的獲取獎勵的概率,促使一些「bitcointalk」上的極客開發出一種可以將少量算力合並聯合運作的方法,使用這種方式建立網站。
在此機制中,不論個人礦工所能使用的運算力多寡,只要是透過加入礦池來參與挖礦活動,無論是否有成功挖掘出有效資料塊,皆可經由對礦池的貢獻來獲得少量比特幣獎勵,亦即多人合作挖礦,獲得的比特幣獎勵也由多人依照貢獻度分享。
截止2019年1月,全球算力排名前五的比特幣礦池有:BTC.com 、Poolin、AntPool、slush pool、、F2Pool,目前全球約70%的算力在中國礦工手中。
(5)搭建礦池win7擴展閱讀:
手續費:
比特幣礦工會對大部分交易收取少量費用,其主要目的是防止有人大量發送無聊的小額交易,浪費網路資源。當前每筆交易的手續費大部分是฿ 0.0001/KB(0.0001btc/KB),實際上0.9.0以後的版本將默認手續費降為฿ 0.00001/KB(0.00001 btc/KB)。
因為大部分交易佔用的數據量都小於1千位元組,所以一般情況下฿ 0.00001(0.00001 btc/KB)的手續費就足夠了。同時,在將來比特幣區塊獎勵較少時,手續費將成為礦工收入的主要來源,比特幣的手續費會與該交易佔用的位元組數相關。
目前比特幣系統中手續費的計算標准並非強制性的,因此使用者也可以在交易進行時不給予任何手續費;
但大多數礦工在組建資料塊時通常會優先考慮帶有較高手續費的交易,以便在挖礦成功時能獲得較高的報酬,因此無附帶任何手續費的交易,可能會需要等待較長的時間才能被處理並納入區塊鏈中。
此外,現在因為區塊容量上限1MB以及近期比特幣交易量大增的因素,手續費大幅上漲,而且等待交易被確認的時間也變長了許多。
⑹ 什麼是礦池 礦場
比特幣也是「挖」出來的,只不過它是由計算機我們一般稱之為「礦機」)在虛擬網路世界中開采出來的。所以,要挖幣,同樣需要選擇一片合適的區域,搭建起廠房,把成百上千台礦機連接起來一起挖礦,這就是礦場。
一個礦場的成本包括建設成本、設備成本、維護成本、網路成本等。其中維護成本包括電力成本和人力成本,這也是我們會把礦場選建在電費相對比較便宜的地方的原因。一台比特幣礦機的回本周期,和政策、技術、幣價、算力、維護狀況等多種因素有關,一般需要200-300天回本。但隨著市場波動,回本周期也會變化。
說完礦場,我們來說說礦池。由於現在挖礦的人越來越多,加入的礦機和礦場也起來越多、總算力越來越大。這種情況下,單個礦機挖到比特幣的概率越來越小。於是,人們想出了個辦法、既然礦機單槍匹馬不行,那我們把礦機聯合起來去和全球其他礦機競爭——這種礦機算力的集合就是所謂的礦池。這樣就能大大增加挖到礦的概率,挖到比特幣後,再根據每台礦機對總算力的貢獻,給予其相應的獎勵。
礦池的概念比礦場抽象。礦池可以是若干礦機的集合,也可以是若干礦場中礦機算力的集合。比如談到現實中一個在中國的礦池,接入這個礦池的礦機既有中國礦機,也有來自國外的礦機,不分區域、大家按勞分配。
⑺ 64位WIN7 系統,對挖礦有不同影響嗎
影響不大,但是會讓你識別更大的內存,讓你的軟體跑起來壓力更小。
MinerHub 公司旗下的奇跡摩爾系統(Wondermole)是一款基於Linux 內核,為礦工朋友們深度定製的「無盤」挖礦系統;
全方位解決問題
1、奇跡摩爾的 Linux 內核經過兩百多次深度優化,避免了部分硬體故障會直接導致系統死機這一問題;
2、針對市面上許多挖礦軟體重啟後無法連接礦池挖礦的情況,奇跡摩爾利用每次礦機重啟後重置鏡像的功能完美解決;
3、經測試,奇跡摩爾系統在各大礦池的平均算力誤差和延遲份額均不超過 1.5%,明顯提升了用戶的挖礦收益;
4、奇跡摩爾開發團隊經過無數次實驗,得出了最優化的顯卡 VBIOS 超頻設置,較傳統超頻手段,在進一步提升顯卡 5% 算力的同時,還可降低 15% 的功耗!