欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

挖礦業(yè)務(wù)處理方法、裝置和系統(tǒng)與流程

文檔序號(hào):11133738閱讀:444來(lái)源:國(guó)知局
挖礦業(yè)務(wù)處理方法、裝置和系統(tǒng)與制造工藝

本發(fā)明屬于數(shù)據(jù)處理領(lǐng)域,特別是涉及一種挖礦業(yè)務(wù)處理方法、裝置和系統(tǒng)。



背景技術(shù):

比特幣(Bit Coin)是一種分布式的虛擬貨幣,它可以通過(guò)“挖礦”來(lái)生成新的比特幣。所謂“挖礦”實(shí)質(zhì)上就是利用計(jì)算機(jī)解決一項(xiàng)復(fù)雜的數(shù)學(xué)問(wèn)題,來(lái)保證比特幣分布式記賬系統(tǒng)的一致性。網(wǎng)絡(luò)會(huì)自動(dòng)調(diào)整數(shù)學(xué)問(wèn)題的難度,讓整個(gè)網(wǎng)絡(luò)約每10分鐘得到一個(gè)合格的答案。隨后會(huì)新生成一定量的比特幣作為賞金,獎(jiǎng)勵(lì)獲得答案的人。

云計(jì)算(Cloud Computing)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過(guò)互聯(lián)網(wǎng)來(lái)提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。云計(jì)算是通過(guò)網(wǎng)絡(luò)提供可伸縮的廉價(jià)的分布式計(jì)算能力。將云計(jì)算技術(shù)與比特幣結(jié)合就產(chǎn)生了云計(jì)算礦池,也稱為云礦池。

云礦池通過(guò)向礦機(jī)下發(fā)工作任務(wù)(job)通知礦機(jī)進(jìn)行“挖礦”,隨著越來(lái)越多礦工的加入,挖礦業(yè)務(wù)的競(jìng)爭(zhēng)日益激烈,對(duì)礦機(jī)運(yùn)算能力(也稱為算力)的需求也不斷提升。

目前,在云礦池向礦機(jī)下發(fā)工作任務(wù)后,礦機(jī)通過(guò)中央控制單元(CPU)進(jìn)行運(yùn)算產(chǎn)生工作數(shù)據(jù)(work),發(fā)送給算力板,同時(shí)CPU接收算力板返回的輸出結(jié)果數(shù)據(jù)(gd nonce),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),將符合預(yù)設(shè)難度值的輸出結(jié)果數(shù)據(jù)返回云礦池,完成“挖礦”。其中,工作數(shù)據(jù)的產(chǎn)生與輸出結(jié)果數(shù)據(jù)的校驗(yàn)均由于礦機(jī)的控制單元進(jìn)行,使礦機(jī)的算力受到了一定程度的制約。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例要解決的一個(gè)技術(shù)問(wèn)題是:提供一種挖礦業(yè)務(wù)處理方法、裝置和系統(tǒng),以提升礦機(jī)的算力。

根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供一種挖礦業(yè)務(wù)處理方法,包括:

控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;

所述運(yùn)算單元根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);其中,所述運(yùn)算單元在根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)所述中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),所述工作數(shù)據(jù)包括所述中間結(jié)果數(shù)據(jù);

所述運(yùn)算單元接收算力板對(duì)所述工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ);

所述控制單元每獲取一個(gè)所述中間結(jié)果數(shù)據(jù),保持所述中間結(jié)果數(shù)據(jù)不變,獲取所述輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的所述輸出結(jié)果數(shù)據(jù)。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述哈希運(yùn)算采用Sha256算法。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述工作任務(wù)中的數(shù)據(jù)包括:獎(jiǎng)勵(lì)數(shù)據(jù)和交易數(shù)據(jù)。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述運(yùn)算單元根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù)包括:

根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第一哈希值;

根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值;

判斷當(dāng)前的交易數(shù)據(jù)是否為最后一個(gè)交易數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)為最后一個(gè)交易數(shù)據(jù),以所述第二哈希值作為交易根,根據(jù)所述交易根進(jìn)行哈希運(yùn)算,獲得一個(gè)中間結(jié)果數(shù)據(jù);

根據(jù)所述中間結(jié)果數(shù)據(jù),生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)不為最后一個(gè)交易數(shù)據(jù),以下一個(gè)交易數(shù)據(jù)作為當(dāng)前的交易數(shù)據(jù),執(zhí)行所述根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值的操作。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述獲得第一哈希值包括:

根據(jù)所述獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第三哈希值;

根據(jù)所述第三哈希值與預(yù)設(shè)的第一數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第一哈希值。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述獲得第二哈希值包括:

根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第四哈希值;

根據(jù)所述第四哈希值與預(yù)設(shè)的第二數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第二哈希值。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算之前還包括:

將所述獎(jiǎng)勵(lì)數(shù)據(jù)擴(kuò)展為滿足Sha256算法要求的數(shù)據(jù)。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述運(yùn)算單元向算力板發(fā)送工作數(shù)據(jù)包括:

所述運(yùn)算單元向算力板每發(fā)送一個(gè)工作數(shù)據(jù),生成一個(gè)表示所述工作數(shù)據(jù)次序的工作ID;

對(duì)所述工作ID進(jìn)行存儲(chǔ),并根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址;

