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

沒啥新鮮的?區(qū)塊鏈編程就這幾個(gè)關(guān)鍵!

區(qū)塊鏈 后端
在本文中,我們將討論構(gòu)建基于區(qū)塊鏈技術(shù)的應(yīng)用程序需要學(xué)習(xí)什么內(nèi)容?例如,不同類型的區(qū)塊鏈之間有什么異同?采用哪種編程語言才能進(jìn)行高效的區(qū)塊鏈開發(fā)?采用哪個(gè)平臺(tái)進(jìn)行區(qū)塊鏈開發(fā)?

區(qū)塊鏈最初是一種公共、非許可型的技術(shù),隨著后來其它類型區(qū)塊鏈的引入,每種區(qū)塊鏈都有了自己特定的適用場(chǎng)景。公共非許可型的區(qū)塊鏈?zhǔn)情_放的、去中心化的,但速度很慢,而私有許可型的區(qū)塊鏈則是部分或完全封閉和集中的。

在本文中,我們將討論構(gòu)建基于區(qū)塊鏈技術(shù)的應(yīng)用程序需要學(xué)習(xí)什么內(nèi)容?例如,不同類型的區(qū)塊鏈之間有什么異同?采用哪種編程語言才能進(jìn)行高效的區(qū)塊鏈開發(fā)?采用哪個(gè)平臺(tái)進(jìn)行區(qū)塊鏈開發(fā)?

 

區(qū)塊鏈編程的類型

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

在一個(gè)區(qū)塊鏈應(yīng)用發(fā)布之前,其體系結(jié)構(gòu)和所采用的協(xié)議等重大功能都必須穩(wěn)定下來,而這些功能都是需要使用代碼來實(shí)現(xiàn)的。例如,在 2009 年比特幣發(fā)布之前,就先用 C++ 實(shí)現(xiàn)了比特幣的規(guī)則和條款。

通常,像這樣的區(qū)塊鏈應(yīng)用都會(huì)采用 C 和 Java 等語言來完成,因?yàn)檫@類語言更接近機(jī)器語言。

構(gòu)建智能合約或去中心化應(yīng)用程序(DApp)

在普通的中心化應(yīng)用程序中,服務(wù)端代碼通常在中心服務(wù)器上運(yùn)行,而去中心化應(yīng)用的服務(wù)端代碼則在去中心的對(duì)等網(wǎng)絡(luò)中運(yùn)行。像其他應(yīng)用程序一樣,去中心化應(yīng)用也可以使用任何語言來編寫其前端代碼,并通過用戶界面來調(diào)用其服務(wù)端程序。

 

當(dāng)前流行的區(qū)塊鏈編程平臺(tái)

Hyperledger(超級(jí)賬本)

Hyperledger 是一款開源的區(qū)塊鏈項(xiàng)目,旨在推進(jìn)區(qū)塊鏈技術(shù)的發(fā)展,它提供了相關(guān)的工具、培訓(xùn)和活動(dòng),用以支持基于區(qū)塊鏈的分布式賬本的協(xié)同開發(fā)。其目標(biāo)是提供模塊化的區(qū)塊鏈技術(shù),其中包含豐富的、易用的應(yīng)用程序編程接口(API)。

Hyperledger 在一定程度上降低了交易的安全風(fēng)險(xiǎn),確保了只有其想要參與交易,那么他才會(huì)是該交易的一部分。Hyperledger 提供了區(qū)塊鏈架構(gòu)、數(shù)據(jù)隱私、信息共享和數(shù)據(jù)不變性的所有功能。

Ethereum(以太坊)

Ethereum 是一個(gè)開源的區(qū)塊鏈平臺(tái),用于開發(fā)基于區(qū)塊鏈技術(shù)的去中心化應(yīng)用程序。Ethereum 區(qū)塊鏈平臺(tái)有助于區(qū)塊鏈腳本和智能合約的編寫,通過網(wǎng)絡(luò)中的節(jié)點(diǎn)運(yùn)行,不僅可以用來追蹤每一次交易,還可以對(duì)它們進(jìn)行編程。

