區(qū)塊鏈數(shù)據(jù)上鏈的思考

什么是“上鏈”致扯?什么數(shù)據(jù)和邏輯應該“上鏈”肤寝?文件能不能上鏈?鏈上能不能批量查數(shù)據(jù)抖僵?“鏈下”又是什么鲤看?

交易“上鏈”的簡要過程如下:
1,記賬者們收錄交易耍群,按鏈式數(shù)據(jù)結(jié)構打包成“區(qū)塊”义桂。
2,共識算法驅(qū)動大家驗證新區(qū)塊里的交易蹈垢,確保計算出一致的結(jié)果慷吊。
3,數(shù)據(jù)被廣播到所有節(jié)點耘婚,穩(wěn)妥存儲下來罢浇,每個節(jié)點都會存儲一個完整的數(shù)據(jù)副本陆赋。

交易一旦“上鏈”沐祷,則意味著得到完整執(zhí)行,達成了“分布式事務性”攒岛。簡單地說赖临,就像一段話經(jīng)過集體核準后在公告板上公示于眾,一字不錯不少灾锯,永久可見且無法涂改兢榨。

區(qū)塊需要進行區(qū)塊鏈共識,狀態(tài)數(shù)據(jù)是通過執(zhí)行區(qū)塊中的交易生成的顺饮,這兩類數(shù)據(jù)都直接或間接跟區(qū)塊鏈共識有關系吵聪,可以將其稱為“鏈上數(shù)據(jù)”。

“上鏈”意味著“共識”和“存儲”兼雄,兩者缺一不可吟逝。交易不經(jīng)過共識,則不能保證一致性和正確性赦肋,無法被鏈上所有參與者接受块攒;共識后的數(shù)據(jù)不被多方存儲励稳,意味著數(shù)據(jù)有可能丟失或被單方篡改,更談不上冗余可用囱井。

除此之外驹尼,如果僅僅是調(diào)用接口查詢一下,沒有改變?nèi)魏捂溕蠑?shù)據(jù)庞呕,也不需要進行共識確認新翎,則不算“上鏈”。

  • Fabric聯(lián)盟鏈的上鏈后可不可刪除住练?
    也不能料祠,但是它有專門delstate接口,但是這個接口不是真的刪除了鏈上數(shù)據(jù)澎羞,只是隱藏鏈上的數(shù)據(jù)髓绽,你查詢將不能正常查到。而且區(qū)塊鏈世界狀態(tài)可以進行妆绞,出的塊都是空塊顺呕。
image.png
  • 文件能不能上鏈西乖?
image

這是個非常高頻的問題澎怒,經(jīng)常被問到部逮。這里的文件一般指圖像迅诬、視頻罐呼、PDF等盐碱,這種非結(jié)構化的數(shù)據(jù)姊氓,也可以泛指大體量的數(shù)據(jù)集葛家,上鏈可信分享的目的技羔,是使接受者可以驗證文件的完整性僵闯、正確性。

結(jié)構化數(shù)據(jù)能如果數(shù)據(jù)特別大藤滥,更新頻率特別高鳖粟,能不能鏈下保存,鏈上通過哈希關聯(lián)拙绊?
結(jié)構化數(shù)據(jù)一定是非結(jié)構化數(shù)據(jù)經(jīng)過處理后向图,保存到數(shù)據(jù)庫進行了結(jié)構化處理。比如文檔數(shù)據(jù)标沪,通過數(shù)據(jù)庫處理后變成結(jié)構化表格數(shù)據(jù)榄攀。可以將處理后的表數(shù)據(jù)金句,整體打包進行內(nèi)容hash檩赢,這個內(nèi)容hash值可以存放到區(qū)塊里面,區(qū)塊根據(jù)hash索引到元數(shù)據(jù)趴梢。

常見的場景里漠畜,文件共享一般是局部的币他、點對點的,而不是廣播給所有人憔狞,讓區(qū)塊鏈無差別地保存海量數(shù)據(jù)蝴悉,會不堪重負。所以瘾敢,合理的做法是計算文件的數(shù)字指紋(MD5或HASH)拍冠,并與其他一些可選信息一起上鏈,如作者簇抵、持有人簽名庆杜、訪問地址等,單個上鏈信息并不多碟摆。

文件本身則保存在私有的文件服務器晃财、云文件存儲、或者IPFS系統(tǒng)里典蜕,這些專業(yè)方案更適合維護海量文件和大尺寸文件断盛,容量更高、成本更低愉舔。注意钢猛,如果文件的安全級別到了“一個字節(jié)都不能泄露給無關人等”的程度,那么應慎用IPFS這種分布式存儲的方案轩缤,優(yōu)選私有存儲方式命迈。

需要分享文件給指定的朋友時,可以走專用傳輸通道點對點的發(fā)送文件火的,或者授權朋友到指定的URL下載壶愤,可以和區(qū)塊鏈的P2P網(wǎng)絡隔離,不占用區(qū)塊鏈帶寬卫玖。朋友獲得文件后公你,計算文件的MD5、HASH假瞬,和鏈上對應的信息進行比對,驗證數(shù)字簽名迂尝,確保收到了正確且完整的文件脱茉。

這種方案,文件在鏈上“確權”垄开、“錨定”和“尋址”琴许,明文在鏈下傳輸并與鏈上互驗,無論是成本溉躲、效率榜田、還是隱私安全都取得了平衡益兄。

  • 怎么批量查詢和分析數(shù)據(jù)?
image

對區(qū)塊鏈上的數(shù)據(jù)進行分析是自然的需求箭券,比如“某個賬戶參與哪些業(yè)務流程净捅、完成了多少筆交易、成功率如何”辩块,“某個記賬節(jié)點在一段時間內(nèi)參與了多少次區(qū)塊記賬蛔六、是否及時、有否作弊”废亭,這些邏輯會牽涉到時間范圍国章、區(qū)塊高度、交易收發(fā)雙方豆村、合約地址液兽、事件日志、狀態(tài)數(shù)據(jù)等維度掌动。

