每日最新頭條.有趣資訊

這有一份區塊鏈的終極指南,請接收!

雷鋒網AI金融評論按:您想知道區塊鏈到底是什麽嗎?想了解區塊鏈的基本原理嗎?想知道區塊鏈技術到底如何發展嗎?本指南將為您一一解答。您還可以親身體驗構建屬於您自己的分布式應用程式(DApp)。接下來,您只需按照我們為您準備的分步說明逐步操作即可。本文來自howtotoken,一份區塊鏈應用開發指南。雷鋒網AI金融評論編譯如下:

指南目錄

1. 什麽是區塊鏈?

1.1 區塊鏈的關鍵組成部分

1.2 區塊鏈系統的類型

1.3 區塊鏈的演變

2. 區塊鏈發展簡介

2.1  DApp 開發的主要問題

2.2 區塊鏈上的 DApp 開發工具

2.3 如何開發 DApp

3. 深入探索

1. 什麽是區塊鏈?

區塊鏈是一個分布式的且不斷擴大的數據塊或數據表,每個數據記錄都被加密。每個區塊包含所有或部分最近交易的資訊,一個交易計算機,以及區塊鏈版本號,和幻數——前一區塊的加密哈希函數(添加一個新區塊時,由電腦隨機為新區塊給出幻數,所有每個區塊都是獨一無二的)。

由於每個區塊都有前一個區塊的加密散列值,時間戳和交易數據,區塊鏈的資訊很容易被驗證並且無法刪除。當數據記錄在一個區塊上,在後續區塊中不能修改前面區塊的數據,因為區塊鏈是分布式的,並且新區塊一般採用點對點的網絡管理方式。

簡單地說,區塊鏈與 Google 文檔非常相似。只有有權訪問共享文檔的人才可以修改文檔,並且所有人可以立即看到更改後的文檔。但是,區塊鏈與 Google 文檔相比,有兩個主要的特點:

在區塊鏈中,不能刪除或編輯已經發布的資訊。您可以添加新的資訊,但不能刪除或更改已添加到系統中的任何資訊。

區塊鏈是分布式的,沒有專設權威機構來控制它,它被系統中的每個使用者所擁有。Google 文檔存儲於 Google 伺服器,原則上說,Google 是管理這些文檔的權威機構。

為了讓您更好地了解區塊鏈,我們將解釋區塊鏈的主要組成部分,區塊鏈的類型以及區塊鏈系統是如何誕生的。

1.1 區塊鏈的關鍵組成部分

所有區塊鏈系統都包含以下部分:

應用節點

每個區塊鏈系統都有自己的節點應用程式,用戶需要安裝應用程式才能訪問區塊鏈。比特幣錢包就是一個例子。

區塊鏈生態系統有兩種不同類型的節點應用程式:輕節點和全節點。輕節點對於適用於簡單訪問區塊鏈並在系統內進行交易的用戶,若需要更多服務則用全節點。兩者之間的主要區別在於全節點需要下載完整的區塊鏈,而輕節點只需下載驗證數據真實性的區塊頭即可。區塊鏈上的大部分節點都是輕節點。全節點雖然佔用更多的存儲太空並消耗更多的流量,卻可以為用戶提供更多的安全保障。

共享分類账

它是在節點應用程式內部發揮管理作用的數據結構。當用戶安裝節點應用程式時,內部的分類账數據結構可以查看該區塊鏈上所有區塊和交易的資訊。

每個區塊鏈生態系統只存在一個共享分類账,所以的節點應用程式都使用同一個共享分類账。例如,有很多客戶端(節點應用程式)允許訪問以太坊,並且這些客戶端均可以同時運行,但您通過所有客戶端訪問的以太坊分類账都是相同的。

共識算法

共識算法為區塊鏈生態系統提供了基本規則,一部分節點應用程式也應用共識算法。共識算法可以確定區塊鏈系統為所有節點獲取共享分類账的方式。區塊鏈生態系統根據需要和目的使用不同的共識算法。比特幣需要幾分鐘才能達成對於分類账的共識(通過全節點驗證分類账),但 Ripple 能保證在短短幾秒內達成共識。

驗證分類账的主要方法是通過時間證明,工作量證明和權益證明。在允許他們參與建立共識之前,可以使用不同的方法來驗證節點。建立不同的共識算法,所需的共識算法建立費用和交易費用會有所不同。

1.2 區塊鏈系統的類型

區塊鏈生態系統主要有兩種類型:公共和私有。

在公共區塊鏈中,只要用戶安裝了相關區塊鏈節點應用程式,便可以訪問系統並在其中進行交易。眾所周知的比特幣和以太坊便是公共區塊鏈。

在聯盟區塊鏈中,用戶參與前需要通過驗證。例如,網絡啟動器需要對使用網絡的新用戶進行驗證。所以只有“已驗證”或“受邀”的用戶才能訪問系統。聯盟鏈通常應用於企業的商業運營。目前,最流行在 Hyperledger Fabric 平台上構建區塊鏈聯盟。在 IBM 網站上有基於 Hyperledger Fabric 平台的聯盟鏈構建案例。