Ethereum 可選擇多種編程語言來進(jìn)行編程,例如 C++、Go、Python、Java 等,該平臺(tái)下智能合約是使用 Solidity 構(gòu)建的,Solidity 是一種面向合約的高級(jí)編程語言。

 

區(qū)塊鏈編程語言 Top 5

C++讓我們從***歷史、最受推崇的語言——C++ 開始,幾乎所有人都知道 C++ 是 C 語言的擴(kuò)展。在 C++ 中,若創(chuàng)建了一個(gè)變量、函數(shù)或?qū)ο螅涂梢栽谄渌绦蛑休p松的調(diào)用并復(fù)用,可以大大減少編程時(shí)間。

但是現(xiàn)在已經(jīng)有很多高級(jí)語言了,為什么還要用 C++ 呢?

因?yàn)? C++ 具有的某些特性仍然很吸引人,考慮到區(qū)塊鏈開發(fā)要面臨的諸多挑戰(zhàn),其應(yīng)用更應(yīng)該像是一個(gè)堡壘,同時(shí)還要兼?zhèn)涓咝У馁Y源管理特性,區(qū)塊鏈應(yīng)用不僅要與許多不被信任的節(jié)點(diǎn)進(jìn)行交互,同時(shí)還要為每個(gè)節(jié)點(diǎn)甚至是所有節(jié)點(diǎn)提供快速服務(wù)。尤其是對(duì)加密貨幣來說,這種快速服務(wù)更是至關(guān)重要。要滿足所有這些需求并能在***優(yōu)先級(jí)執(zhí)行,你需要能完全控制 CPU 和內(nèi)存的使用,而 C++ 剛好就能夠滿足用戶這方面的需求。

C++ 另一個(gè)有趣的地方是移動(dòng)語義(move semantic)。移動(dòng)語義提供了一種在對(duì)象之間移動(dòng)內(nèi)容而不是復(fù)制內(nèi)容的方法。移動(dòng)語義的優(yōu)點(diǎn)是:只有在需要時(shí)才會(huì)獲得某些數(shù)據(jù)的副本,通過減少代碼冗余來提高性能。而高效的內(nèi)存管理和高性能都是區(qū)塊鏈開發(fā)所必須的特性。

除此之外,區(qū)塊鏈編程的挑戰(zhàn)還包括并行任務(wù)和非并行任務(wù)的集成。

可以想到的另一個(gè)關(guān)于區(qū)塊鏈編程的挑戰(zhàn)是并行任務(wù)和非并行的任務(wù)的集成。大多數(shù)編程語言只擅長(zhǎng)其中一種,但是,C++ 語言的線程能力使其可以同時(shí)處理并行和非并行任務(wù)。C++ 語言允許多線程任務(wù)進(jìn)行有效的線程間通信,并優(yōu)化了單線程處理的性能。

C++ 的優(yōu)點(diǎn)和缺點(diǎn)

沒啥新鮮的?區(qū)塊鏈編程就這幾個(gè)關(guān)鍵!

基于 C++ 語言的區(qū)塊鏈開發(fā)案例

C++ 主要用于加密貨幣和重要的區(qū)塊鏈項(xiàng)目,如比特幣,Ripple,Litecoin,Stellar 和 Monero 等。

JavaScript

JavaScript 是目前***的軟件開發(fā)語言之一。JavaScript 語言及其相關(guān)的庫和框架,例如:jQuery、React、Angular 和 Node.js,是推動(dòng)現(xiàn)代 Web 開發(fā)技術(shù)快速發(fā)展的引擎。JavaScript 通常與 HTML 和 CSS 一起,用以增強(qiáng) Web 在行為交互方面的功能,當(dāng)前 JavaScript 主要用于創(chuàng)建交互性強(qiáng)的網(wǎng)頁。

JavaScript 非常擅長(zhǎng)處理異步操作,這一主要特性使得它非常適用于區(qū)塊鏈開發(fā)。隨著區(qū)塊鏈上的用戶數(shù)量的增加,所有的操作都需要同時(shí)執(zhí)行,JavaScript 可以更輕松地處理不同區(qū)塊鏈節(jié)點(diǎn)之間的通信。但同時(shí)我們也不能否認(rèn),在***化的密集計(jì)算處理能力方面 JavaScript 不如 C++ 高效。

