比特幣區(qū)塊數(shù)據(jù)結(jié)構(gòu)之關(guān)系數(shù)據(jù)庫設(shè)計

  比特幣區(qū)塊的存儲是通過扁平化的區(qū)塊文件(也可理解為區(qū)塊“數(shù)據(jù)庫”)以及索引數(shù)據(jù)庫實現(xiàn)的,由于不是使用通用的關(guān)系型數(shù)據(jù)庫,理解起來比較困難,通過關(guān)系型數(shù)據(jù)庫設(shè)計是否會更好理解?然后再通過編程,將區(qū)塊數(shù)據(jù)提取插入到關(guān)系型數(shù)據(jù)庫中,例如MSSQLServer、MySQL等數(shù)據(jù)庫中。最后還可以通過各種編程語言實現(xiàn)區(qū)塊瀏覽器或與各種應(yīng)用業(yè)務(wù)結(jié)合。

  設(shè)計初稿如下:

一、E-R圖設(shè)計

二、數(shù)據(jù)表簡要設(shè)計

1、區(qū)塊表:ID(主鍵:偏移量)、nVersion、hashPrevBlock、hashMerkleRoot、nTime、nBits、nNonce、vTxCount

2、交易表:ID(主鍵)、BlockHeaderID(外鍵關(guān)聯(lián))、TxNo、nVersion、InCount、OutCount、LockedTime

3、輸入表:ID(主鍵)、TxID(外鍵關(guān)聯(lián))、TxInNo、TxOutHash、TxOutIdx、scriptSig、nSequence

4、輸出表:ID(主鍵)、TxID(外鍵關(guān)聯(lián))、TxOutNo、TxOut_nValue、scriptPubKey

5、索引表:ID(主鍵)、phashKey(索引)、pprevID、pnextID、phashBlock、nFile(區(qū)塊表)、nBlockPos(nBlockID)、nHeight、nVersion、hashMerkleRoot、nTime、nBits、nNonce、hashPrev、hashNext

6、錢包表:

    ???

7、最優(yōu)鏈表:

   ?????

  說明:通過設(shè)計觸發(fā)器,控制表中的數(shù)據(jù)只能添加、不能刪除和修改。

   ? ? ? 添加數(shù)據(jù)時,通過程序(挖礦)控制寫入,同時,寫入,驗證鏈上數(shù)據(jù)是否被篡改。

--------------------------------------------------------------------------------------

8、業(yè)務(wù)數(shù)據(jù)表

  將增、刪、改、查等業(yè)務(wù)操作,作為一筆交易,交由管理員審核或自動審核。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容