公共區塊鏈適合普通用戶使用,私有區塊鏈一般供公司內部使用。

1.3 區塊鏈的演變

2008 年,Satoshi Nakamoto 首次推出比特幣。但是,Nakamoto 並不是第一個想到使用數字現金或者使用分布式統進行直接交易的人。可以說比特幣是站在密碼領域這個巨人的肩膀上的。Stuart Haber 和 W. Scott Stornetta 於 1991 年描繪了一個與區塊鏈基本相似的密碼保護鏈塊。

1997  年 Hashcash 工作量證明算法問世,目前這個算法是比特幣挖礦系統的核心。Wei Dai 早在 1998 年就提出了一個名為 “B-Money” 的分散式電子現金系統,該系統通過工作量來“創造”金錢。Satoshi Nakamoto 創作的一篇關於比特幣的文章中引用了  B-Money。然而,Nakamoto 是第一個將這些成就融合在一起的人,並將分布式點對點系統(現稱為區塊鏈)帶入生活,從而實現數字貨幣交易。

從 2008 年問世至今,區塊鏈生態系統發生了許多變化。這些系統分別是區塊鏈技術的幾個“代”。區塊鏈生態系統總共有四代,每一代都試圖解決不同的問題,為區塊鏈技術增加新的功能。接下來我們將更詳細地介紹每一代區塊鏈生態系統,以便讓您了解四代區塊鏈系統之間的不同以及新一代的系統到底帶來了什麽樣的新功能。

第一代

Bitcoin, Litecoin, Monero, Dash 等均為第一代區塊鏈系統。

第一代區塊鏈系統是第一批應用點對點分布式網絡的系統。Satoshi Nakamoto 在比特幣的白皮書中提到,這些系統可以在兩方之間直接進行“電子現金”交易,無需通過第三方金融機構。第一代區塊鏈作為完美的開源支付系統,無需第三方參與。

第二代

Ethereum,NEO,Qtum 等均為第二代區塊鏈系統。

系統可以為區塊鏈添加了定製交易的智能合約技術,還擴大了區塊鏈上的交易記錄,融入了編程語言。以太坊為用戶提供了創建“智能合約”的機會,使用 Solidity 語言添加幾行代碼來設定區塊鏈系統內可定製交易的監管規則。

第三代

Bitshares,Lisk,ARK 等均為第三代區塊鏈系統。

第三代區塊鏈主要解決可擴展性的問題。隨著比特幣和其他系統的用戶量不斷壯大,需要進行大量交易,系統出現了低效率的問題。

為了解決擴展問題,第三代區塊鏈在共識算法中引入了權益證明方法,該方法比傳統的權益證明或價值證明方法更高效,更簡潔。簡而言之,它的工作原理如下:系統上所有的節點都有相同的投票權,然後他們選舉出少量的“證人”。證人是挖礦和監控網絡的人。獲得挖礦機會是證人參與監測和建立共識的動力。通過少數目擊者建立共識比通過所有節點建立共識更快,更高效,從而解決了可擴展性問題。

第四代

IOTA,EOS 等均為第四代區塊鏈系統。

這些系統也解決了可擴展性這個問題,但解決方式與上一代不同。

EOS 通過構建一個“類似作業系統”的網絡來解決可擴展性問題,該網絡被委託權益證明,來實現水準擴展和垂直擴展。IOTA引入了一個新的區塊鏈系統來解決問題,新的區塊鏈系統完全不同於已經存在的區塊鏈系統。新的區塊鏈系統應用 Tangle 網絡,是一種無區塊,可擴展,輕量的分散式分類账。因為系統的共識算法,並且Tangle網絡的內在組成決定網絡可以實現自我調節。

值得注意的是,第四代區塊鏈仍然沒有達成共識。有些人聲稱區塊鏈共識已經出現,而另有一些人說像 EOS 和 IOTA 這樣的項目並不是新一代的區塊鏈技術,因為它們只是解決了與第三代區塊鏈相同的問題。

您可以關注另一個項目:閃電網絡(Lightning Network)。於 2018 年 3 月 19 日發布測試版,閃電網絡正在引入非連鎖交易。基本上,目前所有基於區塊鏈的項目都使用鏈上交易:用戶之間的所有交易資訊都被寫入區塊鏈網絡的公共分類账中。將交易資訊寫入分類账中需要時間,並且只有通過全節點才能驗證每筆交易。這就是為什麽交易處理時間相對較長(比特幣至少需要 10 分鐘),而且交易費用高。

閃電網絡是一個“第二層”網絡,將在區塊鏈的基礎上進行脫鏈交易。工作方式是這樣的:兩個願意進行交易的用戶將通過受保護的支付管道直接進行交易(這是中本聰在比特幣開發初期所設想的)。交易之後,這兩個用戶會將一些加密貨幣放入多重簽名地址,並更改其他用戶從該地址兌換的金額。每個參與方都可以隨時關閉這個支付管道,兩個用戶的最新餘額將被寫入公共账中。這項技術可為用戶提供立即付款服務,減少交易費用。並且保護了用戶隱私,因為並非所有的小額交易都被寫入公共账中,只有最後一筆餘額記錄公共账。雖然閃電網絡仍處於測試階段,但這個項目非常具有前景。誕生的阿爾特幣可能會“殺死”比特幣,因為更便宜,更快速的交易就是它的主要優勢。

