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

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

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

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

區(qū)塊鏈編程類型

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

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

· 構(gòu)建智能合約,或者去中心化應用(簡稱DApp)

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

常見區(qū)塊鏈編程平臺

· Hyperledger

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

· 以太坊

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

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

1. C++

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

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

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

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

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

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

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

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

2. JavaScript

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

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

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

JavaScript區(qū)塊鏈用例

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

3. Python

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

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

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

Python區(qū)塊鏈用例

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

4. Go

GoLang語言,或者大家習慣稱其為GO,是一種相對現(xiàn)代的通用型語言,由谷歌公司于2007年開發(fā)完成,并在2012年正式公開發(fā)布。Go是一種靜態(tài)類型語言,其語法與C語言有些類似。作為一款以健壯性及多用途為既定目標的語言,Go嘗試將現(xiàn)代語言(例如Python與JavaScript等)的語法及用戶友好性,同C語言的性能與安全優(yōu)勢結(jié)合起來。Go是一種編譯語言,提供豐富的標準庫。當我們在區(qū)塊鏈項目的多個組成部分內(nèi)使用Go語言時,這種特性能夠為我們最大程度提供靈活性優(yōu)勢。

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

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

Go區(qū)塊鏈用例

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

5.Solidity

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

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

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

Solidity區(qū)塊鏈用例

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

總結(jié)

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

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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