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