Mining-Profitability
一個典型的礦工多久刷新一次他們的候選區塊?
我意識到這是一個沒有“正確”答案的普遍問題,因為每個礦工都可以以不同的方式操作。
話雖如此,我希望能夠顯示一個交易列表,這些交易將被認為是**記憶體池中準備被探勘的交易的公平表示。
到目前為止,我一直:
- 用於
getblocktemplate
獲取交易列表。- 新區塊到達時刷新列表,或每隔1 分鐘刷新一次。
使用
getblocktemplate
似乎是合乎邏輯的,因為我想大多數礦工都希望從他們的區塊中獲得盡可能多的費用。然後我猜測礦工會希望以特定的時間間隔刷新他們的候選區塊,以檢查記憶體池中費用較高的交易。
礦工是否會傾向於比每分鐘更多(或更少)刷新他們的候選區塊?
有幾個因素在起作用,其中之一是 Stratum 協議在許多礦工上的底層實現。由於它們的實現方式,如果許多礦工在 30 秒內沒有看到任何更新,他們將斷開與他們的礦池的連接,因此大多數礦池將以此頻率推送工作更新。
最佳情況下,礦池將根據區塊獎勵而不是固定計時器來更新他們的工作。如果他們模板中的費用金額沒有移動,那麼他們推送新作品並不是最佳選擇,但如果它增加了可觀的貨幣價值,那麼無論最近一次更新有多近,他們都最好推送新作品。
從歷史上看,重新啟動工作需要很長時間,但現代 ASIC 往往需要數百毫秒來改變他們正在執行的工作,而像 HashFast 這樣的老礦工可能需要幾十秒。
是的,對於挖礦軟體來說,獲取 getblocktemplate 就足夠了。像 bfgminers 這樣的軟體使用 longpoll 來做到這一點,所以軟體總是最新的。如果您在 bfgminer 上禁用 longpoll,您可以為 getblocktemplate API 設置刷新率。
不要認為 BFGminer 不會每 5 秒輪詢一次 bitcoind RPC,儘管您設置的刷新率較低。