今天,HashFast公司聲明了他們正在開源他們用于控制比特币挖掘的專用內建電路的接口協定。這個設計的開源可以讓大家很好的了解他們的比特币挖礦子產品是怎麼操作的,并且還将給驅動開發人員提供一個平台。更多使用者在驅動開發方面的合作可以帶來更加豐富的選擇項設定,和給HashFast使用者們帶來更好的使用者體驗。
在7月份,HashFast宣布了他們将與Uniquify 合作來設計400GH/s的 “Golden Nonce”專用內建電路。在9月5日,他們聲稱台灣的一個半導體公司将開發他們的晶片。為了讓驅動開發人員為11月中旬的晶片投放做準備,HashFast給出了一個84頁的文檔來闡述這個專用內建電路如何使用和接口協定設計的細節。此外,Avalon 在四月份釋出的一個關于他們晶片通信規格的類似開源描述,引發了許許多多的合作項目。
HashFast批量發貨
在九月初,HashFast的Batch 1 ASICs結束預定,估計速度為225TH/s,價格$3M(400GH/s的563 Baby Jets售價為$5,600)。随着這個月早些時候KNC的出貨,HashFast估計也會進軍28nm ASIC市場。盡管有報道反映
KNC的電容爆炸問題,并且礦工并沒有達到他們聲稱的速度, 但大部分的KNC第一批出貨都交到了客戶手中。
HashFast公布了他們第一批貨的
訂貨量。從中可以看出,在563 Baby Jets的第一批訂單中,有157個特殊定制,在所有訂單中占了大多數。這群銷售的客戶形成了一個群體,願意協助有關HashFast挖礦機的軟硬體開發。HashFast的第二、三批出貨比第一批要大得多,預計12月到貨。第二批預定已經截止,并且将在第一批後幾周發貨。
随着HashFast将他們的協定開源,在第一批發貨的幾周時間内,可能會形成一個高階驅動開發社群。主管市場和銷售的HashFast副總裁John Skrodenis表示:“在三批發貨中,客戶增加了350人。”很明顯,穩健的軟體有着很大的客戶群。
ASIC挖礦
ASIC(專用內建電路)是為特殊目的設計的晶片。在比特币挖礦中,它被用于計算産生新礦區的double-SHA256。HashFast ASIC有四個子產品,每個包含96個核心,也就是說每個晶片上有384個核心。設計一個穩健的接口協定是非常複雜的,因為要確定所有這些核心都按照一個确定的順序工作,并在得到有效值時高效地回報。
為了在礦池中挖礦,需要利用比特币礦區的block header進行計算。比特币使用公式
SHA256(SHA256(Block_Header))
,SHA256是一個傳回256位Hash值的Hash算法,例如00000000000000001e8d6829a8a21adc5d38d0a473b144b6765798e61f98bd1d。

用于計算的Block header資訊
主要的困難在于需要值前面的0,0越多計算起來越困難。為了在繼續尋找新的Hash值時保持原來的block header,一個"nonce"被用于備份。在計算新的Hash值時不斷在"nonce"中備份,這樣就可以在不破壞原有block header資訊的前提下繼續計算新的Hash值。當一個有效的Hash值被找到時,它會與block header一起釋出,還有與之相關的交易資訊。
Hash計算操作
HashFast的開源協定已經提供了驅動ASIC的Hash計算的操作。通過一台主機的CPU發出的操作來控制核心。HashFast從主機的CPU中,通過操作總線(資料鍊路)提供了例如配置時鐘頻率(OP_PLL_CONFIG的操作)的核心指令,重新開機核心(OP_RESET),并提供hash計算的工作資訊,來提供每個資訊核心。
Hash算法指令是在晶片設計中最重要的方面。在HashFast的設計中,如果當核心在進行Hash計算的時候接收到OP_HASH的指令,它會被存儲到一個輸入的隊列中去。這會允許核心在找到合适的Hash之後進行持續的工作。每個OP_HASH的操作也包含了唯一一個的序列号,友善以後檢索Hash的相關資訊。
當發現Hash難以滿足OP_HASH操作的需求,hash的核心會傳回所使用的随機數和OP_HASH的序列号。然後主機可以通過查找序列号來找到block header的資訊,無需頻繁地再去請求和傳回。
USB協定
實際上,所有這些操作都是由HashFast的開源USB通信協定控制的。在他們的USB協定内有更進階的協定,叫做全局工作隊列(Global Work Queue,GWQ)。GWQ允許開發者在抽象層控制ASIC核心的操作,允許上面描述的内部低級工作細節。提供給驅動開發者的任務目标輸出配置在需要的CPU電源上,使最普通的CPU能控制大規模系統。
CGMiner是一個開源的比特币挖掘驅動,支援大多數GPU、FPGA和ASIC礦工。Adrian Port,HashFast重要的ASIC工程師之一,已經和CGMiner組一起開發實作HashFast的協定。他們在開發GWQ接口時,内部使用CGMiner驅動。
和HashFast文檔一起發行的,也有它們使用的頭檔案。幾天内,他們期望釋出在github上開發的CGMiner驅動作為未來開發者的一個例子。Adrian說,“我們希望可以在可預見的未來,在幾代ASIC上使用這個協定。如果需要添加,協定是可以擴充的。”對應的,在HashFast的協定上花費的任何設計工作都應該可以在幾代産品上使用。