[發(fā)明專利]一種基于文件的區(qū)塊鏈區(qū)塊存儲和讀取方法有效
| 申請?zhí)枺?/td> | 201810534022.4 | 申請日: | 2018-05-29 |
| 公開(公告)號: | CN108829772B | 公開(公告)日: | 2020-01-10 |
| 發(fā)明(設(shè)計)人: | 邱煒偉;李啟雷;李偉;梁秀波;尹可挺 | 申請(專利權(quán))人: | 杭州趣鏈科技有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06 |
| 代理公司: | 33200 杭州求是專利事務(wù)所有限公司 | 代理人: | 邱啟旺 |
| 地址: | 310012 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 區(qū)塊 讀取 寫入 區(qū)塊信息 存儲 當前文件 常規(guī)的 鏈節(jié)點 更新 索引 重寫 成功 重復 應(yīng)用 網(wǎng)絡(luò) 保證 | ||
本發(fā)明公開一種基于文件的區(qū)塊鏈區(qū)塊存儲和讀取方法,在一個區(qū)塊鏈節(jié)點中,寫入時,讀取最后一次成功提交的區(qū)塊號,定位到當前文件寫入的位置,然后寫入最新的區(qū)塊信息;根據(jù)寫入的區(qū)塊信息生出索引,更新最后一次成功提交的區(qū)塊號,重復前述步驟,完成整個區(qū)塊的寫入,若有寫入錯誤,則需要更新區(qū)塊號進行區(qū)塊重寫;讀取采用常規(guī)的讀取方法。本發(fā)明應(yīng)用于現(xiàn)有的區(qū)塊鏈網(wǎng)絡(luò)中,在保證了區(qū)塊信息能夠被準確且完整的寫入的情況下,提高了整個區(qū)塊存儲的效率,是在傳統(tǒng)基于Key/Value的區(qū)塊鏈體系下一個新的突破。
技術(shù)領(lǐng)域
本發(fā)明涉及去中心化的區(qū)塊鏈存儲體系,尤其涉及一種基于文件的區(qū)塊鏈區(qū)塊存儲和讀取方法。
背景技術(shù)
區(qū)塊鏈技術(shù),區(qū)塊鏈是一種新型去中心化協(xié)議,能安全地存儲數(shù)字貨幣交易或其他數(shù)據(jù),信息不可偽造和篡改,區(qū)塊鏈上的交易確認由區(qū)塊鏈上的所有節(jié)點共同完成,由共識算法保證其一致性,區(qū)塊鏈上維護一個公共的賬本,公共賬本位于存儲區(qū)塊上任何節(jié)點可見,從而保證其不可偽造和篡改。
傳統(tǒng)區(qū)塊鏈的存儲體系均基于開源的Key/Value數(shù)據(jù)庫,例如LevelDB,盡管LevelDB面利用多層合并的方式對數(shù)據(jù)的寫入以及讀取做了很大的優(yōu)化,讀寫效率較其他傳統(tǒng)的數(shù)據(jù)庫也得到了一定的提高,但是針對大數(shù)據(jù)量且連續(xù)的區(qū)塊數(shù)據(jù)仍無法達到實際生產(chǎn)所要求達到的吞吐量。
傳統(tǒng)的區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點中所有的信息,包括狀態(tài)信息以及區(qū)塊均存儲Key/Value數(shù)據(jù)庫中,區(qū)塊數(shù)據(jù)龐大,一旦系統(tǒng)運行過久區(qū)塊數(shù)據(jù)量過大,會導致整個區(qū)塊鏈網(wǎng)絡(luò)的存儲讀寫性能嚴重降低,成為整個區(qū)塊鏈網(wǎng)絡(luò)運行性能的瓶頸,是區(qū)塊鏈在實際應(yīng)用中的一大痛點。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提供一種基于文件的區(qū)塊鏈區(qū)塊存儲和讀取方法,該方法是針對區(qū)塊數(shù)據(jù)量大且連續(xù)的特性,進行存儲的優(yōu)化。具體技術(shù)方案如下:
一種基于文件的區(qū)塊鏈區(qū)塊存儲和讀取方法,其特征在于,所述的存儲包括如下步驟:
(1)讀取最后一次成功提交的區(qū)塊號,將其存儲為變量名為LastCommit的鍵值對;
(2)根據(jù)最后一次提交的區(qū)塊號,定位到當前文件寫入的位置,然后寫入最新的區(qū)塊信息;
(3)根據(jù)寫入的區(qū)塊信息獲得該區(qū)塊在文件中的偏移量,根據(jù)區(qū)塊號和偏移量定義為當前區(qū)塊號的索引信息,寫入索引文件中;
(4)更新最后一次成功提交的區(qū)塊號,重復步驟(1)-(3),完成整個區(qū)塊的寫入;
(5)經(jīng)過區(qū)塊鏈網(wǎng)絡(luò)若干個節(jié)點共識,若此時發(fā)現(xiàn)某個節(jié)點的區(qū)塊寫入錯誤,則從其他節(jié)點獲取正確寫入的區(qū)塊號,更新錯誤節(jié)點最后一次成功提交的區(qū)塊號,重復步驟(1)-(4),直到區(qū)塊鏈網(wǎng)絡(luò)達成網(wǎng)絡(luò)共識。
所述的讀取包括如下步驟:
根據(jù)需要讀取的區(qū)塊號讀取相應(yīng)區(qū)塊的索引信息,根據(jù)索引信息定位到區(qū)塊位于文件的具體偏移量,根據(jù)偏移量讀取區(qū)塊信息。
優(yōu)選地,所述的讀取進一步包括如下步驟:
定義迭代器,選擇初始遍歷的區(qū)塊號,根據(jù)初始區(qū)塊號讀取相應(yīng)區(qū)塊的索引信息,根據(jù)索引信息定位到區(qū)塊位于文件的具體偏移量,依次遍歷整個文件,根據(jù)需要讀取所需要區(qū)塊的區(qū)塊信息。
優(yōu)選地,所述的步驟(2)中,當寫入最新的區(qū)塊信息后文件大于500M,則放棄此次寫入,新建區(qū)塊存儲文件和區(qū)塊索引文件,重新寫入最新區(qū)塊信息。
優(yōu)選地,所述的區(qū)塊號和索引文件按如下規(guī)則進行命名:
將新建區(qū)塊存儲以及索引文件后第一個區(qū)塊號作為文件名,文件后綴分別為.LOG和.IDX。
該專利技術(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/201810534022.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字數(shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計算機能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機傳送到輸出設(shè)備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計算機之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出
- 沿縱向拓展的區(qū)塊鏈的生成方法及系統(tǒng)
- 沿橫向拓展的區(qū)塊鏈的生成方法及系統(tǒng)
- 區(qū)塊鏈輕量化處理方法、區(qū)塊鏈節(jié)點及存儲介質(zhì)
- 餐廳配備裝置總成
- 區(qū)塊鏈處理方法、裝置及區(qū)塊鏈節(jié)點
- 本地區(qū)塊同步的檢驗方法、裝置、設(shè)備及存儲介質(zhì)
- 用于使用現(xiàn)有區(qū)塊鏈節(jié)點來托管新區(qū)塊鏈的方法和系統(tǒng)
- 一種錐體區(qū)塊、錐體區(qū)塊鏈結(jié)構(gòu)和方法
- 一種錐體區(qū)塊鏈共識系統(tǒng)、方法及網(wǎng)絡(luò)
- 區(qū)塊分布式區(qū)塊鏈的區(qū)塊數(shù)據(jù)結(jié)構(gòu)、存儲介質(zhì)及電子設(shè)備





