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