目前區(qū)塊鏈底層平臺一般是采用“Key-Value”的存儲結(jié)構抵碟,其優(yōu)勢是讀寫效率極高,但難以支持復雜查詢坏匪。

其次拟逮,復雜查詢邏輯一般是在區(qū)塊生成后進行,時效性略低适滓,且并不需要進行多方共識敦迄,有一定的“離線”性。

最后凭迹,數(shù)據(jù)一旦“上鏈”罚屋,就不會改變,且只增不減嗅绸,數(shù)據(jù)本身有明顯特征(如區(qū)塊高度脾猛、互相關聯(lián)的HASH值、數(shù)字簽名等)可以檢驗數(shù)據(jù)的完整性和正確性鱼鸠,在鏈上還是鏈下處理并無區(qū)別猛拴,任何擁有完整數(shù)據(jù)的節(jié)點都能支持獨立的復雜查詢。

于是蚀狰,我們可以將數(shù)據(jù)完整地從鏈上導出愉昆,包括從創(chuàng)世塊開始到最新的所有區(qū)塊、所有交易流水和回執(zhí)麻蹋、所有交易產(chǎn)生的事件跛溉、狀態(tài)數(shù)據(jù)等,通通寫入鏈外的關系型數(shù)據(jù)庫(如MySQL)或大數(shù)據(jù)平臺,構建鏈上數(shù)據(jù)的“鏡像”芳室,然后可以采用這些引擎強大的索引模型专肪、關聯(lián)分析、建模訓練堪侯、并行任務能力嚎尤,靈活全面地對數(shù)據(jù)進行查詢分析。

區(qū)塊鏈瀏覽器抖格、運營管理平臺诺苹、監(jiān)控平臺、監(jiān)管審計等系統(tǒng)雹拄,都會采用這種策略收奔,鏈上出塊,鏈下及時ETL入庫滓玖,進行本地化地分析處理后坪哄,如需要和鏈上進行交互,再通過接口發(fā)送交易上鏈即可势篡。

一般來說翩肌,多方見證的線上協(xié)同、公共賬本管理禁悠、一定要分享給全體的關鍵數(shù)據(jù)(或數(shù)據(jù)的HASH)都是可以放到鏈上的念祭,但相關的一些前置或后續(xù)的檢驗、核算碍侦、對賬等邏輯可以適當拆解到鏈下粱坤。

  • “鏈下”又是什么?
    某個業(yè)務服務本身和區(qū)塊鏈并不直接相關瓷产,或其業(yè)務流程無需參與共識站玄,所生成的數(shù)據(jù)也不寫入節(jié)點存儲,那么這個業(yè)務服務稱為“鏈下服務”濒旦,無論它是否和區(qū)塊鏈節(jié)點共同部署在一臺服務器株旷,甚至和節(jié)點進程編譯在一起。

  • 數(shù)據(jù)上鏈數(shù)據(jù)庫之分:

獨立式數(shù)據(jù)庫尔邓,如 MySQL晾剖、Oracle 是通常理解的數(shù)據(jù)庫,獨立式數(shù)據(jù)庫作為獨立的進程運行铃拇,需要單獨部署和啟停钞瀑。獨立式數(shù)據(jù)庫可以與區(qū)塊鏈節(jié)點部署在同一臺服務器,或者部署在不同的服務器慷荔,還支持分布式、集群化的部署。無論何種部署方式显晶,獨立式數(shù)據(jù)庫都是區(qū)塊鏈節(jié)點的存儲組件贷岸,隸屬于區(qū)塊鏈節(jié)點,與區(qū)塊鏈網(wǎng)絡無關磷雇。嵌入式數(shù)據(jù)庫如 LevelDB偿警、RocksDB,它們以動態(tài)依賴庫或靜態(tài)依賴庫的方式唯笙,與區(qū)塊鏈節(jié)點整合在同一個進程中螟蒸,同時啟停,用戶不會明顯感受到它們的存在崩掘。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末七嫌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子苞慢,更是在濱河造成了極大的恐慌诵原,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挽放,死亡現(xiàn)場離奇詭異绍赛,居然都是意外死亡,警方通過查閱死者的電腦和手機辑畦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門吗蚌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纯出,你說我怎么就攤上這事蚯妇。” “怎么了潦刃?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵侮措,是天一觀的道長。 經(jīng)常有香客問我乖杠,道長分扎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任胧洒,我火速辦了婚禮畏吓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卫漫。我一直安慰自己菲饼,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布列赎。 她就那樣靜靜地躺著宏悦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饼煞,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天源葫,我揣著相機與錄音,去河邊找鬼砖瞧。 笑死息堂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的块促。 我是一名探鬼主播荣堰,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼竭翠!你這毒婦竟也來了振坚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逃片,失蹤者是張志新(化名)和其女友劉穎屡拨,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體褥实,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡呀狼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了损离。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哥艇。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖僻澎,靈堂內(nèi)的尸體忽然破棺而出貌踏,到底是詐尸還是另有隱情,我是刑警寧澤窟勃,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布祖乳,位于F島的核電站,受9級特大地震影響秉氧,放射性物質(zhì)發(fā)生泄漏眷昆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一汁咏、第九天 我趴在偏房一處隱蔽的房頂上張望亚斋。 院中可真熱鬧,春花似錦攘滩、人聲如沸帅刊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赖瞒。三九已至女揭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冒黑,已是汗流浹背田绑。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工勤哗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抡爹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓芒划,卻偏偏與公主長得像冬竟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子民逼,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355