自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

區(qū)塊鏈編程完全指南:平臺(tái)、語言與結(jié)論

區(qū)塊鏈
通過今天的文章,我們將共同探討需要學(xué)習(xí)哪些知識(shí)才能立足區(qū)塊鏈技術(shù)開發(fā)應(yīng)用程序。當(dāng)我本人(原文作者)剛剛開始學(xué)習(xí)區(qū)塊鏈時(shí),跟大家一樣,我也覺得腦袋里塞滿了模糊而難解的疑問。

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

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

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

區(qū)塊鏈編程類型

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

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

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

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

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

Hyperledger

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

以太坊

以太坊是一套開源區(qū)塊鏈平臺(tá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)行編程。目前以太坊提供多種編程語言選項(xiàng),具體包括C++、Go、Python以及Java等。智能合約則需要使用Solidity構(gòu)建,這是一種面向合約的高級(jí)編程語言。

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

1. C++

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

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

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

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

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

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

 

區(qū)塊鏈編程完整指南:平臺(tái)、語言與結(jié)論

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

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

2. JavaScript

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

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

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

 

區(qū)塊鏈編程完整指南:平臺(tái)、語言與結(jié)論

JavaScript區(qū)塊鏈用例

區(qū)塊鏈開發(fā)人員目前在web3.js以及ethereum.js當(dāng)中使用JavaScript,其能夠幫助我們將應(yīng)用程序的前端與以太坊網(wǎng)絡(luò)及智能合約連接起來。在區(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)代的編程語言,Python通常受到新手程序員們的喜愛。究其根本,Python擁有著類似于英語的簡(jiǎn)單語法。大家可以在服務(wù)器上利用Python代碼創(chuàng)建出基于Web的應(yīng)用程序,亦可利用其對(duì)接數(shù)據(jù)庫系統(tǒng),甚至處理大數(shù)據(jù)并執(zhí)行復(fù)雜的數(shù)學(xué)運(yùn)算。另外,Python最吸引人的地方,在于其能夠使用新行來完成某項(xiàng)命令——相比之下,其它編程語言一般需要使用分號(hào)或括號(hào),這無疑會(huì)讓代碼結(jié)構(gòu)看起來比較復(fù)雜。

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

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

 

區(qū)塊鏈編程完整指南:平臺(tái)、語言與結(jié)論

Python區(qū)塊鏈用例

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

4. Go

GoLang語言,或者大家習(xí)慣稱其為GO,是一種相對(duì)現(xiàn)代的通用型語言,由谷歌公司于2007年開發(fā)完成,并在2012年正式公開發(fā)布。Go是一種靜態(tài)類型語言,其語法與C語言有些類似。作為一款以健壯性及多用途為既定目標(biāo)的語言,Go嘗試將現(xiàn)代語言(例如Python與JavaScript等)的語法及用戶友好性,同C語言的性能與安全優(yōu)勢(shì)結(jié)合起來。Go是一種編譯語言,提供豐富的標(biāo)準(zhǔn)庫。當(dāng)我們?cè)趨^(qū)塊鏈項(xiàng)目的多個(gè)組成部分內(nèi)使用Go語言時(shí),這種特性能夠?yà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)的特征。一般來講,Java及其它編程語言需要使用Threads才能實(shí)現(xiàn)這一點(diǎn)。

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

 

區(qū)塊鏈編程完整指南:平臺(tái)、語言與結(jié)論

Go區(qū)塊鏈用例

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

5.Solidity

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

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

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

 

區(qū)塊鏈編程完整指南:平臺(tái)、語言與結(jié)論

Solidity區(qū)塊鏈用例

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

總結(jié)

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

責(zé)任編輯:未麗燕 來源: 科技行者
相關(guān)推薦

2022-01-13 08:00:00

區(qū)塊鏈加密貨幣比特幣

2021-02-09 00:46:45

區(qū)塊鏈加密貨幣工具

2022-05-29 10:19:08

區(qū)塊鏈智能合約編程語言

2020-05-07 18:01:14

區(qū)塊鏈開發(fā)編程語言

2019-05-30 14:19:58

區(qū)塊鏈加密貨幣編程語言

2020-09-03 14:53:14

區(qū)塊鏈

2023-02-10 08:37:28

2020-05-13 09:45:08

區(qū)塊鏈公共區(qū)塊鏈私有區(qū)塊鏈

2018-08-03 15:06:50

區(qū)塊鏈去中心化ETH

2021-05-10 11:18:59

云計(jì)算區(qū)塊鏈

2021-03-02 08:40:38

區(qū)塊鏈編程語言開發(fā)

2015-09-01 10:42:15

編程規(guī)范完全指南

2017-09-06 16:38:20

2018-03-12 16:48:18

微信

2018-02-24 14:59:39

區(qū)塊鏈公共區(qū)塊鏈私有區(qū)塊鏈

2020-09-11 11:55:21

騰訊云區(qū)塊鏈平臺(tái)

2018-03-28 21:40:03

2020-04-08 09:00:00

數(shù)字貨幣區(qū)塊鏈區(qū)塊鏈技術(shù)

2022-02-11 14:30:07

區(qū)塊鏈農(nóng)業(yè)技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)