[發(fā)明專利]一種基于BFT共識的聯(lián)盟鏈組網(wǎng)方法有效
| 申請?zhí)枺?/td> | 202010264747.3 | 申請日: | 2020-04-07 |
| 公開(公告)號: | CN111586102B | 公開(公告)日: | 2021-05-18 |
| 發(fā)明(設(shè)計)人: | 臧鋮;陳嘉俊;郭東升 | 申請(專利權(quán))人: | 浙商銀行股份有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L29/06;G06F16/27 |
| 代理公司: | 杭州求是專利事務(wù)所有限公司 33200 | 代理人: | 劉靜 |
| 地址: | 311200 浙江*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 bft 共識 聯(lián)盟 組網(wǎng) 方法 | ||
1.一種基于BFT共識的聯(lián)盟鏈組網(wǎng)方法,其特征在于,該方法包括:
聯(lián)盟鏈節(jié)點在組網(wǎng)時,通過配置文件來配置連接節(jié)點,且滿足:節(jié)點連接數(shù)大于等于2,即任意一個節(jié)點保證至少與其他兩個節(jié)點相連;連接的節(jié)點通過配置文件能夠動態(tài)更新;
每個聯(lián)盟鏈節(jié)點具有一個連接池和一個消息池;
新節(jié)點加入聯(lián)盟鏈時,通過配置文件的目標(biāo)節(jié)點列表獲取到需要連接的目標(biāo)節(jié)點,然后發(fā)起連接操作,通過帶證書簽名的交互消息,互相驗證對方的身份,以此實現(xiàn)聯(lián)盟鏈網(wǎng)絡(luò)節(jié)點準(zhǔn)入授權(quán)機制;
聯(lián)盟鏈網(wǎng)絡(luò)節(jié)點有變更時,更新節(jié)點的連接池及配置文件;
節(jié)點收到消息時,首先與其消息池里的消息進行比對,如果已經(jīng)收到了該消息則直接返回,如果是新消息則放入消息池待處理,并把新消息廣播到與其相連的其它節(jié)點,以此實現(xiàn)消息廣播到全網(wǎng)節(jié)點。
2.根據(jù)權(quán)利要求1所述的一種基于BFT共識的聯(lián)盟鏈組網(wǎng)方法,其特征在于,新節(jié)點可以是共識節(jié)點也可以是非共識節(jié)點,節(jié)點的角色通過配置指定。
3.根據(jù)權(quán)利要求1所述的一種基于BFT共識的聯(lián)盟鏈組網(wǎng)方法,其特征在于,新節(jié)點加入聯(lián)盟鏈時,連接步驟如下:
新節(jié)點啟動,根據(jù)配置文件,向目標(biāo)節(jié)點發(fā)起link操作;開啟定時器,用于觸發(fā)多次嘗試連接;創(chuàng)建連接協(xié)程,用于處理與目標(biāo)節(jié)點的連接交互;發(fā)起握手操作,申請連接資源;生成帶證書簽名的握手消息IdentityMsg,并發(fā)送IdentityMsg,等待目標(biāo)節(jié)點的返回消息;
目標(biāo)節(jié)點對收到的IdentityMsg進行簽名驗證,如果驗證通過則發(fā)送帶自己證書簽名的Rsp消息,否則發(fā)送拒絕連接的Rsp消息;
新節(jié)點對收到的Rsp消息進行解析,如果是拒絕連接消息則直接返回;如果是帶簽名的Rsp消息,則進行簽名驗證,如果證書驗證不通過,則向目標(biāo)節(jié)點發(fā)送拒絕連接消息,如果證書驗證通過則發(fā)送驗證通過消息;
目標(biāo)節(jié)點對收到的消息進行解析,如果是拒絕連接消息,則直接返回;如果是驗證通過消息則發(fā)送完成連接消息,并更新自己的連接池;
新節(jié)點收到目標(biāo)節(jié)點的完成連接消息后,更新自己的連接池,完成連接。
4.根據(jù)權(quán)利要求1所述的一種基于BFT共識的聯(lián)盟鏈組網(wǎng)方法,其特征在于,在節(jié)點完成建立連接時,啟動一個心跳探測協(xié)程,定時探測連接池的連接情況;
如果連接正常則探測次數(shù)清零,并等待定時器觸發(fā)下一次探測,如果探測失敗則探測次數(shù)加一,并等待定時器觸發(fā)下一次探測;
如果達到探測的最大次數(shù),則將該連接移除自己的連接池,并更新該節(jié)點的連接配置文件。
5.根據(jù)權(quán)利要求1所述的一種基于BFT共識的聯(lián)盟鏈組網(wǎng)方法,其特征在于,當(dāng)節(jié)點的某一連接超時,發(fā)起重連操作,如果達到最大重連次數(shù),則認(rèn)為該連接已經(jīng)失效,則從節(jié)點的連接池中刪除該連接。
6.根據(jù)權(quán)利要求1所述的一種基于BFT共識的聯(lián)盟鏈組網(wǎng)方法,其特征在于,聯(lián)盟鏈節(jié)點達成共識的主要流程包括以下步驟:
(1)client發(fā)起交易到任意節(jié)點;
(2)節(jié)點收到交易請求后,進行合法性驗證,通過驗證后生成preprepare消息并轉(zhuǎn)發(fā)到節(jié)點的連接池中與自己相連的其它節(jié)點;其它節(jié)點收到該preprepare消息后,與節(jié)點的消息池進行比對,如果是第一次收到該消息則轉(zhuǎn)發(fā)到節(jié)點的連接池中與自己相連的其它節(jié)點,以此類推,實現(xiàn)全網(wǎng)廣播;
(3)節(jié)點收到preprepare消息后,進行合法性驗證,通過驗證后生成prepare消息并轉(zhuǎn)發(fā)到節(jié)點的連接池中與自己相連的其它節(jié)點;其它節(jié)點收到該prepare消息后,與節(jié)點的消息池進行比對,如果是第一次收到該消息則轉(zhuǎn)發(fā)到節(jié)點的連接池中與自己相連的其它節(jié)點,以此類推,實現(xiàn)全網(wǎng)廣播;
(4)如果節(jié)點收到大于2f個prepare消息,f為容錯節(jié)點數(shù),則生成commit消息,并轉(zhuǎn)發(fā)到節(jié)點的連接池中與自己相連的其它節(jié)點,其它節(jié)點收到該commit消息后,與節(jié)點的消息池進行比對,如果是第一次收到該消息則轉(zhuǎn)發(fā)到節(jié)點的連接池中與自己相連的其它節(jié)點,以此類推,實現(xiàn)全網(wǎng)廣播;
(5)如果節(jié)點收到大于2f個commit消息,則認(rèn)為已經(jīng)全網(wǎng)達成了共識,則執(zhí)行交易,生成區(qū)塊,返回執(zhí)行結(jié)果給client。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浙商銀行股份有限公司,未經(jīng)浙商銀行股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010264747.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 用于區(qū)塊鏈的交易信息的共識方法及系統(tǒng)
- 一種數(shù)據(jù)處理方法、裝置、設(shè)備及介質(zhì)
- 一種基于區(qū)塊鏈系統(tǒng)的共識方法及區(qū)塊鏈系統(tǒng)
- 蜜獾拜占庭容錯共識機制的共識節(jié)點變更方法及相關(guān)裝置
- 區(qū)塊鏈共識節(jié)點的重啟處理方法、共識節(jié)點及區(qū)塊鏈系統(tǒng)
- 區(qū)塊鏈共識處理方法及裝置、電子設(shè)備、存儲介質(zhì)
- 區(qū)塊鏈的節(jié)點處理方法、裝置、節(jié)點設(shè)備及存儲介質(zhì)
- 用于區(qū)塊鏈系統(tǒng)的共識方法、裝置、電子設(shè)備及存儲介質(zhì)
- 區(qū)塊鏈共識引擎系統(tǒng)和區(qū)塊鏈共識處理流程方法
- 一種數(shù)據(jù)處理方法、裝置、設(shè)備及介質(zhì)
- 詞條同步方法及詞條同步裝置
- 一種全局性能最優(yōu)的多中繼選擇方法
- 登錄狀態(tài)的共享方法、裝置、電子設(shè)備及介質(zhì)
- 一種聯(lián)盟積分結(jié)算方法及裝置
- 一種通過區(qū)塊鏈公鏈管理聯(lián)盟鏈成員的方法
- 聯(lián)盟鏈節(jié)點管理系統(tǒng)以及方法
- 支持插件化接入不同區(qū)塊鏈聯(lián)盟鏈網(wǎng)絡(luò)的系統(tǒng)和方法
- 基于聯(lián)盟交換的5G訪問接入點選擇方法
- 分布式無線網(wǎng)絡(luò)頻譜共享系統(tǒng)及共享方法
- 聯(lián)盟鏈系統(tǒng)及聯(lián)盟鏈系統(tǒng)部署方法