將所述工作數(shù)據(jù)對(duì)應(yīng)的中間結(jié)果數(shù)據(jù)存儲(chǔ)于所述存儲(chǔ)地址。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述控制單元獲取一個(gè)所述中間結(jié)果數(shù)據(jù)包括:所述運(yùn)算單元接收算力板返回的初始輸出結(jié)果數(shù)據(jù),對(duì)所述初始輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),并向所述控制單元返回一個(gè)工作ID;

所述控制單元根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址,從所述存儲(chǔ)地址中獲取一個(gè)所述中間結(jié)果數(shù)據(jù)。

在基于本發(fā)明上述方法的另一個(gè)實(shí)施例中,所述控制單元對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn)包括:

所述控制單元檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果大于或等于預(yù)設(shè)的難度值,將所述當(dāng)前的輸出結(jié)果數(shù)據(jù)返回所述礦池;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果小于預(yù)設(shè)的難度值,獲取下一個(gè)輸出結(jié)果數(shù)據(jù)作為當(dāng)前的輸出結(jié)果數(shù)據(jù),執(zhí)行所述檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值的操作。

根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供一種挖礦業(yè)務(wù)處理裝置,包括:

控制單元,用于將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;以及每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持所述中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的所述輸出結(jié)果數(shù)據(jù);

運(yùn)算單元,用于根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);其中,所述運(yùn)算單元在根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)所述中間結(jié)果數(shù)據(jù),并對(duì)所述中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),所述工作數(shù)據(jù)包括所述中間結(jié)果數(shù)據(jù);以及接收算力板對(duì)所述工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的所述輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ)。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述哈希運(yùn)算采用Sha256算法。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述工作任務(wù)中的數(shù)據(jù)包括:獎(jiǎng)勵(lì)數(shù)據(jù)和交易數(shù)據(jù)。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述運(yùn)算單元,具體用于:

根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第一哈希值;

根據(jù)所述第一哈希值與當(dāng)前交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值;

判斷當(dāng)前交易數(shù)據(jù)是否為最后一個(gè)交易數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)為最后一個(gè)交易數(shù)據(jù),以所述第二哈希值作為交易根,根據(jù)所述交易根進(jìn)行哈希運(yùn)算,獲得一個(gè)中間結(jié)果數(shù)據(jù);

根據(jù)所述中間結(jié)果數(shù)據(jù),生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)不為最后一個(gè)交易數(shù)據(jù),以下一個(gè)交易數(shù)據(jù)作為當(dāng)前的交易數(shù)據(jù),執(zhí)行所述根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值的操作。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述運(yùn)算單元,具體用于:

根據(jù)所述獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第三哈希值;

根據(jù)所述第三哈希值與預(yù)設(shè)的第一數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第一哈希值。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述運(yùn)算單元,具體用于:

根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第四哈希值;

根據(jù)所述第四哈希值與預(yù)設(shè)的第二數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第二哈希值。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述運(yùn)算單元,還用于將所述獎(jiǎng)勵(lì)數(shù)據(jù)擴(kuò)展為滿足Sha256算法要求的數(shù)據(jù)。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述運(yùn)算單元,具體用于:

向算力板每發(fā)送一個(gè)工作數(shù)據(jù),生成一個(gè)表示所述工作數(shù)據(jù)次序的工作ID;

對(duì)所述工作ID進(jìn)行存儲(chǔ),并根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址;

將所述工作數(shù)據(jù)對(duì)應(yīng)的中間結(jié)果數(shù)據(jù)存儲(chǔ)于所述存儲(chǔ)地址。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述運(yùn)算單元,具體用于接收算力板返回的初始輸出結(jié)果數(shù)據(jù),對(duì)所述初始輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),并向所述控制單元返回一個(gè)工作ID;

所述控制單元,具體用于根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址,從所述存儲(chǔ)地址中獲取一個(gè)所述中間結(jié)果數(shù)據(jù)。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述控制單元,具體用于:

檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果大于或等于預(yù)設(shè)的難度值,將所述當(dāng)前的輸出結(jié)果數(shù)據(jù)返回所述礦池;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果小于預(yù)設(shè)的難度值,獲取下一個(gè)輸出結(jié)果數(shù)據(jù)作為當(dāng)前的輸出結(jié)果數(shù)據(jù),執(zhí)行所述檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值的操作。

在基于本發(fā)明上述裝置的另一個(gè)實(shí)施例中,所述運(yùn)算單元包括:現(xiàn)場(chǎng)可編程門陣列FPGA;所述控制單元包括:中央處理單元CPU。

根據(jù)本發(fā)明實(shí)施例的又一個(gè)方面,提供一種挖礦業(yè)務(wù)處理系統(tǒng),包括:上述任意一項(xiàng)所述的挖礦業(yè)務(wù)處理裝置。

基于本發(fā)明實(shí)施例提供的挖礦業(yè)務(wù)處理方法、裝置和系統(tǒng),控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;運(yùn)算單元根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù);其中,運(yùn)算單元在根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),工作數(shù)據(jù)包括中間結(jié)果數(shù)據(jù);運(yùn)算單元接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ);控制單元每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。本發(fā)明實(shí)施例通過(guò)運(yùn)算單元不斷地接收工作任務(wù)中的數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生工作數(shù)據(jù),向算力板發(fā)送工作數(shù)據(jù),同時(shí),通過(guò)控制單元在每一個(gè)中間結(jié)果數(shù)據(jù)保持不變時(shí),不斷地對(duì)算力板返回的輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),分工協(xié)作,可以提升礦機(jī)的算力,使礦機(jī)滿足不斷提升的算力需求,以適應(yīng)挖礦業(yè)務(wù)日益激烈的競(jìng)爭(zhēng)。

