沒啥新鮮的?區塊鏈編程就這幾個關鍵!

免責聲明:本文不構成任何投資建議。

小編:記得關注哦

文章來源: 區塊鏈前哨

作者: Ankur Goyal

譯者:徐進

沒啥新鮮的?區塊鏈編程就這幾個關鍵!

區塊鏈最初是一種公共、非許可型的技術,隨着後來其它類型區塊鏈的引入,每種區塊鏈都有了自己特定的適用場景。公共\非許可型的區塊鏈是開放的、去中心化的,但速度很慢,而私有\許可型的區塊鏈則是部分或完全封閉和集中的。

在本文中,我們將討論構建基於區塊鏈技術的應用程序需要學習什麼內容?例如,不同類型的區塊鏈之間有什麼異同?採用哪種編程語言才能進行高效的區塊鏈開發?採用哪個平臺進行區塊鏈開發?

區塊鏈編程的類型

基於區塊鏈架構的編程

在一個區塊鏈應用發佈之前,其體系結構和所採用的協議等重大功能都必須穩定下來,而這些功能都是需要使用代碼來實現的。例如,在 2009 年比特幣發佈之前,就先用 C++ 實現了比特幣的規則和條款。

通常,像這樣的區塊鏈應用都會採用 C 和 Java 等語言來完成,因爲這類語言更接近機器語言。

