大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

要說什麼人有錢,當然是中國大媽,永遠在屯黃金,為什麼大媽們如此有錢,每一個愛屯黃金的大媽的身後,都有一個愛挖礦的大叔。什麼是挖礦?挖礦需要了解哪些知識?下面講給大家講解IPFS挖礦的重要部分IPFS。

IPFS對象通常由Base58編碼的散列引用。例如,我們來看看使用IPFS命令。

例如,讓我們使用IPFS命令行工具來查看散列QmarHSr9aSNaPSR6G9KFPbuLV9aEqJfTk1y9B8pdwqK4Rq的IPFS對象:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

在上面的例子中,前面兩個字節的十六進制數是1220,其中12表示這是SHA256哈希函數,而20是哈希的長度(以字節為單位) - 32個字節。

數據和已命名的鏈接為IPFS對象的集合提供了一個Merkle DAG - DAG(指向無環圖)的結構,Merkle表示這是一個使用加密哈希來加密內容的加密認證的數據結構。

為了可視化圖形結構,我們將通過節點中的數據以圖形形象化IPFS對象,並且鏈接將圖形邊緣定向到其他IPFS對象,其中鏈接的名稱是圖形邊緣上的標籤。上面的例子可視化如下:

現在我們將給出可以由IPFS對象表示的各種數據結構的示例。

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

文件系統

IPFS可以輕鬆地表示由文件和目錄組成的文件系統

小文件

一個小文件(<256 kB)由一個IPFS對象來表示,其中數據是文件內容(加上一個小的頁眉和頁腳)並且沒有鏈接,即鏈接數組是空的。請注意,文件名不是IPFS對象的一部分,因此具有不同名稱和相同內容的兩個文件將具有相同的IPFS對象表示形式,並因此具有相同的散列。

我們可以使用命令ipfs add將一個小文件添加到IPFS:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

我們可以使用ipfs cat查看上述IPFS對象的文件內容:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

用ipfs對象查看底層結構get yield:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

我們將這個文件可視化如下:

大文件

大文件(> 256 kB)由指向<256 kB的文件塊的鏈接列表表示,並且只有極小的數據說明此對象表示大文件。 文件塊的鏈接具有空字符串作為名稱。

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

目錄結構

目錄由代表文件或其他目錄的IPFS對象的鏈接列表表示。 鏈接的名稱是文件和目錄的名稱。 例如,考慮目錄test_dir的以下目錄結構:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

文件hello.txt和my_file.txt都包含字符串Hello World!\ n。 文件testing.txt包含字符串Testing 123 \ n。

將此目錄結構表示為IPFS對象時,它看起來像這樣:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

注意包含Hello World!\ n的文件的自動重複數據刪除,此文件中的數據只存儲在IPFS中的一個邏輯位置(由其哈希尋址)。

IPFS命令行工具可以無縫地跟蹤目錄鏈接名稱來遍歷文件系統:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

版本化的文件系統

IPFS可以表示Git使用的數據結構,以允許版本化的文件系統。 Git提交對象在Git Book中有描述。 IPFS Commit對象的結構在撰寫本文時尚未完全明確,討論正在進行中。

Commit對象的主要屬性是它有一個或多個帶有名稱parent0,parent1等指向前一條的鏈接,和一個連接名稱目標(這就是所謂的樹在git)指向文件系統結構被提交。

我們作為一個例子,我們以前的文件系統的目錄結構,以及兩個承諾:第一個承諾是原來的結構,並在第二承諾我們更新文件my_file.txt。

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

注意這裡我們有自動重複數據刪除,因此在第二新對象將是主目錄,該目錄我的_你和更新的文件我_ file.txt。

blockchains

這是最令人興奮的情況下使用規一。在過去的一個blockchain塊總是與哈希從後來的自然的DAG結構。更先進的blockchains像伊斯利恩Blockchain也有相關狀態數據庫具有帕特麗夏梅克爾樹的結構,也可以模擬使用規對象。

我們假設一個簡單的blockchain每個塊包含以下數據模型:

一系列的交易對象

一個鏈接到前一個塊

一個國家的樹/哈希數據庫

該blockchain可以模擬在規如下:

大媽屯黃金,大叔猛挖礦,齊心協力把錢賺

我們的重複數據刪除的增益將狀態數據庫規 - 兩塊只有國家項目已經改變,需要顯式地存儲。

這裡有一個有趣的點之間的數據存儲在blockchain散列和存儲在blockchain數據的差異。在伊斯利恩平臺相關國家數據庫的數據存儲付出相當大的費用,為了減少國家數據庫膨脹(“blockchain膨脹”)。因此,這是一個常見的設計模式。

如果與它相關聯的狀態數據庫blockchain已經規在儲存雜湊在blockchain在blockchain數據存儲變得有些模糊的區別表示,在這種情況下,如果有人儲存在blockchain的IPFS鏈接我們可以無縫地點擊這個鏈接訪問數據,如果數據被存儲在blockchain本身。

我們仍然可以區分鏈斷鏈數據存儲,但是。我們通過看什麼礦工需要的過程創建一個新的塊時。在當前的伊斯利恩網絡礦工需要交易的過程中,將更新狀態數據庫。為此他們需要為了獲得充分的狀態數據庫能夠更新它。

因此在blockchain狀態數據庫代表規我們仍需要標籤數據作為“鏈”或“斷鏈”。“鏈”的數據會保留在本地礦工為了我的需要,而這個數據會被交易的直接影響。“斷鏈”的數據會被更新的用戶不需要感動的礦工。


分享到:


相關文章: