當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 區(qū)塊鏈,代表著未來(lái)的發(fā)展方向。是的,在文章開(kāi)頭,我們首先給出這樣的結(jié)論。當(dāng)然,認(rèn)定未來(lái)將圍繞這一新興技術(shù)而延拓絕不是什么牽強(qiáng)附會(huì)。區(qū)塊鏈最初是一種公開(kāi)且不存在準(zhǔn)入限制的技術(shù),但隨著后續(xù)發(fā)展又有新

區(qū)塊鏈,代表著未來(lái)的發(fā)展方向。是的,在文章開(kāi)頭,我們首先給出這樣的結(jié)論。當(dāng)然,認(rèn)定未來(lái)將圍繞這一新興技術(shù)而延拓絕不是什么牽強(qiáng)附會(huì)。區(qū)塊鏈最初是一種公開(kāi)且不存在準(zhǔn)入限制的技術(shù),但隨著后續(xù)發(fā)展又有新的類(lèi)型逐步出現(xiàn),而且每種區(qū)塊鏈都有著自己特定的用例集合。公開(kāi)/無(wú)準(zhǔn)入?yún)^(qū)塊鏈的特征包括開(kāi)放、去中心化以及速度緩慢,而私有/準(zhǔn)入型區(qū)塊鏈則采取部分或者完全封閉的集中管理方式。

通過(guò)今天的文章,我們將共同探討需要學(xué)習(xí)哪些知識(shí)才能立足區(qū)塊鏈技術(shù)開(kāi)發(fā)應(yīng)用程序。當(dāng)我本人(原文作者)剛剛開(kāi)始學(xué)習(xí)區(qū)塊鏈時(shí),跟大家一樣,我也覺(jué)得腦袋里塞滿(mǎn)了模糊而難解的疑問(wèn)。區(qū)塊鏈分為哪些不同類(lèi)型?我應(yīng)該使用哪種編程語(yǔ)言進(jìn)行高效編程?區(qū)塊鏈又有哪些可選的開(kāi)發(fā)平臺(tái)?別急,這些問(wèn)題都將在今天的文章中一一得到解答。

下面,就讓我們從編程語(yǔ)言開(kāi)始,逐步了解如何開(kāi)發(fā)出能夠充分運(yùn)用區(qū)塊鏈技術(shù)優(yōu)勢(shì)的應(yīng)用成果。

區(qū)塊鏈編程類(lèi)型

· 區(qū)塊鏈架構(gòu)編程

在區(qū)塊鏈發(fā)布之前,開(kāi)發(fā)者首先需要解決構(gòu)成其架構(gòu)與協(xié)議的各項(xiàng)重要功能,而功能自然必須使用代碼來(lái)編寫(xiě)。舉例來(lái)說(shuō),在2009年正式發(fā)布之前,比特幣項(xiàng)目的管理規(guī)則與條款是使用C++編寫(xiě)的。這方面編碼工作通常使用C及Java等語(yǔ)言來(lái)完成,其特點(diǎn)就是表達(dá)方式更接近于機(jī)器的處理習(xí)慣。

· 構(gòu)建智能合約,或者去中心化應(yīng)用(簡(jiǎn)稱(chēng)DApp)

在一般的中心化應(yīng)用程序當(dāng)中,后端代碼運(yùn)行在中央服務(wù)器之上;與此不同,DApp的后端代碼則在去中心化的對(duì)等網(wǎng)絡(luò)中運(yùn)行。與其它應(yīng)用程序一樣,DApp也能夠使用任意語(yǔ)言及用戶(hù)界面進(jìn)行前端代碼編寫(xiě),并直接調(diào)用后端提供的功能。

常見(jiàn)區(qū)塊鏈編程平臺(tái)

· Hyperledger

Hyperledger實(shí)際上是開(kāi)源區(qū)塊鏈領(lǐng)域的一個(gè)總集類(lèi)項(xiàng)目,旨在推進(jìn)相關(guān)技術(shù)發(fā)展,并通過(guò)自身引導(dǎo)發(fā)布相關(guān)工具、培訓(xùn)與活動(dòng),從而支持全球區(qū)塊鏈分布式分類(lèi)賬的協(xié)同開(kāi)發(fā)工作。該項(xiàng)目的目標(biāo)在于提供模塊化區(qū)塊鏈技術(shù),其中也包括各類(lèi)豐富且易于使用的應(yīng)用程序編程接口(簡(jiǎn)稱(chēng)API)。Hyperledger能夠顯著降低安全風(fēng)險(xiǎn),并確保只有希望參與交易的各方才能加入到交易過(guò)程中來(lái)??偠灾?,Hyperledger能夠提供區(qū)塊鏈架構(gòu)、數(shù)據(jù)隱私保護(hù)、信息共享以及不可變性等全部與區(qū)塊鏈密切相關(guān)的功能。

· 以太坊

以太坊是一套開(kāi)源區(qū)塊鏈平臺(tái),用于開(kāi)發(fā)可運(yùn)行在區(qū)塊鏈技術(shù)之上的去中心化應(yīng)用或者DApp。以太坊區(qū)塊鏈平臺(tái)提供強(qiáng)大的腳本或腳本合約支持能力,并將其運(yùn)行在自身網(wǎng)絡(luò)的各節(jié)點(diǎn)當(dāng)中。以太坊不僅能夠追蹤交易活動(dòng),還可以對(duì)其進(jìn)行編程。目前以太坊提供多種編程語(yǔ)言選項(xiàng),具體包括C++、Go、Python以及Java等。智能合約則需要使用Solidity構(gòu)建,這是一種面向合約的高級(jí)編程語(yǔ)言。

五大常用區(qū)塊鏈編程語(yǔ)言

1. C++

下面讓我們從清單當(dāng)中最古老、也最受推崇的語(yǔ)言——編程語(yǔ)言界的常青樹(shù)C++開(kāi)始。相信大家都很清楚,C++語(yǔ)言屬于C語(yǔ)言的擴(kuò)展方案。在C++中,我們可以創(chuàng)建數(shù)據(jù)、函數(shù)與對(duì)象包,并在其它程序中輕松對(duì)其進(jìn)行調(diào)用與復(fù)用,這將大大縮短編碼的時(shí)間周期。

然而,考慮到當(dāng)前可選擇的高級(jí)語(yǔ)言多種多樣,我們?yōu)槭裁催€要使用C++?

簡(jiǎn)單來(lái)講,這是因?yàn)镃++具有某些無(wú)法替代的特性,并因此獲得了強(qiáng)大的吸引力??紤]到區(qū)塊鏈開(kāi)發(fā)中的種種挑戰(zhàn),我們可以將理想的區(qū)塊鏈開(kāi)發(fā)成果視為一種安全堡壘,同時(shí)要求其提供高效的資源管理能力。區(qū)塊鏈需要與諸多不受信任的節(jié)點(diǎn)進(jìn)行交互,同時(shí)確保能夠?yàn)橐磺泄?jié)點(diǎn)提供快速服務(wù)。更重要的是,服務(wù)的快速性往往直接決定著加密貨幣項(xiàng)目的命運(yùn)。因此,開(kāi)發(fā)人員必須面對(duì)資源需求爭(zhēng)用問(wèn)題并將核心功能設(shè)定為最高優(yōu)先級(jí),這就要求大家必須完全控制CPU與內(nèi)存資源的使用——重點(diǎn)來(lái)了,C++能夠幫助用戶(hù)很好地實(shí)現(xiàn)這一目標(biāo)。

C++的另一大有趣之處,在于其具備move語(yǔ)義。Move語(yǔ)義提供了一種在不同對(duì)象之間進(jìn)行內(nèi)容移動(dòng),而非內(nèi)容復(fù)制的方法。Move語(yǔ)義的優(yōu)勢(shì)在于,我們可以?xún)H在必要時(shí)才獲取某些數(shù)據(jù)的副本,這將顯著減少代碼冗余進(jìn)而提高性能水平。因此,C++所代表的內(nèi)存管理與強(qiáng)大性能表現(xiàn)恰好契合區(qū)塊鏈技術(shù)的實(shí)際應(yīng)用需求。

在區(qū)塊鏈編程方面,我能想到的另一個(gè)重要挑戰(zhàn),在于如何將并行化任務(wù)與非并行化任務(wù)整合起來(lái)。大多數(shù)語(yǔ)言往往只專(zhuān)注于其中一種,但C++的線程化能力使其能夠同時(shí)應(yīng)對(duì)并行與非并行任務(wù)。C++允許多線程設(shè)施實(shí)現(xiàn)高效的線程間通信,同時(shí)對(duì)其中的單線程性能做出優(yōu)化。

C++的優(yōu)勢(shì)與短板

C++區(qū)塊鏈用例