構建智能合約或去中心化應用程序(DApp

在普通的中心化應用程序中,服務端代碼通常在中心服務器上運行,而去中心化應用的服務端代碼則在去中心的對等網絡中運行。像其他應用程序一樣,去中心化應用也可以使用任何語言來編寫其前端代碼,並通過用戶界面來調用其服務端程序。

當前流行的區塊鏈編程平臺

Hyperledger(超級賬本)

Hyperledger 是一款開源的區塊鏈項目,旨在推進區塊鏈技術的發展,它提供了相關的工具、培訓和活動,用以支持基於區塊鏈的分佈式賬本的協同開發。其目標是提供模塊化的區塊鏈技術,其中包含豐富的、易用的應用程序編程接口(API)。

Hyperledger 在一定程度上降低了交易的安全風險,確保了只有其想要參與交易,那麼他纔會是該交易的一部分。Hyperledger 提供了區塊鏈架構、數據隱私、信息共享和數據不變性的所有功能。

Ethereum(以太坊)

Ethereum 是一個開源的區塊鏈平臺,用於開發基於區塊鏈技術的去中心化應用程序。Ethereum 區塊鏈平臺有助於區塊鏈腳本和智能合約的編寫,通過網絡中的節點運行,不僅可以用來追蹤每一次交易,還可以對它們進行編程。

Ethereum 可選擇多種編程語言來進行編程,例如 C++、Go、Python、Java 等,該平臺下智能合約是使用 Solidity 構建的,Solidity 是一種面向合約的高級編程語言。

區塊鏈編程語言 Top 5

C++

讓我們從最具歷史、最受推崇的語言——C++ 開始,幾乎所有人都知道 C++ 是 C 語言的擴展。在 C++ 中,若創建了一個變量、函數或對象,就可以在其他程序中輕鬆的調用並複用,可以大大減少編程時間。

但是現在已經有很多高級語言了,爲什麼還要用 C++ 呢?

因爲 C++ 具有的某些特性仍然很吸引人,考慮到區塊鏈開發要面臨的諸多挑戰,其應用更應該像是一個堡壘,同時還要兼備高效的資源管理特性,區塊鏈應用不僅要與許多不被信任的節點進行交互,同時還要爲每個節點甚至是所有節點提供快速服務。尤其是對加密貨幣來說,這種快速服務更是至關重要。要滿足所有這些需求並能在最高優先級執行,你需要能完全控制 CPU 和內存的使用,而 C++ 剛好就能夠滿足用戶這方面的需求。

C++ 另一個有趣的地方是移動語義(move semantic)。移動語義提供了一種在對象之間移動內容而不是複製內容的方法。移動語義的優點是:只有在需要時纔會獲得某些數據的副本,通過減少代碼冗餘來提高性能。而高效的內存管理和高性能都是區塊鏈開發所必須的特性。

除此之外,區塊鏈編程的挑戰還包括並行任務和非並行任務的集成。

可以想到的另一個關於區塊鏈編程的挑戰是並行任務和非並行的任務的集成。大多數編程語言只擅長其中一種,但是,C++ 語言的線程能力使其可以同時處理並行和非並行任務。C++ 語言允許多線程任務進行有效的線程間通信,並優化了單線程處理的性能。

C++ 的優點和缺點

沒啥新鮮的?區塊鏈編程就這幾個關鍵!

基於 C++ 語言的區塊鏈開發案例

C++ 主要用於加密貨幣和重要的區塊鏈項目,如比特幣,Ripple,Litecoin,Stellar 和 Monero 等。

JavaScript

JavaScript 是目前最流行的軟件開發語言之一。JavaScript 語言及其相關的庫和框架,例如:jQuery、React、Angular 和 Node.js,是推動現代 Web 開發技術快速發展的引擎。JavaScript 通常與 HTML 和 CSS 一起,用以增強 Web 在行爲交互方面的功能,當前 JavaScript 主要用於創建交互性強的網頁。

JavaScript 非常擅長處理異步操作,這一主要特性使得它非常適用於區塊鏈開發。隨着區塊鏈上的用戶數量的增加,所有的操作都需要同時執行,JavaScript 可以更輕鬆地處理不同區塊鏈節點之間的通信。但同時我們也不能否認,在最大化的密集計算處理能力方面 JavaScript 不如 C++ 高效。

JavaScript 的優點和缺點

沒啥新鮮的?區塊鏈編程就這幾個關鍵!

基於 JavaScript 語言的區塊鏈開發案例

區塊鏈開發人員可以在 web3.js 和 ethereum.js 中使用 JavaScript,用來構建應用程序的前端,用以連接以太坊網絡和智能合約。

另外在區塊鏈中經常採用 JavaScript 語言的是基於 node.js 平臺的 Hyperledger Fabric SDK,這是一個在 IT 行業和企業中經常使用的大型框架。

Python

Python 是一種相對現代的編程語言,通常是新程序員的最愛,因爲它語法簡單,可以在服務器上創建基於 Web 的應用程序,還可以用來連接數據庫系統,也可以處理大數據並執行復雜的數學運算。

Python 最吸引人的地方是它通過“另起一行”來作爲命令的結束標識,而不像其他編程語言使用分號或括號。

無論你採用哪一種區塊鏈平臺進行開發,都不能忽略 Python 的存在,因爲幾乎每個區塊鏈的生態系統中都有一個或多個用 Python 編寫的公共工具。Python 已經成爲區塊鏈領域中的流行編程語言。

Python 的優點和缺點

沒啥新鮮的?區塊鏈編程就這幾個關鍵!

基於 Python 語言的區塊鏈開發案例

在區塊鏈領域,Python 用於爲 Hyperledger 編寫智能合約,除此之外還有許多其他的項目也採用了 Python,如 Ethereum(pyethereum)也有自己的 Python 實現。同時 Python 也被用來爲 NEO 創建智能合約,這是一個基於社區的非營利性區塊鏈項目。

Go

GoLang,俗稱 Go,是谷歌公司於 2007 年開發的一種相對現代的領域通用語言,並於 2012 年面向公衆開放。它是一種靜態類型的語言,語法有點類似於 C 語言。作爲一種健壯的、多用途的語言,Go 試圖將現代高級語言 (如 Python 和 JavaScript) 的語法和用戶友好性與 C 語言的性能和安全優勢結合起來。Go 是一種編譯語言,提供了豐富的標準庫。當你在區塊鏈項目的多個組件中使用 Go 語言時,該特性將爲你帶來最大的靈活性。

在 Go 中,名爲 Goroutines 的方法提供了異步或並行運行多個程序的能力,這也是區塊鏈項目所需要的一個重要的特性。而在 Java 和其他語言中往往會使用線程來實現該特性。

Go 的優點和缺點

沒啥新鮮的?區塊鏈編程就這幾個關鍵!

基於 Go 語言的區塊鏈開發案例

區塊鏈領域有很多與 Go 語言相關的項目,其中包含一些很受歡迎的項目,例如 Go-Ethereum 是 Ethereum 的 Go 語言實現,也是基於 Go 語言的最重要的項目之一。用 Go 語言實現的另一個重要項目是 Hyperledger Fabric,它是大公司中最受歡迎的區塊鏈解決方案之一。另一個是去中心化在線遊戲項目 Loom Network,它採用 Go 語言實現了其鏈碼。

Solidity

Solidity 是由 Ethereum 團隊(Gavin Wood,Christian Reitwiessner 等)開發的一款類似於 JavaScript 、針對於特定領域、面向對象的高級語言。Solidity 受 C++,Python 和 JavaScript 的影響,爲了在 Ethereum 平臺的以太坊虛擬機(EVM)上創建去中心化應用程序而設計的。EVM 是在 Ethereum 平臺上編寫智能合約的運行時環境。

Solidity 是一種靜態類型語言,支持繼承、庫和複雜的用戶自定義類型。到目前爲止,它是 Ethereum 社區和區塊鏈行業中最適合的領域特定語言(DSL)。

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

Solidity 的優點和缺點

沒啥新鮮的?區塊鏈編程就這幾個關鍵!

基於 Solidity 語言的區塊鏈開發案例

Solidity 語言主要用於開發以太坊智能合約,目前還沒有看到其他項目使用 Solidity,但以太坊生態系統是巨大的,並且也是目前區塊鏈開發中最重要的一部分。

Solidity 是用於智能合約開發的最流行的語言之一。

總結

區塊鏈技術將對每個領域和行業產生巨大的影響。在未來的幾個月或者幾年中,隨着世界變得越來越去中心化,區塊鏈也將被作爲主流技術使用,它有着無限的未來。

原文鏈接:https://dzone.com/articles/a-complete-guide-to-blockchain-programming-edureka

相關文章