[發明專利]一種基于Fabric的數據庫訪問日志上鏈方法及系統有效
| 申請號: | 202110249318.3 | 申請日: | 2021-03-08 |
| 公開(公告)號: | CN113158227B | 公開(公告)日: | 2022-10-11 |
| 發明(設計)人: | 蔣溢;陳軍;熊安萍 | 申請(專利權)人: | 重慶郵電大學 |
| 主分類號: | G06F21/62 | 分類號: | G06F21/62;H04L67/1097;H04L9/32 |
| 代理公司: | 重慶輝騰律師事務所 50215 | 代理人: | 盧勝斌 |
| 地址: | 400065 重*** | 國省代碼: | 重慶;50 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 fabric 數據庫 訪問 日志 方法 系統 | ||
1.一種基于Fabric的數據庫訪問日志上鏈方法,其特征在于,具體包括以下步驟:
S1:基于HyperLedgerFabric構建數據庫訪問日志上鏈模型;在構建的數據庫訪問日志上鏈模型中,以代理節點為客戶端,構建HyperLedgerFabric區塊鏈,通過Fabric智能合約將代理節點過濾后的數據庫訪問日志信息旁路到區塊鏈;
S2:在數據庫訪問日志上鏈模型中,基于Raft共識機制中日志應用的遲滯差值和節點遲滯差值的方差齊性檢驗,構建信譽值模型,并選舉Leader節點;
構建信譽值模型計算節點信譽值,具體包括以下步驟:
根據收到的操作請求寫入Raft節點中的LogEntry結構后,再將操作請求應用到狀態機的延遲情況,計算任期Ti節點s的Raft中Log日志應用遲滯差值
根據節點任期Ti、節點遲滯差值和節點歷史平均遲滯差值計算得到遲滯差值的方差,包括:
其中,為節點s在任期Ti時的方差;
利用節點遲滯差值的方差進行方差齊性檢驗得到方差比率,包括:
基于節點s的任期Ti和遲滯差值的方差比率F來計算節點s的信譽值表示為:
選舉Leader節點具體包括以下步驟:
初始化節點任期T0、節點Log日志應用的遲滯差值和節點歷史平均遲滯差值并將Leader節點個數k和Leader平均信譽值初始化為0,將所有節點信譽值初始化為0.5;
當節點長時間未收到來自Leader的消息時,獲取每個節點信譽值,當節點信譽值不小于歷屆Leader平均信譽值時,其轉化為Candidate節點;
由Candidate節點發起新一輪Leader節點選舉,根據節點的投票分布選出新的Leader,并根據信譽值模型計算節點的信譽值;
更新節點遲滯差值,并更新歷屆Leader平均信譽值和節點歷史平均遲滯差值,用于下一輪信譽值模型的計算;
S3:代理節點發起交易,經背書節點驗證后,將交易信息廣播給排序模塊,由排序節點打包成塊,通過組織節點寫入賬本。
2.根據權利要求1所述的一種基于Fabric的數據庫訪問日志上鏈方法,其特征在于,步驟S3具體包括以下步驟:
S31:代理節點根據背書策略構造交易提案并廣播給背書節點,交易提案經背書節點驗證通過后,對模擬執行結果進行背書并返回給代理節點;
S32:代理節點收到模擬執行結果后驗證背書簽名,驗證通過后將數據庫訪問日志封裝為交易請求并廣播給排序模塊,排序模塊將交易排序并打包成塊,并將區塊廣播給組織節點;
S33:組織節點對區塊進行有效性驗證后將其寫入本地賬本,并將區塊同步廣播給組織內的其他節點,最后向代理節點返回交易驗證結果。
3.一種基于Fabric的數據庫訪問日志上鏈系統,其特征在于,該系統包括日志旁路模塊、交易背書模塊、區塊排序模塊、區塊生成模塊、信譽值計算模塊以及Leader節點選舉模塊,其中:
日志旁路模塊,用于將數據庫訪問日志信息進行過濾打包,然后由代理節點構建交易提案,發起交易請求;
交易背書模塊,用于背書節點在交易模擬執行過程中交易提案進行有效性驗證,驗證通過后向代理節點發回響應,代理節點發起正式的交易請求;
區塊排序模塊,用于對收到的正式交易請求進行排序并打包成塊,然后將區塊廣播給組織節點;
區塊生成模塊,用于驗證組織節點接受到的區塊的有效性,驗證通過后寫入到所有組織節點的本地賬本中;
信譽值計算模塊,用于計算節點的信譽值,該信譽值被用于區塊排序模塊Leader節點的選舉過程中,最終通過以Leader節點為準的方式實現一系列排序模塊的共識和各節點日志的一致;計算節點信譽值,具體包括以下步驟:
根據收到的操作請求寫入Raft節點中的LogEntry結構后,再將操作請求應用到狀態機的延遲情況,計算任期Ti節點s的Raft中Log日志應用遲滯差值
根據節點任期Ti、節點遲滯差值和節點歷史平均遲滯差值計算得到遲滯差值的方差,包括:
其中,為節點s在任期Ti時的方差;
利用節點遲滯差值的方差進行方差齊性檢驗得到方差比率,包括:
基于節點s的任期Ti和遲滯差值的方差比率F來計算節點s的信譽值表示為:
Leader節點選舉模塊,用于判斷是否需要節點轉換為Candidate節點以及進行Leader節點的選取;選舉Leader節點具體包括以下步驟:
初始化節點任期T0、節點Log日志應用的遲滯差值和節點歷史平均遲滯差值并將Leader節點個數k和Leader平均信譽值初始化為0,將所有節點信譽值初始化為0.5;
當節點長時間未收到來自Leader的消息時,獲取每個節點信譽值,當節點信譽值不小于歷屆Leader平均信譽值時,其轉化為Candidate節點;
由Candidate節點發起新一輪Leader節點選舉,根據節點的投票分布選出新的Leader,并根據信譽值模型計算節點的信譽值;
更新節點遲滯差值,并更新歷屆Leader平均信譽值和節點歷史平均遲滯差值,用于下一輪信譽值模型的計算;
信譽值計算模塊包括遲滯差值計算單元、遲滯差值方差計算單元和遲滯差值比率計算單元和節點信譽值計算單元,其中:
遲滯差值計算單元,用于根據Raft機制中每個節點Log日志寫入,到應用至復制狀態機的延遲情況,計算Raft中任期Ti節點s的Log日志應用遲滯差值;
遲滯差值方差計算單元,用于根據節點任期Ti、節點遲滯差值和節點歷史平均遲滯差值計算得到遲滯差值的方差;
遲滯差值比率計算單元,用于利用節點遲滯差值的方差進行方差齊性檢驗得到方差比率;
Leader節點選舉模塊包括節點初始化單元、節點轉化單元和選舉統計單元,其中:
節點初始化單元,用于對節點進行初始化,包括初始化節點任期T0、節點Log日志應用的遲滯差值和節點歷史平均遲滯差值并將Leader節點個數k和Leader平均信譽值初始化為0,將所有節點信譽值初始化為0.5;
節點轉化單元,用于在超過設置的時間未收到Leader節點的消息時,獲取每個節點的信譽值,并將信譽值不小于歷屆Leader節點信譽值平均值的節點轉換為Candidate節點;
選舉統計單元,用于統計Candidate節點發起的Leader節點選舉,將票數最多的k個Candidate節點作為新的Leader節點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于重慶郵電大學,未經重慶郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110249318.3/1.html,轉載請聲明來源鉆瓜專利網。