附圖說(shuō)明

構(gòu)成說(shuō)明書的一部分的附圖描述了本發(fā)明的實(shí)施例,并且連同描述一起用于解釋本發(fā)明的原理。

參照附圖,根據(jù)下面的詳細(xì)描述,可以更加清楚地理解本發(fā)明,其中:

圖1為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理方法一個(gè)實(shí)施例的流程圖。

圖2為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理方法另一個(gè)實(shí)施例的流程圖。

圖3為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理方法又一個(gè)實(shí)施例的流程圖。

圖4為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理裝置的一個(gè)實(shí)施例的結(jié)構(gòu)圖。

圖5為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)圖。

具體實(shí)施方式

現(xiàn)在將參照附圖來(lái)詳細(xì)描述本發(fā)明的各種示例性實(shí)施例。應(yīng)注意到:除非另外具體說(shuō)明,否則在這些實(shí)施例中闡述的部件的相對(duì)布置、數(shù)字表達(dá)式和數(shù)值不限制本發(fā)明的范圍。

同時(shí),應(yīng)當(dāng)明白,為了便于描述,附圖中所示出的各個(gè)部分的尺寸并不是按照實(shí)際的比例關(guān)系繪制的。

以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說(shuō)明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。

對(duì)于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細(xì)討論,但在適當(dāng)情況下,所述技術(shù)、方法和設(shè)備應(yīng)當(dāng)被視為說(shuō)明書的一部分。

應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步討論。

圖1為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理方法一個(gè)實(shí)施例的流程圖。如圖1所示,該實(shí)施例的挖礦業(yè)務(wù)處理方法包括:

102,控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元。

具體實(shí)現(xiàn)中,哈希運(yùn)算采用Sha256算法,Sha256算法的哈希值大小為256bit。Sha256算法是安全散列算法(Secure Hash Algorithm,SHA)系列算法的一種,SHA是美國(guó)國(guó)家安全局設(shè)計(jì),美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院發(fā)布的,主要適用于數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard,DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm,DSA)。

104,運(yùn)算單元根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù);其中,運(yùn)算單元在根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),工作數(shù)據(jù)包括中間結(jié)果數(shù)據(jù)。

106,運(yùn)算單元接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ)。

108,控制單元每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。

在實(shí)際應(yīng)用中,上述操作102和108可以通過(guò)中央控制單元CPU實(shí)現(xiàn),即控制單元可以采用CPU,上述操作104和106可以通過(guò)現(xiàn)場(chǎng)可編程門陣列FPGA實(shí)現(xiàn),即運(yùn)算單元可以采用FPGA。例如:CPU采用微處理器MPU,F(xiàn)PGA與MPU通過(guò)AXI接口連接,F(xiàn)PGA與算力板通過(guò)UART連接,其中根據(jù)需要FPGA可以與多塊算力板連接。

由于FPGA以并行運(yùn)算為主,因此FPGA相比于CPU可以同時(shí)處理512bit的數(shù)據(jù),而不需要將512bit的數(shù)據(jù)分割成多個(gè)64bit的數(shù)據(jù)分別進(jìn)行處理,處理速度更快,可以實(shí)現(xiàn)對(duì)礦機(jī)的加速。

基于本發(fā)明實(shí)施例提供的挖礦業(yè)務(wù)處理方法,控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;運(yùn)算單元根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù);其中,運(yùn)算單元在根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),工作數(shù)據(jù)包括中間結(jié)果數(shù)據(jù);運(yùn)算單元接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ);控制單元每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。本發(fā)明實(shí)施例通過(guò)運(yùn)算單元不斷地接收工作任務(wù)中的數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生工作數(shù)據(jù),向算力板發(fā)送工作數(shù)據(jù),同時(shí),通過(guò)控制單元在每一個(gè)中間結(jié)果數(shù)據(jù)保持不變時(shí),不斷地對(duì)算力板返回的輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),分工協(xié)作,可以提升礦機(jī)的算力,使礦機(jī)滿足不斷提升的算力需求,以適應(yīng)挖礦業(yè)務(wù)日益激烈的競(jìng)爭(zhēng)。

圖2為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理方法另一個(gè)實(shí)施例的流程圖。如圖2所示,該實(shí)施例的挖礦業(yè)務(wù)處理方法包括:

202,控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;其中,工作任務(wù)中的數(shù)據(jù)包括:獎(jiǎng)勵(lì)數(shù)據(jù)coinbase和交易數(shù)據(jù)merkle bin。

204,運(yùn)算單元根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第一哈希值。

具體實(shí)現(xiàn)中,由于獎(jiǎng)勵(lì)數(shù)據(jù)通常不符合Sha256算法的要求,因此在操作204之前還可以包括:將獎(jiǎng)勵(lì)數(shù)據(jù)擴(kuò)展為滿足Sha256算法要求的數(shù)據(jù)的操作。

206,運(yùn)算單元根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值。

具體實(shí)現(xiàn)中,對(duì)于操作204,可以根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算,獲得第一哈希值;同樣地,對(duì)于操作206,可以根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算,獲得第二哈希值。

具體地,操作204包括:根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第三哈希值;根據(jù)第三哈希值與預(yù)設(shè)的第一數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得第一哈希值。

具體地,操作206包括:根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第四哈希值;根據(jù)第四哈希值與預(yù)設(shè)的第二數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得第二哈希值。

