[發(fā)明專利]基于優(yōu)化PAXOS的食品溯源分布式數(shù)據(jù)同步方法有效
| 申請(qǐng)?zhí)枺?/td> | 201911336572.6 | 申請(qǐng)日: | 2019-12-23 |
| 公開(公告)號(hào): | CN111092896B | 公開(公告)日: | 2022-08-26 |
| 發(fā)明(設(shè)計(jì))人: | 王朝陽;左敏;張青川 | 申請(qǐng)(專利權(quán))人: | 北京工商大學(xué) |
| 主分類號(hào): | H04L67/1095 | 分類號(hào): | H04L67/1095;H04L67/1097;H04L9/40;H04L9/32 |
| 代理公司: | 北京科迪生專利代理有限責(zé)任公司 11251 | 代理人: | 鄧治平 |
| 地址: | 100048*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 優(yōu)化 paxos 食品 溯源 分布式 數(shù)據(jù) 同步 方法 | ||
1.一種基于優(yōu)化PAXOS的食品溯源分布式數(shù)據(jù)同步方法,其特征在于,包括如下步驟:
步驟1、基于食品溯源業(yè)務(wù)流程構(gòu)建基于聯(lián)盟區(qū)塊鏈的食品溯源模型,所述溯源模型的功能包括:用戶獲取token、溯源信息上鏈、溯源信息查詢;客戶端基于API接口進(jìn)行溯源相關(guān)信息的錄入與查詢;所述溯源模型包括多個(gè)節(jié)點(diǎn);
步驟2、在溯源模型中,定義token為用戶身份認(rèn)證標(biāo)識(shí),后續(xù)發(fā)起業(yè)務(wù)流轉(zhuǎn)、查詢溯源信息時(shí)輸入該token,獲取token后,節(jié)點(diǎn)將本業(yè)務(wù)流程的溯源信息上傳溯源系統(tǒng),當(dāng)客戶端API接口接收到信息上鏈請(qǐng)求時(shí),校驗(yàn)是否是初始節(jié)點(diǎn);
步驟3、在聯(lián)盟區(qū)塊鏈內(nèi)部署動(dòng)態(tài)節(jié)點(diǎn);選取部分節(jié)點(diǎn)作為動(dòng)態(tài)節(jié)點(diǎn),在業(yè)務(wù)輪轉(zhuǎn)時(shí)進(jìn)行部署;如果上述步驟2中經(jīng)校驗(yàn)是初始節(jié)點(diǎn),則判斷該初始節(jié)點(diǎn)的類型,若該初始節(jié)點(diǎn)為養(yǎng)殖廠,轉(zhuǎn)步驟4;若該初始節(jié)點(diǎn)為非養(yǎng)殖廠,轉(zhuǎn)步驟5;所述步驟3中,在聯(lián)盟區(qū)塊鏈內(nèi)部署動(dòng)態(tài)節(jié)點(diǎn),其步驟如下:
步驟3.1:新增節(jié)點(diǎn),線下獲取角色證書RCert、準(zhǔn)入證書ECert后,新節(jié)點(diǎn)連接成聯(lián)盟鏈內(nèi)節(jié)點(diǎn),新請(qǐng)求接入的節(jié)點(diǎn)提供證書簽證機(jī)關(guān)(CA)提供的證書,被聯(lián)盟鏈上各節(jié)點(diǎn)認(rèn)證通過后,即開始形成共識(shí);
步驟3.2:新節(jié)點(diǎn)驗(yàn)證,已通過CA認(rèn)證的新節(jié)點(diǎn)發(fā)送的加入請(qǐng)求被接收,并給全網(wǎng)節(jié)點(diǎn)發(fā)送廣播AddNode消息,在原節(jié)點(diǎn)收到的AddNode請(qǐng)求滿足數(shù)量條件并進(jìn)行驗(yàn)證后,在路由表中加入新的節(jié)點(diǎn)信息,并與當(dāng)前的新節(jié)點(diǎn)進(jìn)行反向連接;
步驟3.3:全網(wǎng)廣播,發(fā)現(xiàn)全網(wǎng)中與自身建立連接的節(jié)點(diǎn)達(dá)到N-f個(gè)節(jié)點(diǎn)后,初始化新節(jié)點(diǎn)后進(jìn)入Recovery狀態(tài),即一個(gè)索引的分片分配到另外一個(gè)節(jié)點(diǎn)的過程,并請(qǐng)求將未加入前的區(qū)塊數(shù)據(jù)加入節(jié)點(diǎn),在完成Recovery后,即新節(jié)點(diǎn)通過更新寫入最新的系統(tǒng)區(qū)塊數(shù)據(jù),并將ReadyForN消息廣播自全網(wǎng),表明已同步化賬本,可在系統(tǒng)加入已完備的新節(jié)點(diǎn);其中N為節(jié)點(diǎn)總數(shù),f為拜占庭節(jié)點(diǎn)總數(shù);
步驟3.4:全局更新,新節(jié)點(diǎn)所發(fā)送的新節(jié)點(diǎn)準(zhǔn)備完備ReadyForN消息已經(jīng)送達(dá)現(xiàn)有節(jié)點(diǎn),在驗(yàn)證通過后執(zhí)行本地計(jì)算,并全網(wǎng)廣播AgreeUpdateN消息;表明系統(tǒng)將暫停三階段的交易處理流程,為更新N,視圖view做準(zhǔn)備;節(jié)點(diǎn)收到AgreeUpdateN即同意對(duì)節(jié)點(diǎn)進(jìn)行更新的消息大于等于N-f個(gè),主節(jié)點(diǎn)廣播Update消息,此時(shí)各節(jié)點(diǎn)更新系統(tǒng)狀態(tài);
步驟4、若該節(jié)點(diǎn)為養(yǎng)殖廠,則需監(jiān)管系統(tǒng)執(zhí)行監(jiān)管智能合約進(jìn)行監(jiān)管,校驗(yàn)該節(jié)點(diǎn)資質(zhì)信息,只有資質(zhì)信息通過后,才允許將該條初始信息上傳至溯源區(qū)塊鏈上進(jìn)行同步存儲(chǔ);所述的步驟4中的同步存儲(chǔ)是基于聯(lián)盟區(qū)塊鏈技術(shù)的食品溯源切分存儲(chǔ),采用分層多鏈的數(shù)據(jù)存儲(chǔ)方法以及基于PAXOS算法的數(shù)據(jù)處理方法,分層多鏈的數(shù)據(jù)存儲(chǔ)過程如下:
步驟4.1、首先對(duì)區(qū)塊進(jìn)行分組,由主節(jié)點(diǎn)存儲(chǔ)完整的食品流轉(zhuǎn)行為數(shù)據(jù),副節(jié)點(diǎn)則根據(jù)一致性哈希原理分片存儲(chǔ)食品溯源數(shù)據(jù);
步驟4.2、每個(gè)區(qū)塊組中有K+1個(gè)區(qū)塊節(jié)點(diǎn),首先采用基于位置的分組設(shè)計(jì),每個(gè)組中根據(jù)節(jié)點(diǎn)區(qū)塊的性能以及可靠性選出一個(gè)節(jié)點(diǎn)區(qū)塊擔(dān)任主區(qū)塊節(jié)點(diǎn),令其存儲(chǔ)完整的溯源數(shù)據(jù),使除主節(jié)點(diǎn)外的其他區(qū)塊節(jié)點(diǎn)共同存儲(chǔ)分片區(qū)塊數(shù)據(jù),隨后對(duì)2^32取模,2^32個(gè)點(diǎn)組成的圓環(huán)稱為哈希環(huán),根據(jù)服務(wù)節(jié)點(diǎn)的IP或者機(jī)器名稱進(jìn)行哈希,確定每臺(tái)機(jī)器在哈希環(huán)上的位置;
步驟4.3、另外,將一致的哈希環(huán)劃分為相同大小的W區(qū)域以對(duì)應(yīng)于W個(gè)虛擬節(jié)點(diǎn),并結(jié)合各節(jié)點(diǎn)的性能情況對(duì)虛擬節(jié)點(diǎn)的總量進(jìn)行調(diào)配;
步驟4.4、結(jié)合各節(jié)點(diǎn)對(duì)應(yīng)的性能值,推出各節(jié)點(diǎn)的虛擬節(jié)點(diǎn)分配狀況公式:
其中,V(ni)表示第i個(gè)區(qū)塊節(jié)點(diǎn)應(yīng)分配的節(jié)點(diǎn)個(gè)數(shù),W表示虛擬節(jié)點(diǎn)總數(shù),表示第i個(gè)節(jié)點(diǎn)在一個(gè)區(qū)塊組中的總節(jié)點(diǎn)比重,其中,p(ni)代表區(qū)塊節(jié)點(diǎn)i的性能值;
步驟4.5、執(zhí)行信息上鏈智能合約,通過優(yōu)化后的PAXOS算法校驗(yàn)時(shí)間、業(yè)務(wù)流程、追溯ID信息與上一次流轉(zhuǎn)是否匹配,校驗(yàn)通過后,數(shù)據(jù)將通過聯(lián)盟區(qū)塊鏈在所有追溯環(huán)節(jié)進(jìn)行數(shù)據(jù)同步,具體包括:
將議案和議案編號(hào)實(shí)現(xiàn)有效的分離,從而促使提案者proposer提出若干個(gè)議案的編號(hào),并將其充當(dāng)原議案,構(gòu)建分布式時(shí)鐘中心,之后按照既定的流程,備份若干副本,實(shí)現(xiàn)對(duì)食品追溯數(shù)據(jù)上鏈請(qǐng)求的并行處理,利用全局時(shí)鐘來讓進(jìn)程能夠向前執(zhí)行,對(duì)提交的C號(hào)碼進(jìn)行標(biāo)準(zhǔn)化的設(shè)計(jì),從而對(duì)所需的提案進(jìn)行良好的提交;對(duì)PAXOS算法的公式展開標(biāo)準(zhǔn)化的驗(yàn)證,設(shè)定最為適用的C號(hào)碼;其采用的時(shí)鐘系統(tǒng)算法與投票流程包括:
1)系統(tǒng)準(zhǔn)備階段,在學(xué)習(xí)者learner初始化的過程中,其對(duì)應(yīng)的時(shí)鐘值I=0;
2)提案者proposer在獲取request請(qǐng)求之后,將定時(shí)器timer有效的開啟,同時(shí)把它壓縮為提案摘要P并等待計(jì)時(shí)器到期以前將完整提案PR提交給接受者;議案提交者proposer可以提交議案,acceptor進(jìn)入承諾狀態(tài)promise;
3)投票表決,當(dāng)learner通過一個(gè)PR的時(shí)候,解析PR并提取推入的ID;投票表決,在接受者收到動(dòng)作后,它進(jìn)入接受狀態(tài);然后取出動(dòng)作編號(hào),同意并忽略受約人持有的最大數(shù)量的動(dòng)作;在多于二分之一的acceptor選擇同意時(shí)把數(shù)值傳輸至learner,acceptor的狀態(tài)也會(huì)調(diào)整至accepted;所有學(xué)習(xí)者都會(huì)收到查詢并增加編號(hào)以實(shí)現(xiàn)同步;如果ID未被批準(zhǔn),則將其寫入執(zhí)行代表exe_project_T,并且更新時(shí)鐘I=I+1;
4)學(xué)習(xí)議案,當(dāng)賬單被接受時(shí),賬單將被發(fā)送給學(xué)習(xí)者,一旦該議案被學(xué)習(xí)便可以進(jìn)行下一議案的審批;直到下一條議案提出的是停止提出議案的要求時(shí),系統(tǒng)才終止運(yùn)行。
2.根據(jù)權(quán)利要求1所述的一種基于優(yōu)化PAXOS的食品溯源分布式數(shù)據(jù)同步方法,其特征在于:
所述步驟4中,對(duì)PAXOS算法處理的事件進(jìn)行預(yù)處理,對(duì)時(shí)鐘系統(tǒng)和事件系統(tǒng)進(jìn)行界定;
針對(duì)初始階段的PAXOS算法,只能實(shí)現(xiàn)對(duì)單條追溯信息上鏈請(qǐng)求議案的通過,為了讓算法通過若干個(gè)上鏈請(qǐng)求,使用最鄰近算法對(duì)時(shí)鐘和事件進(jìn)行關(guān)聯(lián)分析,并根據(jù)關(guān)聯(lián)對(duì)時(shí)間與事件進(jìn)行關(guān)聯(lián)和分組,通過加權(quán)計(jì)算確定提交順序,采用分組提交的方式發(fā)送信息上鏈請(qǐng)求,系統(tǒng)將同時(shí)對(duì)一組中的若干條上鏈請(qǐng)求進(jìn)行判定。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京工商大學(xué),未經(jīng)北京工商大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911336572.6/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 便宜的PAXOS
- 一種paxos實(shí)例更新方法、設(shè)備及系統(tǒng)
- 一種paxos實(shí)例更新方法、設(shè)備及系統(tǒng)
- 一種paxos實(shí)例更新方法、設(shè)備及系統(tǒng)
- 去中心化架構(gòu)中使用多類型副本的分布式事務(wù)處理系統(tǒng)
- 業(yè)務(wù)數(shù)據(jù)處理方法和裝置
- 一種低延遲的分布式計(jì)算共識(shí)算法
- 基于Multi-Paxos的無人車物流任務(wù)分配方法
- 一種基于Paxos算法的微服務(wù)配置數(shù)據(jù)實(shí)時(shí)更新方法
- 一種基于Paxos算法的區(qū)塊鏈共識(shí)方法