C++語(yǔ)言主要用于加密貨幣以及其它一些重要的區(qū)塊鏈項(xiàng)目,包括比特幣、Ripple、Bitcoin cash、Litecoin、Stellar以及Monero。

2. JavaScript

JavaScript是目前最具人氣的軟件開(kāi)發(fā)語(yǔ)言之一。JavaScript及其庫(kù)與框架,包括jQuery、React、Angular和Node等,已經(jīng)成為現(xiàn)代Web開(kāi)發(fā)的驅(qū)動(dòng)引擎。與HTML及CSS加以配合,其功能也將得到進(jìn)一步提升。JavaScript的主要用途在于創(chuàng)建存在大量交互效果的頁(yè)面。

事實(shí)上,JavaScript本身也具備一種非常適合區(qū)塊鏈操作的重要特性,這就是其非常關(guān)于處理異步操作。隨著區(qū)塊鏈平臺(tái)上用戶(hù)數(shù)量的激增,同時(shí)執(zhí)行的操作量也將快速增長(zhǎng),而JavaScript能夠更輕松地處理一切不同區(qū)塊鏈節(jié)點(diǎn)之間的往來(lái)通信。但是,我們必須承認(rèn)一點(diǎn),JavaScript在充分運(yùn)用計(jì)算機(jī)處理能力方面不如C++高效。

JavaScript的優(yōu)勢(shì)與短板

JavaScript區(qū)塊鏈用例

區(qū)塊鏈開(kāi)發(fā)人員目前在web3.js以及ethereum.js當(dāng)中使用JavaScript,其能夠幫助我們將應(yīng)用程序的前端與以太坊網(wǎng)絡(luò)及智能合約連接起來(lái)。在區(qū)塊鏈領(lǐng)域,另一大主要JavaScript應(yīng)用方向?yàn)獒槍?duì)node.js的Hyperledger Fabric SDK。這是一套在IT行業(yè)及企業(yè)當(dāng)中得到廣泛使用的龐大框架。因此,如果您喜歡這樣的編碼方式,那么JavaScript也許會(huì)是個(gè)很好的選擇。

3. Python

作為一種相對(duì)現(xiàn)代的編程語(yǔ)言,Python通常受到新手程序員們的喜愛(ài)。究其根本,Python擁有著類(lèi)似于英語(yǔ)的簡(jiǎn)單語(yǔ)法。大家可以在服務(wù)器上利用Python代碼創(chuàng)建出基于Web的應(yīng)用程序,亦可利用其對(duì)接數(shù)據(jù)庫(kù)系統(tǒng),甚至處理大數(shù)據(jù)并執(zhí)行復(fù)雜的數(shù)學(xué)運(yùn)算。另外,Python最吸引人的地方,在于其能夠使用新行來(lái)完成某項(xiàng)命令——相比之下,其它編程語(yǔ)言一般需要使用分號(hào)或括號(hào),這無(wú)疑會(huì)讓代碼結(jié)構(gòu)看起來(lái)比較復(fù)雜。

無(wú)論你的實(shí)際使用方向是什么,Python都必然會(huì)在這份推薦清單中占據(jù)一席之地。事實(shí)上,幾乎每一個(gè)區(qū)塊鏈生態(tài)系統(tǒng)當(dāng)中都存在著一種或者多種利用Python編寫(xiě)而成的公開(kāi)工具。Python的人氣也一直在快速提升。

Python的優(yōu)勢(shì)與短板

Python區(qū)塊鏈用例

在區(qū)塊鏈領(lǐng)域,Python被用于為Hyperledger平臺(tái)編寫(xiě)智能合約。此外,Python在以太坊等眾多其它項(xiàng)目中也有自己的實(shí)現(xiàn)成果(例如pyethereum)。Python亦被NEO用于創(chuàng)建合約。

4. Go