其中,操作204與操作206中的第一數(shù)據(jù)與第二數(shù)據(jù)不同,第一數(shù)據(jù)與第二數(shù)據(jù)至少為256bit。

208,運(yùn)算單元判斷當(dāng)前的交易數(shù)據(jù)是否為最后一個(gè)交易數(shù)據(jù)。

若當(dāng)前的交易數(shù)據(jù)為最后一個(gè)交易數(shù)據(jù),以第二哈希值作為交易根,執(zhí)行操作210;否則,若當(dāng)前的交易數(shù)據(jù)不為最后一個(gè)交易數(shù)據(jù),以下一個(gè)交易數(shù)據(jù)作為當(dāng)前的交易數(shù)據(jù),執(zhí)行操作206。

210,運(yùn)算單元根據(jù)交易根進(jìn)行哈希運(yùn)算,獲得一個(gè)中間結(jié)果數(shù)據(jù)。

212,運(yùn)算單元根據(jù)中間結(jié)果數(shù)據(jù),生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù)。

214,運(yùn)算單元接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ)。

216,控制單元每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。

基于本發(fā)明實(shí)施例提供的挖礦業(yè)務(wù)處理方法,通過(guò)采用兩次哈希運(yùn)算,可以增加工作量,增加破解的難度。

圖3為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理方法又一個(gè)實(shí)施例的流程圖。如圖3所示,該實(shí)施例的挖礦業(yè)務(wù)處理方法包括:

302,控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;其中,工作任務(wù)中的數(shù)據(jù)包括:獎(jiǎng)勵(lì)數(shù)據(jù)coinbase和交易數(shù)據(jù)merkle bin。

304,運(yùn)算單元根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第一哈希值。

具體實(shí)現(xiàn)中,由于獎(jiǎng)勵(lì)數(shù)據(jù)通常不符合Sha256算法的要求,因此在操作204之前還可以包括:將獎(jiǎng)勵(lì)數(shù)據(jù)擴(kuò)展為滿足Sha256算法要求的數(shù)據(jù)的操作。

306,運(yùn)算單元根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值。

具體實(shí)現(xiàn)中,對(duì)于操作304,可以根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算,獲得第一哈希值;同樣地,對(duì)于操作306,可以根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算,獲得第二哈希值。

308,運(yùn)算單元判斷當(dāng)前的交易數(shù)據(jù)是否為最后一個(gè)交易數(shù)據(jù)。

若當(dāng)前的交易數(shù)據(jù)為最后一個(gè)交易數(shù)據(jù),以第二哈希值作為交易根,執(zhí)行操作310;否則,若當(dāng)前的交易數(shù)據(jù)不為最后一個(gè)交易數(shù)據(jù),以下一個(gè)交易數(shù)據(jù)作為當(dāng)前的交易數(shù)據(jù),執(zhí)行操作306。

310,運(yùn)算單元根據(jù)交易根進(jìn)行哈希運(yùn)算,獲得一個(gè)中間結(jié)果數(shù)據(jù)。

312,運(yùn)算單元根據(jù)中間結(jié)果數(shù)據(jù),生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù)。

314,運(yùn)算單元向算力板每發(fā)送一個(gè)工作數(shù)據(jù),生成一個(gè)表示工作數(shù)據(jù)次序的工作ID(work ID)。

具體實(shí)現(xiàn)中,工作ID可以由計(jì)數(shù)器生成,例如工作ID為1、2、3、4、5等。

316,運(yùn)算單元對(duì)工作ID進(jìn)行存儲(chǔ);并根據(jù)工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址。

具體實(shí)現(xiàn)中,工作ID存儲(chǔ)于符合先進(jìn)先出原則的存儲(chǔ)隊(duì)列中,根據(jù)工作ID計(jì)算的存儲(chǔ)地址=起始地址+work ID*Number,其中Number表示所要存儲(chǔ)的數(shù)據(jù)占用的內(nèi)存大小。

318,運(yùn)算單元將工作數(shù)據(jù)對(duì)應(yīng)的中間結(jié)果數(shù)據(jù)存儲(chǔ)于存儲(chǔ)地址。

具體實(shí)現(xiàn)中,中間結(jié)果數(shù)據(jù)占用的內(nèi)存大小為64byte,則根據(jù)工作ID計(jì)算的存儲(chǔ)地址=起始地址+work ID*64byte。例如,將中間結(jié)果數(shù)據(jù)雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器存儲(chǔ)于(Double Data Rate,DDR)內(nèi)。

320,運(yùn)算單元接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ)。

具體實(shí)現(xiàn)中,隨機(jī)數(shù)據(jù)為一個(gè)32bit的整數(shù)。

322,控制單元每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。

具體實(shí)現(xiàn)中,控制單元獲取一個(gè)中間結(jié)果數(shù)據(jù)可以包括:運(yùn)算單元接收算力板返回的初始輸出結(jié)果數(shù)據(jù),對(duì)初始輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),并向控制單元返回一個(gè)工作ID;控制單元根據(jù)工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址,從存儲(chǔ)地址中獲取一個(gè)中間結(jié)果數(shù)據(jù)。

具體實(shí)現(xiàn)中,控制單元對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn)可以包括:控制單元檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值;若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果大于或等于預(yù)設(shè)的難度值,將當(dāng)前的輸出結(jié)果數(shù)據(jù)返回礦池;若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果小于預(yù)設(shè)的難度值,獲取下一個(gè)輸出結(jié)果數(shù)據(jù)作為當(dāng)前的輸出結(jié)果數(shù)據(jù),執(zhí)行檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值的操作。

