官术网_书友最值得收藏!

0.4 數據層

區塊鏈作為一個分布式系統用于解決特定場景的一些問題,從本質來看,區塊鏈是一個“狀態機”。從技術角度來看,狀態是指一個事物在某一特定的時間點所保存的信息。狀態機是指記錄某一時刻事物所處狀態的機器或設備。給定某些輸入,狀態機的狀態可能會發生改變,同時狀態機會對這些發生改變的狀態提供相應的輸出,對于區塊鏈這種狀態機來說,這些輸出可以看作是不可改變的。

比特幣系統、以太坊和超級賬本在區塊鏈數據結構、數據模型和數據存儲方面各有特色。在數據模型的設計上,比特幣系統采用了基于交易的模型,每筆交易由表明花費來源的輸入和表明花費去向的輸出組成,所有交易通過輸入與輸出鏈接在一起,因此每一筆交易都可追溯。以太坊與超級賬本需要支持功能更為豐富的通用應用,因此采用了基于賬戶的模型,可基于賬戶快速查詢當前余額或應用狀態。

在數據存儲的設計上,因為區塊鏈數據類似于傳統數據庫的預寫式日志,因此通常按日志文件格式存儲。由于系統需要大量基于哈希值的鍵值檢索(如基于交易哈希值檢索交易數據、基于區塊哈希值檢索區塊數據),索引數據和狀態數據通常存儲在鍵值數據庫中,如比特幣系統、以太坊和超級賬本都用LevelDB存儲索引數據。

主站蜘蛛池模板: 沅陵县| 淮滨县| 东丰县| 垦利县| 鄢陵县| 神木县| 建始县| 辰溪县| 甘洛县| 于都县| 娄底市| 镇巴县| 舟山市| 蚌埠市| 张家川| 武清区| 吕梁市| 搜索| 永寿县| 嫩江县| 襄城县| 丰顺县| 沈丘县| 浠水县| 通城县| 眉山市| 陕西省| 乌拉特前旗| 建德市| 定日县| 宁陵县| 永川市| 眉山市| 临沧市| 白玉县| 佛学| 恭城| 萍乡市| 台南县| 九龙坡区| 灵石县|