本發(fā)明涉及區(qū)塊鏈,尤其涉及區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法、系統(tǒng)及電子設(shè)備。
背景技術(shù):
1、區(qū)塊鏈是一種將數(shù)據(jù)區(qū)塊有序連接,并以密碼學(xué)方式存儲,保證其不可篡改、不可偽造的分布式數(shù)據(jù)庫技術(shù)。區(qū)塊鏈的核心技術(shù)之一是智能合約,智能合約是一種特殊協(xié)議,旨在提供、驗證、執(zhí)行合約。
2、在現(xiàn)有技術(shù)中,區(qū)塊鏈結(jié)構(gòu)均采用串行方式執(zhí)行智能合約,即區(qū)塊鏈系統(tǒng)中的所有區(qū)塊鏈節(jié)點均為對等節(jié)點,節(jié)點既負責智能合約又負責共識出塊,所有智能合約智能串行執(zhí)行,待共識一筆交易后才能執(zhí)行下一個智能合約,雖能嚴格保證節(jié)點間狀態(tài)的一致性,但串行執(zhí)行機制極大地限制了區(qū)塊鏈的吞吐率,區(qū)塊鏈系統(tǒng)處理交易的效率低。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法、系統(tǒng)及電子設(shè)備,用以解決現(xiàn)有技術(shù)中串行執(zhí)行機制限制區(qū)塊鏈吞吐率的缺陷,實現(xiàn)提高區(qū)塊鏈系統(tǒng)處理交易的效率。
2、本發(fā)明提供一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,應(yīng)用于第一節(jié)點終端,包括:
3、執(zhí)行智能合約,生成目標交易數(shù)據(jù);
4、將所述目標交易數(shù)據(jù)異步發(fā)送至第二節(jié)點終端生成區(qū)塊。
5、本發(fā)明提供一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,應(yīng)用于第二節(jié)點終端,包括:
6、接收第一節(jié)點終端發(fā)送的目標交易數(shù)據(jù),將所述目標交易數(shù)據(jù)加入至共識樹中;
7、當所述共識樹中的交易數(shù)據(jù)的數(shù)據(jù)量達到預(yù)設(shè)的出塊數(shù)據(jù)量時,獲取所述共識樹中的各個交易數(shù)據(jù)的共識結(jié)果,基于共識結(jié)果對所述共識樹中的交易數(shù)據(jù)進行打包,生成區(qū)塊。
8、根據(jù)本發(fā)明提供的一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,所述將所述目標交易數(shù)據(jù)加入至共識樹中,包括:
9、當所述共識樹中的各個樹節(jié)點對應(yīng)的終端均不是所述目標交易數(shù)據(jù)對應(yīng)的所述第一節(jié)點終端時,將所述目標交易數(shù)據(jù)作為第一樹節(jié)點加入至所述共識樹中;
10、當所述共識樹中的樹節(jié)點對應(yīng)的終端是所述目標交易數(shù)據(jù)對應(yīng)的所述第一節(jié)點終端時,將所述目標交易數(shù)據(jù)加入至所述共識樹中,并將所述共識樹中對應(yīng)的終端是所述目標交易數(shù)據(jù)對應(yīng)的所述第一節(jié)點終端的樹節(jié)點作為第二樹節(jié)點。
11、根據(jù)本發(fā)明提供的一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,所述將所述目標交易數(shù)據(jù)加入至共識樹之前,包括:
12、對所述目標交易數(shù)據(jù)對應(yīng)的所述第一節(jié)點終端進行鎖定;
13、所述將所述目標交易數(shù)據(jù)加入至共識樹之后,包括:
14、對所述目標交易數(shù)據(jù)對應(yīng)的所述第一節(jié)點終端解除鎖定。
15、根據(jù)本發(fā)明提供的一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,所述獲取所述共識樹中的各個交易數(shù)據(jù)的共識結(jié)果,包括:
16、在所有的所述第二節(jié)點終端中選擇部分節(jié)點終端作為共識節(jié)點終端,獲取所述共識節(jié)點終端對第一交易數(shù)據(jù)的共識結(jié)果,所述第一交易數(shù)據(jù)為所述共識樹中的所述第一樹節(jié)點對應(yīng)的交易數(shù)據(jù);
17、將所有的所述第二節(jié)點終端作為所述共識節(jié)點終端,獲取所述共識節(jié)點終端對第二交易數(shù)據(jù)的共識結(jié)果,所述第二交易數(shù)據(jù)為所述共識樹中的所述第二樹節(jié)點對應(yīng)的交易數(shù)據(jù)。
18、根據(jù)本發(fā)明提供的一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,所述在所有的所述第二節(jié)點終端中選擇部分節(jié)點終端作為共識節(jié)點終端,包括:
19、獲取所述第一樹節(jié)點的節(jié)點id的一致性哈希值,基于所述一致性哈希值、所述第二節(jié)點終端的總數(shù)量以及預(yù)設(shè)的共識因子進行求模運算,得到第一值;
20、獲取輸出的第二值與所述第一值相同的第二節(jié)點終端作為所述共識節(jié)點終端,所述第二值是所述第二節(jié)點終端基于節(jié)點編號以及所述第二節(jié)點終端的總數(shù)量進行求模運算得到的。
21、本發(fā)明還提供一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理系統(tǒng),包括多個第一節(jié)點終端和多個第二節(jié)點終端;
22、所述第一節(jié)點終端用于執(zhí)行智能合約,生成目標交易數(shù)據(jù),將所述目標交易數(shù)據(jù)異步發(fā)送至第二節(jié)點終端生成區(qū)塊;
23、所述第二節(jié)點終端用于接收第一節(jié)點終端發(fā)送的目標交易數(shù)據(jù),將所述目標交易數(shù)據(jù)加入至共識樹中,當所述共識樹中的交易數(shù)據(jù)的數(shù)據(jù)量達到預(yù)設(shè)的出塊數(shù)據(jù)量時,獲取所述共識樹中的各個交易數(shù)據(jù)的共識結(jié)果,基于共識結(jié)果對所述共識樹中的交易數(shù)據(jù)進行打包,生成區(qū)塊。
24、本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如上述任一種所述區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法。
25、本發(fā)明還提供一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法。
26、本發(fā)明還提供一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法。
27、本發(fā)明提供的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法、系統(tǒng)及電子設(shè)備,通過將區(qū)塊鏈中的節(jié)點終端劃分為第一節(jié)點終端和第二節(jié)點終端,第一節(jié)點終端執(zhí)行智能合約生成交易數(shù)據(jù)之后,并不是串行地生成區(qū)塊,而是將交易數(shù)據(jù)異步發(fā)送至第二節(jié)點終端生成區(qū)塊,也就是說,區(qū)塊鏈中的節(jié)點并不是對等的,執(zhí)行智能合約的節(jié)點和出塊節(jié)點被區(qū)分開來,實現(xiàn)了將區(qū)塊鏈中執(zhí)行智能合約并出塊的過程由同步轉(zhuǎn)異步,串行轉(zhuǎn)并行,執(zhí)行智能合約生成交易數(shù)據(jù)以及將交易數(shù)據(jù)打包出塊的過程并行,提升了區(qū)塊鏈系統(tǒng)處理交易的效率。
1.一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,其特征在于,應(yīng)用于第一節(jié)點終端,包括:
2.一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,其特征在于,應(yīng)用于第二節(jié)點終端,包括:
3.根據(jù)權(quán)利要求2所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,其特征在于,所述將所述目標交易數(shù)據(jù)加入至共識樹中,包括:
4.根據(jù)權(quán)利要求2所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,其特征在于,所述將所述目標交易數(shù)據(jù)加入至共識樹之前,包括:
5.根據(jù)權(quán)利要求3所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,其特征在于,所述獲取所述共識樹中的各個交易數(shù)據(jù)的共識結(jié)果,包括:
6.根據(jù)權(quán)利要求5所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,其特征在于,所述在所有的所述第二節(jié)點終端中選擇部分節(jié)點終端作為共識節(jié)點終端,包括:
7.一種區(qū)塊鏈智能合約交易數(shù)據(jù)處理系統(tǒng),其特征在于,包括多個第一節(jié)點終端和多個第二節(jié)點終端;
8.一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述程序時實現(xiàn)如權(quán)利要求1所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,或?qū)崿F(xiàn)如權(quán)利要求2-6任一項所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法。
9.一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,或?qū)崿F(xiàn)如權(quán)利要求2-6任一項所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法。
10.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法,或?qū)崿F(xiàn)如權(quán)利要求2-6任一項所述的區(qū)塊鏈智能合約交易數(shù)據(jù)處理方法。