JavaScript 的優(yōu)點(diǎn)和缺點(diǎn)

沒啥新鮮的?區(qū)塊鏈編程就這幾個(gè)關(guān)鍵!

基于 JavaScript 語言的區(qū)塊鏈開發(fā)案例

區(qū)塊鏈開發(fā)人員可以在 web3.js 和 ethereum.js 中使用 JavaScript,用來構(gòu)建應(yīng)用程序的前端,用以連接以太坊網(wǎng)絡(luò)和智能合約。 另外在區(qū)塊鏈中經(jīng)常采用 JavaScript 語言的是基于 node.js 平臺(tái)的 Hyperledger Fabric SDK,這是一個(gè)在 IT 行業(yè)和企業(yè)中經(jīng)常使用的大型框架。

Python

Python 是一種相對(duì)現(xiàn)代的編程語言,通常是新程序員的***,因?yàn)樗Z法簡(jiǎn)單,可以在服務(wù)器上創(chuàng)建基于 Web 的應(yīng)用程序,還可以用來連接數(shù)據(jù)庫系統(tǒng),也可以處理大數(shù)據(jù)并執(zhí)行復(fù)雜的數(shù)學(xué)運(yùn)算。

Python 最吸引人的地方是它通過“另起一行”來作為命令的結(jié)束標(biāo)識(shí),而不像其他編程語言使用分號(hào)或括號(hào)。

無論你采用哪一種區(qū)塊鏈平臺(tái)進(jìn)行開發(fā),都不能忽略 Python 的存在,因?yàn)閹缀趺總€(gè)區(qū)塊鏈的生態(tài)系統(tǒng)中都有一個(gè)或多個(gè)用 Python 編寫的公共工具。Python 已經(jīng)成為區(qū)塊鏈領(lǐng)域中的流行編程語言。

Python 的優(yōu)點(diǎn)和缺點(diǎn)

沒啥新鮮的?區(qū)塊鏈編程就這幾個(gè)關(guān)鍵!

基于 Python 語言的區(qū)塊鏈開發(fā)案例

在區(qū)塊鏈領(lǐng)域,Python 用于為 Hyperledger 編寫智能合約,除此之外還有許多其他的項(xiàng)目也采用了 Python,如 Ethereum(pyethereum)也有自己的 Python 實(shí)現(xiàn)。同時(shí) Python 也被用來為 NEO 創(chuàng)建智能合約,這是一個(gè)基于社區(qū)的非營利性區(qū)塊鏈項(xiàng)目。

Go

GoLang,俗稱 Go,是谷歌公司于 2007 年開發(fā)的一種相對(duì)現(xiàn)代的領(lǐng)域通用語言,并于 2012 年面向公眾開放。它是一種靜態(tài)類型的語言,語法有點(diǎn)類似于 C 語言。作為一種健壯的、多用途的語言,Go 試圖將現(xiàn)代高級(jí)語言 (如 Python 和 JavaScript) 的語法和用戶友好性與 C 語言的性能和安全優(yōu)勢(shì)結(jié)合起來。Go 是一種編譯語言,提供了豐富的標(biāo)準(zhǔn)庫。當(dāng)你在區(qū)塊鏈項(xiàng)目的多個(gè)組件中使用 Go 語言時(shí),該特性將為你帶來***的靈活性。

在 Go 中,名為 Goroutines 的方法提供了異步或并行運(yùn)行多個(gè)程序的能力,這也是區(qū)塊鏈項(xiàng)目所需要的一個(gè)重要的特性。而在 Java 和其他語言中往往會(huì)使用線程來實(shí)現(xiàn)該特性。

Go 的優(yōu)點(diǎn)和缺點(diǎn)

沒啥新鮮的?區(qū)塊鏈編程就這幾個(gè)關(guān)鍵!

基于 Go 語言的區(qū)塊鏈開發(fā)案例