其中,輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算采用Sha256算法,具體地,輸出結(jié)果數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算。

基于本發(fā)明實(shí)施例提供的提升挖礦業(yè)務(wù)算力的方法,輸出結(jié)果數(shù)據(jù)的校驗(yàn)過(guò)程采用兩次哈希運(yùn)算獲取滿足難度目標(biāo)的輸出結(jié)果數(shù)據(jù),其工作量證明是無(wú)數(shù)次哈希運(yùn)算窮舉并比對(duì)的過(guò)程。

圖4為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理裝置的一個(gè)實(shí)施例的結(jié)構(gòu)圖。如圖4所示,該實(shí)施例的挖礦業(yè)務(wù)處理裝置包括:控制單元和運(yùn)算單元。其中:

控制單元,用于將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;以及每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。

具體實(shí)現(xiàn)中,哈希運(yùn)算采用Sha256算法,Sha256算法的哈希值大小為256bit。Sha256算法是安全散列算法(Secure Hash Algorithm,SHA)系列算法的一種,SHA是美國(guó)國(guó)家安全局設(shè)計(jì),美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院發(fā)布的,主要適用于數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard,DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm,DSA)。

運(yùn)算單元,用于根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù);其中,運(yùn)算單元在根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),工作數(shù)據(jù)包括中間結(jié)果數(shù)據(jù);以及。接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ);

在實(shí)際應(yīng)用中,上述控制單元可以采用CPU,上述運(yùn)算單元可以采用FPGA。例如:CPU采用微處理器MPU,F(xiàn)PGA與MPU通過(guò)AXI接口連接,F(xiàn)PGA與算力板通過(guò)UART連接,其中根據(jù)需要FPGA可以與多塊算力板連接。

由于FPGA以并行運(yùn)算為主,因此FPGA相比于CPU可以同時(shí)處理512bit的數(shù)據(jù),而不需要將512bit的數(shù)據(jù)分割成多個(gè)64bit的數(shù)據(jù)分別進(jìn)行處理,處理速度更快,可以實(shí)現(xiàn)對(duì)礦機(jī)的加速。

基于本發(fā)明實(shí)施例提供的挖礦業(yè)務(wù)處理裝置,控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;運(yùn)算單元根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù);其中,運(yùn)算單元在根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),工作數(shù)據(jù)包括中間結(jié)果數(shù)據(jù);運(yùn)算單元接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ);控制單元每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。本發(fā)明實(shí)施例通過(guò)運(yùn)算單元不斷地接收工作任務(wù)中的數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生工作數(shù)據(jù),向算力板發(fā)送工作數(shù)據(jù),同時(shí),通過(guò)控制單元在每一個(gè)中間結(jié)果數(shù)據(jù)保持不變時(shí),不斷地對(duì)算力板返回的輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),分工協(xié)作,可以提升礦機(jī)的算力,使礦機(jī)滿足不斷提升的算力需求,以適應(yīng)挖礦業(yè)務(wù)日益激烈的競(jìng)爭(zhēng)。

在本發(fā)明的另一個(gè)實(shí)施例中,控制單元,具體用于將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;其中,工作任務(wù)中的數(shù)據(jù)包括:獎(jiǎng)勵(lì)數(shù)據(jù)coinbase和交易數(shù)據(jù)merkle bin。

運(yùn)算單元,具體用于根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第一哈希值;根據(jù)第一哈希值與當(dāng)前交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值;判斷當(dāng)前交易數(shù)據(jù)是否為最后一個(gè)交易數(shù)據(jù);若當(dāng)前的交易數(shù)據(jù)為最后一個(gè)交易數(shù)據(jù),以第二哈希值作為交易根,根據(jù)交易根進(jìn)行哈希運(yùn)算,獲得一個(gè)中間結(jié)果數(shù)據(jù);根據(jù)中間結(jié)果數(shù)據(jù),生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù);若當(dāng)前的交易數(shù)據(jù)不為最后一個(gè)交易數(shù)據(jù),以下一個(gè)交易數(shù)據(jù)作為當(dāng)前的交易數(shù)據(jù),執(zhí)行根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值的操作。

具體實(shí)現(xiàn)中,由于獎(jiǎng)勵(lì)數(shù)據(jù)通常不符合Sha256算法的要求,因此運(yùn)算單元,還用于將獎(jiǎng)勵(lì)數(shù)據(jù)擴(kuò)展為滿足Sha256算法要求的數(shù)據(jù)。

具體實(shí)現(xiàn)中,運(yùn)算單元,可以根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算,獲得第一哈希值;同樣地,可以根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算,獲得第二哈希值。

具體地,運(yùn)算單元,具體用于根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第三哈希值;根據(jù)第三哈希值與預(yù)設(shè)的第一數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得第一哈希值;以及根據(jù)第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第四哈希值;根據(jù)第四哈希值與預(yù)設(shè)的第二數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得第二哈希值。

其中,第一數(shù)據(jù)與第二數(shù)據(jù)不同,第一數(shù)據(jù)與第二數(shù)據(jù)至少為256bit。

基于本發(fā)明實(shí)施例提供的挖礦業(yè)務(wù)處理裝置,通過(guò)采用兩次哈希運(yùn)算,可以增加工作量,增加破解的難度。

