區塊鏈是一項巧妙的發明,有望使數字世界更加安全和分散。通過允許數字信息的分發而不是復制,區塊鏈技術創建了一種新型互聯網。最初是為數字貨幣比特幣而設計的,現在科技界正在尋找該技術的其他潛在用途。在不久的將來,我們將看到區塊鏈被用于各種日常交易,無論是銀行交易,還是電子商務網站購物。
技術世界的每個人都了解或至少聽說過區塊鏈。但是只有極少數的開發人員知道如何開發區塊鏈代幣或應用程序,或者從哪里開始。讓我們稍微詳細地看看區塊鏈應用程序的開發過程。
區塊鏈開發簡介
現在,我假設您已經了解了區塊鏈的基礎知識,即區塊鏈是什么,它起源于何處,可以在何處使用。
與其他開發過程一樣,區塊鏈應用程序或代幣開發也需要我們描述應用程序的范圍和用途。它可以是像比特幣這樣的一枚代幣,也可以是一份精明的房地產合同或其他東西。讓我們看看這些實際發展的前提步驟
1. 發展的觀點
第一步是決定——我想用區塊鏈做什么?
如果你想用區塊鏈來為一個自制的業余應用程序存儲用戶資料,你可能走錯了路。即使你希望使用區塊鏈獲得一個中等大小的應用程序,你也需要權衡區塊鏈的利潤與成本。您需要為您的應用程序確定用例,并確保您的想法是否需要區塊鏈。需要注意的是,區塊鏈是一種加密數據和驗證事務的方法,如果實現不正確,它不能保證交易上的額外安全性。
一旦您得出區塊鏈對您的項目是必不可少的結論,您就需要認識到區塊鏈的開發是昂貴的。有幾種開發區塊鏈應用程序的方法,下一節將討論這些方法,它們的成本和功能各不相同。
區塊鏈使用作為一個有效的例子, 如果您是一個房地產代理,并希望構建一個基于區塊鏈的供應鏈應用程序,該應用程序可以為您出售的每個屬性保留一個分類賬,那么您應該了解應用程序的多個用例,以及它將如何為您的業務和消費者帶來好處。
2. 確定合適的區塊鏈平臺
一旦您認為您的業務需要基于區塊鏈,您就需要確定要使用的合適平臺或技術。有幾種基本方法可以解決
a. 創建新的區塊鏈——您可以選擇創建自己的區塊鏈框架,其中從算法到事務驗證,從技術堆棧到代幣交易費,一切都由您決定。這是最全面的區塊鏈開發方式,也是最昂貴的。你實際上是在考慮創造另一種比特幣,盡管聽起來有利可圖,但它可能會讓你花費數十萬美元以上的資金。通常只有在創建自己的加密貨幣時才會選擇此選項。
b. 克隆流行的區塊鏈平臺 ——開發基于區塊鏈的應用程序的另一種更有效的方法是使用流行的區塊鏈平臺進行開發。這些平臺是開源的,因此您可以使用它們的存儲庫并將代碼部署到自己的服務器上。我們要問的主要問題是——為什么這個世界會接受你創建的區塊鏈。請記住,區塊鏈平臺與網絡中能夠驗證事務的節點數量一樣成功。
流行的平臺有以太坊、Hyperledger Fabric和Hyperledger SawTooth。每一個都有特定的特點,可以幫助你做出決定。
最受歡迎的區塊鏈平臺是以太坊,它可以保存你的代幣發展)。關于以太坊的幾點:
· 以太坊是一個開源的、基于公共區塊鏈的分布式計算平臺,具有智能合約的功能。
· 以太坊使用了一種名為“Ethash”的工作驗證算法,這種算法需要更多內存,因此難以進行挖掘。
· 以太坊中的智能合約是用可靠的編程語言 Solidity 編寫的,這是Javascript的一個子集。
c. 在現有的區塊鏈平臺上使用代幣——這與上一點稍有不同。最后一點,我們克隆了整個區塊鏈平臺并將其部署到我們自己的服務器上,假設我們有足夠的網絡節點,這些節點將通過“挖掘”來驗證交易。
但我們也可以“創建代幣”,并將其部署到像以太坊這樣正在運行的區塊鏈上。這些平臺提供了現成的api、算法和挖掘策略,以便在應用程序中輕松實現區塊鏈(區塊鏈即服務)。您不需要為您的交易創建單獨的waller,因為以太坊代幣可以被各種現有的錢包接受。
這類似于在Shopify上創建自己的電子商務商店。Shopify平臺上的所有電子商務功能都可以隨時使用,用戶只需填寫所需數據,就可以在Shopify上創建自己的商店。類似地,您可以用可靠語言編寫自己的令牌,并將其部署在以太坊上(或者為不同的區塊鏈平臺使用不同的語言)。現有的平臺將為您提供現成的服務,您可以使用代幣進行交易。記住,代幣可以是代幣,也可以是智能合約。
3.原型開發
鑒于區塊鏈的開發成本非常高,建議在將其部署到實時服務器或現有的區塊鏈平臺(如以太坊)上之前,首先開發一個原型應用程序,以確保一切正常工作。
在原型開發期間,您還應該決定應用程序的哪些部分是“on-chain”的,哪些是“off-chain”的。簡單地說,由于您正在創建一個使用區塊鏈的web應用程序或移動應用程序,因此可以在一般的云托管上運行正常的功能,而不需要區塊鏈。然后是應用程序的交易部分,您可能會將其放在區塊鏈平臺上。
您還應該決定應用程序(或其部分)是構建在許可網絡中,還是構建在無許可網絡中。
· 無許可的網絡:在這里,每個人都可以加入并開始驗證。最著名的例子是比特幣和以太坊網絡
· 許可的網絡。在這種情況下,網絡所有者決定誰可以加入網絡,只允許少數成員驗證塊。協商一致機制可以與無許可網絡相同,也可以是完全獨特的設計(例如基于權限的)。
盡量將鏈上api與鏈外api分開,因為它們將駐留在不同的位置。決定應用程序的一致算法和事務策略。如果您使用的是現有的區塊鏈平臺,那么這個階段將更容易,因為許多東西已經在這些平臺中有效地實現了。
4. 技術
。 web3.js - Ethereum JavaScript API(文檔)
。 Dapp瀏覽器-Desktop Mist, Parity 、 Metamask 和mobile ones Toshi, Cipher 和Trust
。 智能合約的穩固性(文件編制)
。 開放Zepplin -智能合約開發(文檔)
。 從事-無服務器分散式應用使用Ethereum, IPFS和其他平臺https://embark.status.im/
。 最流行的Ethereum開發和測試框架http://truffleframework.com
。 Metamask -在瀏覽器中運行Ethereum dApp而不需要運行完整的Ethereum節點(https://metamask.io/)
。 Parity -最先進的Ethereum部署客戶端(https://paritytech.io/)
。 Etherscan - Ethereum上的塊資源管理器,用于監視(https://etherscan.io/)
除此之外,常規框架還可以用于像react這樣的應用程序/服務器開發。用于移動應用的js、nodejs和原生技術。
5. 發展
這是區塊鏈應用程序開發的核心元素。為了簡單起見,我們將經歷2c點中描述的過程。如上所述,即在現有的區塊鏈平臺上使用代幣。首先理解事務機制是很重要的。
Token本質上是一個長長的字母數字字符串,充當您智能合約的唯一標識符。區塊鏈錢包上的每個用戶都有唯一的公鑰和私鑰(類似于長密碼)。這些鍵用于識別用戶的信用卡/借記卡,或指向智能合約。這是非常類似的,但比添加一個新的受益人在您的銀行帳戶使用他們的銀行帳號等更安全。
您可以為以太坊創建自己的智能合約或代幣。您應該首先創建一個測試代幣,并在將其部署到真實的區塊鏈上之前驗證您的功能。遵循這個官方指南來創建您的第一個以太坊代幣,以及這篇博客文章來理解創建您自己代幣的細微差別。一旦您創建了代幣,您就將其“放在鏈上”,本質上類似于在服務器上部署代碼。
交易開始時,一個用戶發送一個發送代幣的意圖,該意圖被網絡確認為有效(如果您擁有代幣且沒有將其發送給任何人)。然后您的代幣信息與您的私鑰相結合,私鑰將吐出一個數字代碼,然后使用發送方的公鑰由網絡確認。這是可能的,因為可以用公鑰驗證與私鑰簽署的合約,但是無法發現公鑰與私鑰之間的相關性,因此一切都是安全的。
總之,整個過程類似于加密和解密。信息的分散化和塊的歷史包含在加密中,使其安全和篡改證明。
評論