比特幣最近幾年非常火爆。發(fā)明者中本聰設計了一個特定的算法用于生成(發(fā)行)比特幣,讓各位玩家(礦工)用自己的CPU、顯卡,或者更加專業(yè)的礦機,通過無聊的并行計算算出比特幣的特定密碼(挖礦)。為了保證全網(wǎng)比特幣按照特定的發(fā)行速度遞增,并最終無限趨近于上限2100萬枚,挖礦難度會根據(jù)全網(wǎng)算力進行動態(tài)調(diào)整。由于進場人數(shù)急劇增加,誰的算力大,誰挖到比特幣的幾率就高,因此這是一個類似于“軍備競賽”的過程。前期硬件投入,加上巨大的電力消耗,回本機會往往非常渺茫,更重要的是,全網(wǎng)如此巨大的計算力白白地消耗在毫無意義的運算中。從比特幣衍生出的各類山寨幣,其運作機制完全相同,同樣在無畏地消耗著大量算力。
其中一個方案在最底層實現(xiàn)。由于各個礦機的平臺不盡相同,使用者將自己要提交的代碼,分解優(yōu)化為一系列可重入的代碼塊(可以是函數(shù)),這些代碼塊之間除了數(shù)據(jù)傳遞,邏輯上是相互獨立的,并且是有嚴格的先后線性順序的,可并行安排。將這些代碼按照某一平臺進行編譯,添加平臺標記、順序號,生成一系列代碼段,并將這些binary提交到整個計算網(wǎng)絡。相同平臺的礦機(X86,ARM,SPARC,MOTO....)自動加載計算并返回結(jié)果給代碼提交者。
顯然,并行的計算,且每一個并行分支含有極高次迭代的循環(huán)結(jié)構(gòu),利用率是最好的。因此使用者設計代碼時要盡量符合這樣的標準。
從更高層次考慮,結(jié)構(gòu)化程序理論表明,任何過程式語言都可以通過順序、分支、循環(huán)三種基本結(jié)構(gòu)進行組合。考慮將編程的基本單位,從語句提升為“算元”。經(jīng)過精心挑選的基本算元(甚至可以是更高層的算法庫)已安裝在礦機中,使用者只需將運算過程(重復率很高的)按照一定的格式提交到全網(wǎng),由網(wǎng)絡自動分配算力,即可實現(xiàn)高效的利用。當然,這需要開發(fā)一種新的腳本語言。
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