GoLang語(yǔ)言,或者大家習(xí)慣稱(chēng)其為GO,是一種相對(duì)現(xiàn)代的通用型語(yǔ)言,由谷歌公司于2007年開(kāi)發(fā)完成,并在2012年正式公開(kāi)發(fā)布。Go是一種靜態(tài)類(lèi)型語(yǔ)言,其語(yǔ)法與C語(yǔ)言有些類(lèi)似。作為一款以健壯性及多用途為既定目標(biāo)的語(yǔ)言,Go嘗試將現(xiàn)代語(yǔ)言(例如Python與JavaScript等)的語(yǔ)法及用戶(hù)友好性,同C語(yǔ)言的性能與安全優(yōu)勢(shì)結(jié)合起來(lái)。Go是一種編譯語(yǔ)言,提供豐富的標(biāo)準(zhǔn)庫(kù)。當(dāng)我們?cè)趨^(qū)塊鏈項(xiàng)目的多個(gè)組成部分內(nèi)使用Go語(yǔ)言時(shí),這種特性能夠?yàn)槲覀冏畲蟪潭忍峁╈`活性?xún)?yōu)勢(shì)。

在Go中,我們可以利用Goroutines方法實(shí)現(xiàn)對(duì)多個(gè)程序或者多個(gè)程序內(nèi)部分進(jìn)行異步或并行運(yùn)行,而這一能力恰好契合區(qū)塊鏈項(xiàng)目所著重強(qiáng)調(diào)的特征。一般來(lái)講,Java及其它編程語(yǔ)言需要使用Threads才能實(shí)現(xiàn)這一點(diǎn)。

Go的優(yōu)勢(shì)與短板

Go區(qū)塊鏈用例

與Golang相關(guān)的區(qū)塊鏈項(xiàng)目非常多,在這里我只列舉幾個(gè)人氣較高的條目。首先是Go-Ehtereum,這是使用Golang語(yǔ)言編寫(xiě)的最重要的項(xiàng)目之一。同樣由Go編寫(xiě)而成的另一個(gè)主力項(xiàng)目是Hyperledger Fabric,其已經(jīng)成為各類(lèi)企業(yè)巨頭最喜愛(ài)的區(qū)塊鏈解決方案之一。再有,Loom Network項(xiàng)目專(zhuān)門(mén)針對(duì)去中心化在線游戲,這一令人興奮的成果同樣包含利用Go編寫(xiě)的鏈碼。

5.Solidity

Solidity 是一種由以太坊團(tuán)隊(duì)(Gavin Wood、ChrisTIan Reitwiessner等)開(kāi)發(fā)的,類(lèi)似于JavaScript、專(zhuān)用、面向?qū)ο蟮母呒?jí)語(yǔ)言。Solidity受到C++、Python以及JavaScript的深刻影響,用于在以太坊平臺(tái)以及以太坊虛擬機(jī)(簡(jiǎn)稱(chēng)EVM)上創(chuàng)建去中心化應(yīng)用程序。順帶一提,EVM是指以太坊平臺(tái)上編寫(xiě)智能合約的運(yùn)行時(shí)環(huán)境。Solidity是一種靜態(tài)類(lèi)型語(yǔ)言,支持繼承、庫(kù)以及復(fù)雜的用戶(hù)定義類(lèi)型。截至目前,其仍然是以太坊社區(qū)以及區(qū)塊鏈行業(yè)當(dāng)中適用性最強(qiáng)的去中心化應(yīng)用程序開(kāi)發(fā)語(yǔ)言。

要體驗(yàn)Solidity的代碼示例,大家可以使用Remix IDE。Remix是一套基于網(wǎng)絡(luò)瀏覽器的IDE,其提供集成化編譯器與Solidity運(yùn)行時(shí)環(huán)境,且無(wú)需任何服務(wù)器端組件。Remix允許大家編寫(xiě)Solidity代碼并對(duì)智能合約進(jìn)行部署與運(yùn)行。

Solidity的優(yōu)勢(shì)與短板

Solidity區(qū)塊鏈用例

Solidity語(yǔ)言主要用于開(kāi)發(fā)以太坊智能合約。目前,我還沒(méi)有看到其被任何其它類(lèi)型的項(xiàng)目所實(shí)際使用。但好消息是,以太坊開(kāi)發(fā)生態(tài)系統(tǒng)本身的體量已經(jīng)非??捎^,而且已經(jīng)成為當(dāng)前區(qū)塊鏈開(kāi)發(fā)領(lǐng)域中最重要的組成部分。單憑這一點(diǎn),Solidity已經(jīng)足以躋身智能合約開(kāi)發(fā)方面最具人氣的語(yǔ)言選項(xiàng)之一。

總結(jié)

區(qū)塊鏈技術(shù)有望給每一個(gè)行業(yè)及市場(chǎng)層面帶來(lái)巨大影響。相信在未來(lái)的幾個(gè)月到幾年之內(nèi),全球去中心化水平將不斷提高,而區(qū)塊鏈技術(shù)也終將成為新的技術(shù)主流。面對(duì)這無(wú)限的發(fā)展空間,大家還猶豫什么?趕緊學(xué)起來(lái)!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