在本發(fā)明的又一個(gè)實(shí)施例中,運(yùn)算單元,具體用于向算力板每發(fā)送一個(gè)工作數(shù)據(jù),生成一個(gè)表示所述工作數(shù)據(jù)次序的工作ID;對(duì)工作ID進(jìn)行存儲(chǔ),并根據(jù)工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址;將工作數(shù)據(jù)對(duì)應(yīng)的中間結(jié)果數(shù)據(jù)存儲(chǔ)于存儲(chǔ)地址。

具體實(shí)現(xiàn)中,工作ID可以由計(jì)數(shù)器生成,例如工作ID為1、2、3、4、5等。

具體實(shí)現(xiàn)中,工作ID存儲(chǔ)于符合先進(jìn)先出原則的存儲(chǔ)隊(duì)列中,根據(jù)工作ID計(jì)算的存儲(chǔ)地址=起始地址+work ID*Number,其中Number表示所要存儲(chǔ)的數(shù)據(jù)占用的內(nèi)存大小。

具體地,中間結(jié)果數(shù)據(jù)占用的內(nèi)存大小為64byte,則根據(jù)工作ID計(jì)算的存儲(chǔ)地址=起始地址+work ID*64byte。

運(yùn)算單元,還具體用于接收算力板返回的初始輸出結(jié)果數(shù)據(jù),對(duì)初始輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),并向控制單元返回一個(gè)工作ID。例如,將中間結(jié)果數(shù)據(jù)雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器存儲(chǔ)于(Double Data Rate,DDR)內(nèi)。具體實(shí)現(xiàn)中,隨機(jī)數(shù)據(jù)為一個(gè)32bit的整數(shù)。

控制單元,具體用于根據(jù)工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址,從存儲(chǔ)地址中獲取一個(gè)中間結(jié)果數(shù)據(jù)。

控制單元,具體用于檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值;若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果大于或等于預(yù)設(shè)的難度值,將當(dāng)前的輸出結(jié)果數(shù)據(jù)返回礦池;若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果小于預(yù)設(shè)的難度值,獲取下一個(gè)輸出結(jié)果數(shù)據(jù)作為當(dāng)前的輸出結(jié)果數(shù)據(jù),執(zhí)行檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值的操作。

其中,輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算采用Sha256算法,具體地,輸出結(jié)果數(shù)據(jù)進(jìn)行兩次哈希運(yùn)算。

基于本發(fā)明實(shí)施例提供的提升挖礦業(yè)務(wù)算力的方法,輸出結(jié)果數(shù)據(jù)的校驗(yàn)過(guò)程采用兩次哈希運(yùn)算獲取滿足難度目標(biāo)的輸出結(jié)果數(shù)據(jù),其工作量證明是無(wú)數(shù)次哈希運(yùn)算窮舉并比對(duì)的過(guò)程。

本發(fā)明實(shí)施例還提供了一種挖礦業(yè)務(wù)處理系統(tǒng),包括:上述任意一個(gè)實(shí)施例的挖礦業(yè)務(wù)處理裝置。

具體實(shí)現(xiàn)中,挖礦業(yè)務(wù)處理裝置集成于礦機(jī)中。

如圖5所示,圖5為本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)圖。該本發(fā)明實(shí)施例挖礦業(yè)務(wù)處理系統(tǒng)包括:礦機(jī)和云礦池,其中,在礦機(jī)中集成有挖礦業(yè)務(wù)處理裝置。

在實(shí)際應(yīng)用中,挖礦業(yè)務(wù)處理裝置中的控制單元可以采用CPU,挖礦業(yè)務(wù)處理裝置中的運(yùn)算單元可以采用FPGA。例如:CPU采用微處理器MPU,F(xiàn)PGA與MPU通過(guò)AXI接口連接,F(xiàn)PGA與算力板通過(guò)UART連接,其中根據(jù)需要FPGA可以與多塊算力板連接。

由于FPGA以并行運(yùn)算為主,因此FPGA相比于CPU可以同時(shí)處理512bit的數(shù)據(jù),而不需要將512bit的數(shù)據(jù)分割成多個(gè)64bit的數(shù)據(jù)分別進(jìn)行處理,處理速度更快,可以實(shí)現(xiàn)對(duì)礦機(jī)的加速。

基于本發(fā)明實(shí)施例提供的挖礦業(yè)務(wù)處理系統(tǒng),包括:上述任意一個(gè)實(shí)施例的提供的挖礦業(yè)務(wù)處理裝置,其中控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;運(yùn)算單元根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送工作數(shù)據(jù);其中,運(yùn)算單元在根據(jù)工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),工作數(shù)據(jù)包括中間結(jié)果數(shù)據(jù);運(yùn)算單元接收算力板對(duì)工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ);控制單元每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的輸出結(jié)果數(shù)據(jù)。本發(fā)明實(shí)施例通過(guò)運(yùn)算單元不斷地接收工作任務(wù)中的數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生工作數(shù)據(jù),向算力板發(fā)送工作數(shù)據(jù),同時(shí),通過(guò)控制單元在每一個(gè)中間結(jié)果數(shù)據(jù)保持不變時(shí),不斷地對(duì)算力板返回的輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),分工協(xié)作,可以提升礦機(jī)的算力,使礦機(jī)滿足不斷提升的算力需求,以適應(yīng)挖礦業(yè)務(wù)日益激烈的競(jìng)爭(zhēng)。

本發(fā)明可以采用以下方案實(shí)現(xiàn):

1、一種挖礦業(yè)務(wù)處理方法,包括:

