區塊鏈網路中多節點協同打塊系統
1.一種多節點協同打塊的方法,包括如下步驟:S1啟動區塊鏈節點,檢查本地協同配置;S2加入區塊鏈網路中的協同節點;S3啟動主節點,主節點檢測協同節點心跳;S4主節點獲取本周期未處理的交易,并為這些未處理交易標注序列;S5主節點將已標注序列的未處理的交易進行相關性分組,并將分組中有交易順序處理需要的交易進行上鎖;S6主節點將分組后的交易依次發送給各協同節點;S7各協同節點開始處理交易,將每一條交易處理結果回傳主節點,并等待主節點指示;S8主節點收到交易后保存處理結果,并將下一條交易的鎖的釋放指令發給協同節點,各協同節點繼續開始處理交易,并將交易處理結果回傳主節點,并等待主節點指示,在S8內依次回圈;S9當協同節點交易處理程序中遇到交易全部處理完畢,而主節點還沒有新的交易發來時,暫停交易,當協同節點交易處理程序中遇到時鐘指令本周期結束時,立即停止交易;S10協同節點交易停止后,主節點將協同節點處理的交易打入區塊,主節點將區塊簽名后向網路廣播,完成打塊,進入下一個區塊周期回圈,
2.根據權利要求1所述的一種多節點協同打塊的方法,其特征在于,所述的步驟S2加入區塊鏈網路中的協同節點的方法是:S21發布需求協同的請求,檢查本地節點是否為主節點;S22若本地節點是主節點則直接開始檢測協同節點心跳,若本地節點不是主節點,則查找配置的主節點;S23與主節點建立連接,并開始發送心跳包;S24發送了心跳包的本地節點切換為協同模式,開始主節點的任務調度,
3.根據權利要求2所述的一種多節點協同打塊的方法,其特征在于,所述主節點檢測協同節點心跳的方法是S31主節點啟動監聽心跳包,監聽其他節點發送的心跳包;S32主節點檢查自己的協同串列,當串列不為空時,依次檢查串列中的網路狀態;S33判斷節點是否能與主節點網路連接,若不能,則從協同串列中去除,若能則建立連接;S34監聽心跳包如果有新的協同節點加入,并將新的協同節點校驗通過后加入協同串列中;S35監聽心跳包程序中發現有協同節點掉線時,將其從協同串列中移除,移除掉線節點時,若掉線節點已經處理了一部分交易,那么需要將剩余未處理交易撤銷,將撤銷后的重新分配給其他協同節點;S36進入監聽心跳回圈,
4.根據權利要求1所述的一種多節點協同打塊的方法,其特征在于,所述的S6發送交易的方式是通過發送交易編號或者完整的交易內容,
5.一種多節點協同打塊的系統,包括:節點協同器:所述的節點協同器與區塊鏈網路連接,用于加入協同節點并檢測協同節點心跳;交易管理器:所述的交易管理器與區塊鏈網路和節點協同器連接,用于給節點協同器確定協同節點,分配交易,并接受協同節點的處理結果;時鐘協同器:所述的時鐘協同器與節點協同器和交易管理器相連,用于保證各協同節點保持時間的一致性;區塊鍛造器:與交易管理器和區塊鏈網路相連,將協同節點處理的交易打入區塊,并向區塊鏈網路廣播;所述的節點協同器,交易管理器,時鐘協同器,區塊鍛造器順序連接,
6.根據權利要求5所述的一種多節點協同打塊的系統,其特征在于,所述的節點協同器包括節點保持模塊和任務調度模塊,所述的節點保持模塊,用于發現和維持協同節點的在線狀態,加入新的協同節點,剔除掉線和無法作業的節點;所述的任務調度模塊用于為參與協同的節點分配任務,以及獲取任務結果,
7.根據權利要求5所述的一種多節點協同打塊的系統,其特征在于,所述的交易管理器包括交易分組模塊和賬務協同模塊和交易鎖管理模塊和序列管理模塊,所述的交易分組模塊用于將交易進行相關性分組,所述的賬務協同模塊與交易分組模塊相連,用于將各協同節點處理的賬戶的最新狀態告知其它協同節點,以幫助其它節點正確的進行賬務處理;所述的交易鎖管理模塊與賬務協同模塊相連,用于保證有順序依賴的交易正確處理;所述的序列管理模塊用于在區塊鍛造時保證全體交易在進入各協同節點前就已明確全域處理順序,在區塊校驗中保證交易的校驗順序與鍛造順序一致,
8.根據權利要求5所述的一種多節點協同打塊的系統,其特征在于,所述的時鐘協同器是一個獨立作業的系統,所述的時鐘協同器是觀察模塊或管理模塊或控制模塊的一種,所述的觀察模塊為各協同節點提供被動的資訊查詢,所述的管理模塊在特定的時間周期中,主動校準各協同節點的時間,所述的控制模塊作為協同節點的一部分參與運行,控制協同節點周期結束時停止交易,
9.根據權利要求8所述的一種多節點協同打塊的系統,其特征在于,所述管理模塊校準時間方式包括簡單校準和深度校準,
10.根據權利要求9所述的一種多節點協同打塊的系統,其特征在于,所述是簡單校準是重新更新時鐘,所述的深度校準是重新啟動交易或暫停交易,
一種多節點協同打塊的方法及系統
技術領域
[0001]本發明屬于區塊鏈領域,尤其涉及一種多節點協同打塊的方法及系統,
背景技術
[0002]隨著位元幣的出現,區塊鏈技術被越來越多的認識,區塊鏈中的挖礦尤其受到很多技術迷的青睞,現有的區塊鏈網路中,幾乎所有的區塊鏈都是各節點獨立作業,這導致區塊鏈的吞吐性能由單一節點的最大處理能力決定,而單一節點的計算能力、存盤能力總是有限的,這導致區塊鏈的性能被局限在單臺計算機的處理性能之內;而實際業務應用中,業務總是無窮無盡的增長,需求和交易的能力也隨著無窮盡的增長,但計算機的處理性能卻無法做到無窮無盡的增長,這導致當前的區塊鏈無法大規模應用到真實的業務生產環境中,那么如何讓區塊鏈的處理性能能突破單一計算機的計算能力成為一個急需解決的問題,
發明內容
[0003]本發明所要解決的技術問題在于提供一種處理性能好、出塊速度快、能實作多個節點協同打塊,提高打塊效率的一種多節點協同打塊的方法及系統,
[0004]為解決上述技術問題,本發明的技術解決方案是:
[0005]一種多節點協同打塊的方法,包括如下步驟:
[0006]S1啟動區塊鏈節點,檢查本地協同配置;
[0007]S2加入區塊鏈網路中的協同節點;
[0008]S3啟動主節點,主節點檢測協同節點心跳;
[0009]S4主節點獲取本周期未處理的交易,并為這些未處理交易標注序列;
[0010]S5主節點將已標注序列的未處理的交易進行相關性分組,并將分組中有交易順序處理需要的交易進行上鎖;
[0011]S6主節點將分組后的交易依次發送給各協同節點;
[0012]S7各協同節點開始處理交易,將每一條交易處理結果回傳主節點,并等待主節點指示;
[0013]S8主節點收到交易后保存處理結果,并將下一條交易的鎖的釋放指令發給協同節點,各協同節點繼續開始處理交易,并將交易處理結果回傳主節點,并等待主節點指示,在S8內依次回圈;
[0014]S9當協同節點交易處理程序中遇到交易全部處理完畢,而主節點還沒有新的交易發來時,暫停交易,當協同節點交易處理程序中遇到時鐘指令本周期結束時,立即停止交易;
[0015]S10協同節點交易停止后,主節點將協同節點處理的交易打入區塊,主節點將區塊簽名后向網路廣播,完成打塊,進入下一個區塊周期回圈,
[0016]進一步的,所述的步驟S2加入區塊鏈網路中的協同節點的方法是:
[0017]S21發布需求協同的請求,檢查本地節點是否為主節點;
[0018]S22若本地節點是主節點則直接開始檢測協同節點心跳,若本地節點不是主節點,則查找配置的主節點;
[0019]S23與主節點建立連接,并開始發送心跳包;
[0020]S24發送了心跳包的本地節點切換為協同模式,開始主節點的任務調度,
[0021]進一步的,所述主節點檢測協同節點心跳的方法是
[0022]S31主節點啟動監聽心跳包,監聽其他節點發送的心跳包;
[0023]S32主節點檢查自己的協同串列,當串列不為空時,依次檢查串列中的網路狀態;
[0024]S33判斷節點是否能與主節點網路連接,若不能,則從協同串列中去除,若能則建立連接;
[0025]S34監聽心跳包如果有新的協同節點加入,并將新的協同節點校驗通過后加入協同串列中;
[0026]S35監聽心跳包程序中發現有協同節點掉線時,將其從協同串列中移除,移除掉線節點時,若掉線節點已經處理了一部分交易,那么需要將剩余未處理交易撤銷,將撤銷后的重新分配給其他協同節點;
[0027]S36進入監聽心跳回圈,
[0028]進一步的,所述的S6發送交易的方式是通過發送交易編號或者完整的交易內容,
[0029]一種多節點協同打塊的系統,包括:
[0030]節點協同器:所述的節點協同器與區塊鏈網路連接,用于加入協同節點并檢測協同節點心跳;
[0031]交易管理器:所述的交易管理器與區塊鏈網路和節點協同器連接,用于給節點協同器確定協同節點,分配交易,并接受協同節點的處理結果;
[0032]時鐘協同器:所述的時鐘協同器與節點協同器和交易管理器相連,用于保證各協同節點保持時間的一致性;
[0033]區塊鍛造器:與交易管理器和區塊鏈網路相連,將協同節點處理的交易打入區塊,并向區塊鏈網路廣播;
[0034]所述的節點協同器,交易管理器,時鐘協同器,區塊鍛造器順序連接,
[0035]進一步的,所述的節點協同器包括節點保持模塊和任務調度模塊,所述的節點保持模塊,用于發現和維持協同節點的在線狀態,加入新的協同節點,剔除掉線和無法作業的節點;所述的任務調度模塊用于為參與協同的節點分配任務,以及獲取任務結果,
[0036]進一步的,所述的交易管理器包括交易分組模塊和賬務協同模塊和交易鎖管理模塊和序列管理模塊,所述的交易分組模塊用于將交易進行相關性分組,所述的賬務協同模塊與交易分組模塊相連,用于將各協同節點處理的賬戶的最新狀態告知其它協同節點,以幫助其它節點正確的進行賬務處理;所述的交易鎖管理模塊與賬務協同模塊相連,用于保證有順序依賴的交易正確處理;所述的序列管理模塊用于在區塊鍛造時保證全體交易在進入各協同節點前就已明確全域處理順序,在區塊校驗中保證交易的校驗順序與鍛造順序一致,
[0037]進一步的,所述的時鐘協同器是一個獨立作業的系統,所述的時鐘協同器是觀察模塊或管理模塊或控制模塊的一種,所述的觀察模塊為各協同節點提供被動的資訊查詢,所述的管理模塊在特定的時間周期中,主動校準各協同節點的時間,所述的控制模塊作為協同節點的一部分參與運行,控制協同節點周期結束時停止交易,
[0038]進一步的,所述管理模塊校準時間方式包括簡單校準和深度校準,
[0039]進一步的,所述是簡單校準是重新更新時鐘,所述的深度校準是重新啟動交易或暫停交易,
[0040]本發明的有益效果是:
[0041]1、本發明通過確定區塊鏈網路中的節點作為協同節點,通過節點協同器與交易管理器的配合,使得協同節點能在一起有序的處理交易,處理性能好、出塊速度快;
[0042]2、本發明通過交易管理器中的交易鎖管理模塊、序列管理模塊、賬務協同模塊與時鐘協同器結合,保證多個節點協同打塊不出現資料紊亂,有序的進行打塊,提高了出塊效率,
看圖說話

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/199961.html
標籤:區塊鏈
上一篇:Fabric-java-sdk 開通TLS時訪問Fabric網路
下一篇:Redis-SortedSet