區(qū)塊鏈領(lǐng)域有很多與 Go 語言相關(guān)的項(xiàng)目,其中包含一些很受歡迎的項(xiàng)目,例如 Go-Ethereum 是 Ethereum 的 Go 語言實(shí)現(xiàn),也是基于 Go 語言的最重要的項(xiàng)目之一。用 Go 語言實(shí)現(xiàn)的另一個(gè)重要項(xiàng)目是 Hyperledger Fabric,它是大公司中***的區(qū)塊鏈解決方案之一。另一個(gè)是去中心化在線游戲項(xiàng)目 Loom Network,它采用 Go 語言實(shí)現(xiàn)了其鏈碼。

Solidity

Solidity 是由 Ethereum 團(tuán)隊(duì)(Gavin Wood,Christian Reitwiessner 等)開發(fā)的一款類似于 JavaScript 、針對(duì)于特定領(lǐng)域、面向?qū)ο蟮母呒?jí)語言。Solidity 受 C++,Python 和 JavaScript 的影響,為了在 Ethereum 平臺(tái)的以太坊虛擬機(jī)(EVM)上創(chuàng)建去中心化應(yīng)用程序而設(shè)計(jì)的。EVM 是在 Ethereum 平臺(tái)上編寫智能合約的運(yùn)行時(shí)環(huán)境。

Solidity 是一種靜態(tài)類型語言,支持繼承、庫和復(fù)雜的用戶自定義類型。到目前為止,它是 Ethereum 社區(qū)和區(qū)塊鏈行業(yè)中最適合的領(lǐng)域特定語言(DSL)。

若要嘗試運(yùn)行 Solidity 的代碼示例,可以使用 Remix IDE,這是一款基于 Web 瀏覽器的 IDE 工具,同時(shí)集成 Solidity 的編譯器和運(yùn)行時(shí)環(huán)境,且沒有服務(wù)器端組件。你可以在該 IDE 中編寫 Solidity 代碼并部署和運(yùn)行智能合約。

Solidity 的優(yōu)點(diǎn)和缺點(diǎn)

沒啥新鮮的?區(qū)塊鏈編程就這幾個(gè)關(guān)鍵!

基于 Solidity 語言的區(qū)塊鏈開發(fā)案例

Solidity 語言主要用于開發(fā)以太坊智能合約,目前還沒有看到其他項(xiàng)目使用 Solidity,但以太坊生態(tài)系統(tǒng)是巨大的,并且也是目前區(qū)塊鏈開發(fā)中最重要的一部分。

Solidity 是用于智能合約開發(fā)的***的語言之一。

 

總結(jié)

區(qū)塊鏈技術(shù)將對(duì)每個(gè)領(lǐng)域和行業(yè)產(chǎn)生巨大的影響。在未來的幾個(gè)月或者幾年中,隨著世界變得越來越去中心化,區(qū)塊鏈也將被作為主流技術(shù)使用,它有著***的未來。 

責(zé)任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2018-02-27 10:09:34

2021-08-10 23:09:55

區(qū)塊鏈數(shù)據(jù)技術(shù)

2019-07-29 15:11:04

區(qū)塊鏈網(wǎng)絡(luò)存儲(chǔ)

2018-02-08 17:20:47

2020-12-07 13:53:01

區(qū)塊鏈疫苗

2020-11-09 11:29:20

區(qū)塊鏈

2021-03-03 13:24:09

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

2018-09-13 11:00:15

2019-09-04 10:11:16

區(qū)塊鏈比特幣技術(shù)

2020-11-20 14:59:06

區(qū)塊鏈數(shù)據(jù)物聯(lián)網(wǎng)

2022-03-25 14:11:01

物聯(lián)網(wǎng)數(shù)字孿生區(qū)塊鏈

2022-05-29 10:19:08

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

2020-05-07 18:01:14

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

2021-07-29 16:58:22

區(qū)塊鏈比特幣數(shù)字貨幣

2022-05-20 16:50:33

區(qū)塊鏈Web3加密資產(chǎn)

2018-05-04 14:15:56

區(qū)塊鏈移動(dòng)支付無現(xiàn)金支付

2021-04-02 14:27:30

區(qū)塊鏈疫苗安全

2011-06-23 09:26:09

SEO內(nèi)鏈

2021-12-01 17:24:11

編程學(xué)習(xí)網(wǎng)站程序員
點(diǎn)贊
收藏

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