控制單元將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;

所述運(yùn)算單元根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);其中,所述運(yùn)算單元在根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)中間結(jié)果數(shù)據(jù),并對(duì)所述中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),所述工作數(shù)據(jù)包括所述中間結(jié)果數(shù)據(jù);

所述運(yùn)算單元接收算力板對(duì)所述工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ);

所述控制單元每獲取一個(gè)所述中間結(jié)果數(shù)據(jù),保持所述中間結(jié)果數(shù)據(jù)不變,獲取所述輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的所述輸出結(jié)果數(shù)據(jù)。

2、根據(jù)1所述的方法,所述哈希運(yùn)算采用Sha256算法。

3、根據(jù)2所述的方法,所述工作任務(wù)中的數(shù)據(jù)包括:獎(jiǎng)勵(lì)數(shù)據(jù)和交易數(shù)據(jù)。

4、根據(jù)3所述的方法,所述運(yùn)算單元根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù)包括:

根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第一哈希值;

根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值;

判斷當(dāng)前的交易數(shù)據(jù)是否為最后一個(gè)交易數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)為最后一個(gè)交易數(shù)據(jù),以所述第二哈希值作為交易根,根據(jù)所述交易根進(jìn)行哈希運(yùn)算,獲得一個(gè)中間結(jié)果數(shù)據(jù);

根據(jù)所述中間結(jié)果數(shù)據(jù),生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)不為最后一個(gè)交易數(shù)據(jù),以下一個(gè)交易數(shù)據(jù)作為當(dāng)前的交易數(shù)據(jù),執(zhí)行所述根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值的操作。

5、根據(jù)4所述的方法,所述獲得第一哈希值包括:

根據(jù)所述獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第三哈希值;

根據(jù)所述第三哈希值與預(yù)設(shè)的第一數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第一哈希值。

6、根據(jù)4或5所述的方法,所述獲得第二哈希值包括:

根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第四哈希值;

根據(jù)所述第四哈希值與預(yù)設(shè)的第二數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第二哈希值。

7、根據(jù)4至6任意一項(xiàng)所述的方法,所述根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算之前還包括:

將所述獎(jiǎng)勵(lì)數(shù)據(jù)擴(kuò)展為滿足Sha256算法要求的數(shù)據(jù)。

8、根據(jù)1至7任意一項(xiàng)所述的方法,所述運(yùn)算單元向算力板發(fā)送工作數(shù)據(jù)包括:

所述運(yùn)算單元向算力板每發(fā)送一個(gè)工作數(shù)據(jù),生成一個(gè)表示所述工作數(shù)據(jù)次序的工作ID;

對(duì)所述工作ID進(jìn)行存儲(chǔ),并根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址;

將所述工作數(shù)據(jù)對(duì)應(yīng)的中間結(jié)果數(shù)據(jù)存儲(chǔ)于所述存儲(chǔ)地址。

9、根據(jù)8所述的方法,所述控制單元獲取一個(gè)所述中間結(jié)果數(shù)據(jù)包括:所述運(yùn)算單元接收算力板返回的初始輸出結(jié)果數(shù)據(jù),對(duì)所述初始輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),并向所述控制單元返回一個(gè)工作ID;

所述控制單元根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址,從所述存儲(chǔ)地址中獲取一個(gè)所述中間結(jié)果數(shù)據(jù)。

10、根據(jù)9所述的方法,所述控制單元對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn)包括:

所述控制單元檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果大于或等于預(yù)設(shè)的難度值,將所述當(dāng)前的輸出結(jié)果數(shù)據(jù)返回所述礦池;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果小于預(yù)設(shè)的難度值,獲取下一個(gè)輸出結(jié)果數(shù)據(jù)作為當(dāng)前的輸出結(jié)果數(shù)據(jù),執(zhí)行所述檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值的操作。

11、一種挖礦業(yè)務(wù)處理裝置,包括:

控制單元,用于將礦池下發(fā)的工作任務(wù)中的數(shù)據(jù)發(fā)送給運(yùn)算單元;以及每獲取一個(gè)中間結(jié)果數(shù)據(jù),保持所述中間結(jié)果數(shù)據(jù)不變,獲取輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行校驗(yàn),直至獲得符合預(yù)設(shè)條件的所述輸出結(jié)果數(shù)據(jù);

運(yùn)算單元,用于根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算,生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);其中,所述運(yùn)算單元在根據(jù)所述工作任務(wù)中的數(shù)據(jù)進(jìn)行哈希運(yùn)算的過(guò)程中,獲得一個(gè)所述中間結(jié)果數(shù)據(jù),并對(duì)所述中間結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),所述工作數(shù)據(jù)包括所述中間結(jié)果數(shù)據(jù);以及接收算力板對(duì)所述工作數(shù)據(jù)進(jìn)行運(yùn)算產(chǎn)生的所述輸出結(jié)果數(shù)據(jù),對(duì)所述輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ)。

12、根據(jù)11所述的裝置,所述哈希運(yùn)算采用Sha256算法。

13、根據(jù)12所述的裝置,所述工作任務(wù)中的數(shù)據(jù)包括:獎(jiǎng)勵(lì)數(shù)據(jù)和交易數(shù)據(jù)。

14、根據(jù)13所述的裝置,所述運(yùn)算單元,具體用于:

根據(jù)獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第一哈希值;

根據(jù)所述第一哈希值與當(dāng)前交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值;