2. 區塊鏈發展簡介

我們已經了解了什麽是區塊鏈,接下來讓我們來仔細研究一下區塊鏈的發展。 區塊鏈技術最受歡迎的應用之一是 Dapps (分散式應用程式)。這些基本都是適用於區塊鏈上的應用程式。聽上去似乎很酷!

你也許會想,在區塊鏈系統飽受關注的情況下,為什麽只有這麽少的 DApps 可用?答案很簡單:並不是所有即將成功開發 DApp 的公司都已經把所有組件準備好。

2.1 DApp 開發面臨的主要問題

DApp 開發需要類似於網絡應用程式開發所需的工具:計算,檔案存儲,外部數據,貨幣化和支付。到 2017 年底,大約已經籌備完成 70%,貨幣化和支付工具已經開發完全並可以開始運營,但計算,檔案存儲和外部數據組件仍在開發中。

在很多人使用的 DApp 時,堆棧開發相關的問題才會變得很重要,需要良好的可擴展性來支撐。所以這些問題暫時不會阻止 DApp 的創建,只是目前難以擴展它。這個行業發展非常迅速,今年早些時候堆棧可能會全面完成,我們便可以看到 DApp 數量的爆炸式增長。如果你也想參與 DApp 的未來,那你需要從開發簡單的 DApps 開始。我們希望這篇指南能為您提供幫助。

正如您在下文將要看到的那樣,創建一個簡單的 DApp 是可以實現的,並沒有那麽困難。我們將指導您完成這個過程,以便您可以獲得區塊鏈的實踐經驗。本指南將會一步一步地進行指導,即使您之前沒有任何編程經驗,您也能夠理解每個步驟。當然,如果您曾經使用過 Solidity 或者嘗試編寫過一些智能合約,那對於創建 DApp 來說,肯定有很大幫助。

2.2 在區塊鏈上開發 DApp 需要的工具

首先,我們來看看 DApp 開發需要的主要工具:

Geth:用於運行以太坊全節點的命令行接口。簡而言之,這是一個連接以太坊區塊鏈的應用程式。以太坊在此為所有作業系統提供安裝說明。您將需要它,因為以太坊區塊鏈是開發 DApps 的主要平台。

Solidity:在以太坊編寫智能合約的編程語言。您可以在其網站上找到安裝說明。您還需要安裝 Solidity 編譯器才能使用 Solidity 語言編寫代碼。

Truffle: DApps 的開發環境。您將需要創建,運行和測試所有分散的應用程式。Truffle 的安裝方法見此超鏈接。

Ganache:這是一個區塊鏈模擬器。您可以使用它來測試您的 DApp,而無需連接到真實的以太坊區塊鏈上。此超鏈接可安裝 Ganache。

2.3 如何開發 DApp

現在讓我們來看看開發 DApp 需要進行的主要步驟。不會涉及太多關於編碼的細節,我們的目標是概述 DApp 開發到底是什麽樣子的。如果您想按照所有步驟進行編碼,通過閱讀每個步驟中的超鏈接也可完成。

1.安裝 Geth。如上所述,您將需要它連接到以太坊的區塊鏈。

2.啟動以太坊節點,並連接其他節點,開始下載區塊鏈。當您安裝了 Geth 時,可以通過命令行完成區塊鏈的下載。區塊鏈下載大約需要10-15分鐘,具體時間取決於您的互聯網網速。在控制台的輸出中,您可以看到區塊號。下載完成後,輸出中的區塊號應接近此頁面上的區塊號。

3.如果你還沒有安裝 Truffle,那麽現在安裝。

4.創建一個 Truffle 項目,Truffle 將創建運行整個堆棧 DApp 所需的檔案和目錄,還會創建一個示例應用程式。

5.下一步是使用 Solidity 語言創建一個智能合約代碼。這裡有一個案例,關於如何創建一個簡單的“投票”智能合約。

6.您需要用 Solidity 語言將代碼添加到 Truffle 項目中。這裡可以在這裡找到詳細的解釋。

7.繼續開發您的智能合約。為此,您需要一個測試账戶和一些以太幣。更多關於設定账戶和獲取以太幣的詳細資訊。

8.當你有一個帳戶和以太幣時,在區塊鏈上運行您已經準備好的合約。這裡有個關於在測試網絡上開發合約的教程。這個過程需要幾分鐘時間,具體時間取決於您合約的複雜程度和您電腦的容量。

9.試著通過 Truffle 您的合約。如果一切正常運行,說明您的合約是完全正常的,您可以繼續下一步。

10.啟動伺服器。如果一切正確,您將看到一個網頁,顯示您在合約中編寫的內容,現在您便可以運行您的 DApp。

如果您已經按照教程中的所有步驟進行操作,那麽您便可以創建了一個本地運行的 DApp。希望本教程能夠讓您體驗在區塊鏈上開發應用程式。

雷鋒網

獲得更多的PTT最新消息
按讚加入粉絲團