資料庫那麼便宜,為何還要死貴的區塊鏈來儲存資料?

2021-09-20 11:08:04 字數 1840 閱讀 5789

策劃|tina編譯|姚佳靈

區塊鏈是一項非常誘人的技術,它是這十年來最受關注的話題之一。最近某網際網路大佬問了乙個問題:「為什麼資料庫裡存一點資料這麼廉價,而在區塊鏈上存一點資料這麼昂貴?」區塊鏈上存的是經過大家共識的資料,所以相對的貴就是它的特點。那什麼樣的資料應該使用具有比較高成本的區塊鏈來儲存呢?

對等檔案系統(peer to peer file system),如 ipfs

去中心化雲檔案儲存,如 storj,sia,ethereum,swarm 等等

分布式資料庫,如 apache cassandra,rethink db 等等

巨鏈資料庫(bigchaindb)

ties db, 分布式結構化資料儲存的第乙個公共資料庫

分布式資料庫:因為我們需要儲存結構化的資料,並尋求高階查詢能力,所以我們可以看一下分布式 nosql 資料庫。為什麼是 nosql 呢?因為有 cap 定理的限制,嚴格的事物性 sql 資料庫不能真正地分布。為了讓資料庫分布,我們不得不要麼犧牲一致性,要麼犧牲可用性。nosql 資料庫選擇了可用性而不是一致性,代替一致性的是所謂「最終一致性」,即在網路中所有的資料庫節點在一段時間之後會變得一致。這樣的資料庫有很多成熟的實現,如 mongodb,apache cassandra,rethinkdb 等等。它們非常好——速度快、可擴充套件、容錯、支援豐富的查詢語言,但是對我們的應用程式來說有致命缺點。它們不是拜占庭證明(byzantine-proof)。集群中的所有節點相互之間完全信任。因此,任何乙個惡意節點就能毀掉整個資料庫。

巨鏈資料庫(bigchaindb):另外乙個名為巨鏈資料庫的專案聲稱可以解決資料儲存和交易速度問題。它也是區塊鏈,擁有巨大的資料容量和非常快的交易。讓我們看看它是怎麼做到的。巨鏈資料庫建立於 rethinkdb 集群之上。巨鏈資料庫用它來儲存所有的區塊和交易。這是它顯示出如此高的吞吐量的原因,它是基礎 nosql 資料庫中的其中乙個。所有的巨鏈資料庫節點(用 bdb 表示)連線到集群,擁有對資料庫的完全寫訪問許可權。這裡出現了乙個問題,整個巨鏈資料庫不是拜占庭證明的!任何惡意的 bdb 節點可以破壞 rethinkdb 集群。巨鏈資料庫團隊意識到這個問題,承諾將來會解決這個問題,然而它是這個架構的基石,要改動它幾乎是不可能的。無論如何,巨鏈資料庫可能對私有區塊鏈很有用。但是,如果要避免混淆,它應該被叫做巨型私有區塊鏈(bigprivateblockchain)。它不是公共儲存的選項。

ties db:這是目前好的公共資料庫的可選項。最接近理想的是 nosql 資料庫。它們唯一缺乏的是拜占庭容錯(byzantine fault tolerance)。ties.network 資料庫:ties.network 是對 cassandra 資料庫的深度修改,提供了乙個更好的解決方案:tiesdb 繼承了基礎 nosql 資料庫的大部分功能,並增加了拜占庭容錯和激勵。有了這些功能,它可以成為公共資料庫,並通過智慧型合約在 ethereum 和其他區塊鏈上啟用功能豐富的應用程式。任何使用者都有資料庫寫入許可權。但是,使用者由他們的公鑰識別,同時,所有的請求有簽名。建立之後,記錄記住它的建立者,建立者則成為記錄的所有者。之後,記錄只能被記錄所有者修改。每個人都可以閱讀所有的記錄,因為資料庫是公開的。根據請求和複製檢查所有的許可權。額外的許可權可以通過智慧型合約管理。

位元幣和其他加密貨幣的價值幾乎完全由市場需求決定,因為市場上的各種幣的數量是可**的,並且不受任何實物商品的約束。

主要是個人而不是大型機構在交易位元幣。

影響位元幣價值的事件首先並主要在社交**上傳播。

所有交易的詳細記錄儲存在單個「檔案」或區塊鏈中。 這提供了從開始到結束的交易完整概覽,消除了對多個系統的需求。

個人可以管理和控制他們的個人資料,無需第三方中介或集中儲存庫。

oracle資料庫和mysql資料庫的區別

1 mysql裡用雙引號包起字串,oracle裡只可以用單引號包起字串。2 oracle是大型資料庫,而mysql是中小型資料庫。3 mysql的主鍵一般使用自動增長型別,在建立表時只要指定表的主鍵為auto increment,在插入記錄時,不需要再指定該記錄的主鍵值,主鍵將自動增長 oracle...

資料庫的頁和區

現在給大家介紹sql server 2008 r2如何儲存資料 sql server 中資料儲存的基本單位是頁。為資料庫中的資料檔案 mdf 或 ndf 分配的磁碟空間可以從邏輯上劃分成頁 從 0 到 n連續編號 磁碟 i o 操作在頁級執行。也就是說,sql server 讀取或寫入所有資料頁。區...

告訴你 SQL 資料庫與 NoSQL 資料庫的區別

簡單來說 sql 資料庫和 nosql 資料庫有著共同的目標 儲存資料,但儲存的方式不同 每個表規定了固定的字段,各個欄位有固定的型別 而 nosql 使用類 json 的鍵值對儲存資料 還有使用陣列 圖形的 乙個記錄或者說乙個文件可以是這樣的格式 key 1 也可以是這樣的格式 key 2 所有的...