判斷當(dāng)前交易數(shù)據(jù)是否為最后一個(gè)交易數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)為最后一個(gè)交易數(shù)據(jù),以所述第二哈希值作為交易根,根據(jù)所述交易根進(jìn)行哈希運(yùn)算,獲得一個(gè)中間結(jié)果數(shù)據(jù);

根據(jù)所述中間結(jié)果數(shù)據(jù),生成工作數(shù)據(jù),以向算力板發(fā)送所述工作數(shù)據(jù);

若當(dāng)前的交易數(shù)據(jù)不為最后一個(gè)交易數(shù)據(jù),以下一個(gè)交易數(shù)據(jù)作為當(dāng)前的交易數(shù)據(jù),執(zhí)行所述根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行哈希運(yùn)算,獲得第二哈希值的操作。

15、根據(jù)14所述的裝置,所述運(yùn)算單元,具體用于:

根據(jù)所述獎(jiǎng)勵(lì)數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第三哈希值;

根據(jù)所述第三哈希值與預(yù)設(shè)的第一數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第一哈希值。

16、根據(jù)14或15所述的裝置,所述運(yùn)算單元,具體用于:

根據(jù)所述第一哈希值與當(dāng)前的交易數(shù)據(jù)進(jìn)行第一次哈希運(yùn)算,獲得第四哈希值;

根據(jù)所述第四哈希值與預(yù)設(shè)的第二數(shù)據(jù)進(jìn)行第二次哈希運(yùn)算,獲得所述第二哈希值。

17、根據(jù)14至16任意一項(xiàng)所述的裝置,所述運(yùn)算單元,還用于將所述獎(jiǎng)勵(lì)數(shù)據(jù)擴(kuò)展為滿足Sha256算法要求的數(shù)據(jù)。

18、根據(jù)11至17任意一項(xiàng)所述的裝置,所述運(yùn)算單元,具體用于:

向算力板每發(fā)送一個(gè)工作數(shù)據(jù),生成一個(gè)表示所述工作數(shù)據(jù)次序的工作ID;

對(duì)所述工作ID進(jìn)行存儲(chǔ),并根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址;

將所述工作數(shù)據(jù)對(duì)應(yīng)的中間結(jié)果數(shù)據(jù)存儲(chǔ)于所述存儲(chǔ)地址。

19、根據(jù)18所述的裝置,所述運(yùn)算單元,具體用于接收算力板返回的初始輸出結(jié)果數(shù)據(jù),對(duì)所述初始輸出結(jié)果數(shù)據(jù)進(jìn)行存儲(chǔ),并向所述控制單元返回一個(gè)工作ID;

所述控制單元,具體用于根據(jù)所述工作ID按照預(yù)設(shè)的算法計(jì)算一個(gè)存儲(chǔ)地址,從所述存儲(chǔ)地址中獲取一個(gè)所述中間結(jié)果數(shù)據(jù)。

20、根據(jù)19所述的裝置,所述控制單元,具體用于:

檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果大于或等于預(yù)設(shè)的難度值,將所述當(dāng)前的輸出結(jié)果數(shù)據(jù)返回所述礦池;

若當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果小于預(yù)設(shè)的難度值,獲取下一個(gè)輸出結(jié)果數(shù)據(jù)作為當(dāng)前的輸出結(jié)果數(shù)據(jù),執(zhí)行所述檢測(cè)當(dāng)前的輸出結(jié)果數(shù)據(jù)進(jìn)行哈希運(yùn)算的結(jié)果是否小于預(yù)設(shè)的難度值的操作。

21、根據(jù)20所述的裝置,所述運(yùn)算單元包括:現(xiàn)場(chǎng)可編程門陣列FPGA;所述控制單元包括:中央處理單元CPU。

22、一種挖礦業(yè)務(wù)處理系統(tǒng),包括:根據(jù)11至21任意一項(xiàng)所述的挖礦業(yè)務(wù)處理裝置。

本說(shuō)明書中各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似的部分相互參見即可。對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。

可能以許多方式來(lái)實(shí)現(xiàn)本發(fā)明的方法、裝置和系統(tǒng)。例如,可通過(guò)軟件、硬件、固件或者軟件、硬件、固件的任何組合來(lái)實(shí)現(xiàn)本發(fā)明的方法、裝置和系統(tǒng)。用于所述方法的步驟的上述順序僅是為了進(jìn)行說(shuō)明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說(shuō)明。此外,在一些實(shí)施例中,還可將本發(fā)明實(shí)施為記錄在記錄介質(zhì)中的程序,這些程序包括用于實(shí)現(xiàn)根據(jù)本發(fā)明的方法的機(jī)器可讀指令。因而,本發(fā)明還覆蓋存儲(chǔ)用于執(zhí)行根據(jù)本發(fā)明的方法的程序的記錄介質(zhì)。

本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無(wú)遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說(shuō)明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
三穗县| 阳春市| 聊城市| 大安市| 财经| 内乡县| 安塞县| 策勒县| 成都市| 林芝县| 赤水市| 红原县| 定南县| 盐池县| 兴宁市| 宜兴市| 资源县| 化隆| 龙海市| 常宁市| 大厂| 罗平县| 平凉市| 宝清县| 南昌县| 保靖县| 邛崃市| 兰西县| 双峰县| 枣强县| 游戏| 乌鲁木齐县| 广饶县| 萍乡市| 白河县| 尉氏县| 昌吉市| 舟山市| 乡宁县| 绍兴县| 恩平市|