區塊鏈只能用go語言嗎

2022-12-27 18:00:20

不是。區塊鏈是一種程式設計思想,原則上使用任何一種程式語言都可以實現,比如Solidity、C++、C#、Java、javascript、Go都可以實現區塊鏈的開發;區塊鏈技術涉及的面很廣,而程式語言只是一種手段,把設計理念用程式碼呈現出來,做成產品服務使用者。

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

區塊鏈是一種程式設計思想,原則上使用任何一種程式語言都可以實現。比如:C++、Java、javascript、python、Go都可以實現開發區塊鏈。

區塊鏈技術涉及的面很廣,包括:計算機技術、密碼學、經濟學等等很多學科。程式語言只是一種手段,把設計理念用程式碼呈現出來,做成產品服務使用者。

區塊鏈開發的三大方向

理論上,可以使用任何一門程式語言學習和編寫區塊鏈專案。包括:C++、C#、Java、Python、Go、Javascript,等等,都可以開發區塊鏈專案。

比如,位元幣系統雖然使用 C++ 開發,但是我們在學習位元幣原理時,可以使用 Java、Python、Go 任何一種語言的位元幣原始碼。不過,不同的開發方向,有不同的首選程式語言。

區塊鏈開發目前有三大方向:

  • 區塊鏈底層技術
    對於底層技術,安全、效能要求高。首選:C++、Go 。 常見公鏈的開發語言如下:

1.png

  • 區塊鏈上層應用:DAPP

    對於上層應用,涉及智慧合約開發、前後端開發等相關知識。迅速開發、快速迭代才能搶佔市場先機,首選:Javascript,基於以太坊 首選 Solidty。

  • 通證相關應用

    對於通證相關應用:重在設計邏輯,語言上沒有什麼特別的推薦。

七大程式語言

目前,大部分割區塊鏈專案,主要使用如下七大程式語言:

22.png1、Solidity

Solidity,一種在以太坊開發人員中流行的新的簡單程式語言,因為它是用於開發以太坊智慧合約的語言。Solidity是一種面向合同的圖靈完整程式語言,估計開發人員數量超過200,000。

3.png

由於以太坊在智慧合約方面處於領先地位,許多替代區塊鏈平臺確保它們與Solidity(或ERC-20)相容,從而允許智慧合約從以太坊輕鬆移植到新的區塊鏈網路中。

以太坊,技術上以太坊作為「世界計算機」用作以太坊虛擬機器器(EVM),由多種語言組成,包括C++,Python,Ruby,Go和Java。JavaScript充當以太坊的主幹,因為它充當指令碼執行的執行時環境。

2、Java

Java,一種並行,物件導向和基於類的通用程式語言,其設計方式使Java幾乎沒有實現依賴性。自1995年推出以來,Java已經成為前三種程式語言之一,並且擁有超過900萬開發人員。NEM的核心區塊鏈網路僅用Java編寫(很快將成為C++)。

4.png

3、C#

C#,一種物件導向的語言,使開發人員能夠在全球至少有2M開發人員的.NET Framework上構建健壯的應用程式。C#是在2000年開發的。自成立以來,它已成為一種流行的程式語言,用於構建功能強大的跨平臺程式碼,可在Windows,Mac,Linux和Android等多種作業系統上執行。用C#編寫的區塊鏈專案包括:

  • Stratis是一個由Microsoft支援的區塊鏈即服務提供商,允許企業構建自己的私有區塊鏈系統。

  • NEO是用C#編寫的,但它也支援各種程式語言,如Javascript,Java,Python和Go。

5.png

4、Javascript

Javascript,通常縮寫為JS,這是一種多正規化語言,支援事件驅動,功能和命令(包括物件導向和基於原型)的程式設計風格。它是全球至少970萬開發人員使用的世界上最流行的程式語言之一。

6.png

Lisk的SideChain開發工具包(SDK)是用JavaScript編寫的,允許開發人員在Lisk的區塊鏈平臺上構建應用程式。

5、SQL

SQL,結構化查詢語言或「續集」是IBM開發的一種程式語言,用於與儲存,查詢和運算元據的資料庫進行通訊。目前估計有700萬使用者使用SQL。流行的資料庫,如MySQL,PostgreSQL,SQL Server,DB2,Oracle等都使用SQL來開發應用程式。包含SQL的區塊鏈專案是:

7.png

Aergo,由Blocko根據其專有的Coinstack技術開發的企業級嵌入式解決方案利用SQL智慧合約。Aergo鏈具有基於SQL的智慧合約平臺,允許企業實體在商業業務環境中建立和執行高階智慧合約。

6、C++

C++,一種通用程式語言,估計有440萬開發人員,它最大的優勢在於能夠擴充套件資源密集型應用程式並使其能夠順利執行,從而使其成為一種非常流行的3D遊戲程式語言。使用C ++的區塊鏈專案包括:

  • EOS,C++是EOS的主要程式語言,因為它可以靈活地在區塊鏈上執行大量應用程式。EOS還支援任何編譯成WebAssembly(WASM)的語言。

  • bitcoin,位元幣核心的網路是用C++程式設計的。

8.png

7、Golang

Go,又稱 Golang,是 Google 開發的一種開源通用程式語言,設計初衷是為了解決分散式計算,是雲端計算領域的新興語言。Go 語言語法與 C 語言相近,特點是:編譯速度快,執行效率高、網路程式設計友好、高並行、跨平臺。Go 易學易用。能很好的滿足區塊鏈行開發需要的 」執行效率高、高並行、跨平臺,網路開發要求高」 等特點,與區塊鏈開發堪稱絕配!

9.png

區塊鏈底層開發,早期多以 C++ 為主,現在一些專案開始使用 Go 語言開發。採用 Go 編寫的專案包括:

  • HyperLedger Fabric:使用 HyperLedger Fabrics 構建的智慧合約,大多都是用Go編寫的。

為什麼Go語言能成為區塊鏈主流開發語言呢?

因為區塊鏈系統開發涉及到算力及應用,這些C++語言自然可以解決,但是繁瑣的開發成本過高,用其他上層語言,如Java、Python等雖然能降低開發成本,但是效能及區塊鏈的算力又跟不上,所以很多企業在開發區塊鏈技術的時候,就會選擇開發成本低並且開發效能客觀的Go語言作為首選語言。

Go語言在開發區塊鏈上效率奇高,優勢明顯,主要體現在如下方面:

1)可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個檔案上去就完成了。

2)靜態型別語言,但是有動態語言的感覺,靜態型別的語言就是可以在編譯的時候檢查出來隱藏的大多數問題,動態語言的感覺就是有很多的包可以使用,寫起來的效率很高。

3)語言層面支援並行,這個就是Go的特色,天生的支援並行。Go就是基因裡面支援的並行,可以充分的利用多核,很容易的使用並行。

4)內建runtime,支援垃圾回收,這屬於動態語言的特性之一,雖然目前來說GC不算完美,但是足以應付我們所能遇到的大多數情況,特別是Go1.1之後的GC。

5)簡單易學,Go語言的作者都有C的基因,那麼Go自然而然就有了C的基因,那麼Go關鍵字是25個,但是表達能力很強大,幾乎支援大多數你在其他語言見過的特性:繼承、過載、物件等。

6)豐富的標準庫,Go目前已經內建了大量的庫,特別是網路庫非常強大。

7)內建強大的工具,Go語言裡面內建了很多工具鏈,gofmt工具,自動化格式化程式碼,能夠讓團隊review變得如此的簡單,程式碼格式一模一樣,想不一樣都很困難。

8)跨平臺編譯,如果你寫的Go程式碼不包含cgo,那麼就可以做到window系統編譯linux的應用,如何做到的呢?Go參照了plan9的程式碼,這就是不依賴系統的資訊。

9)內嵌C支援,Go裡面也可以直接包含C程式碼,利用現有的豐富的C庫。

【相關推薦:Go視訊教學、】

以上就是區塊鏈只能用go語言嗎的詳細內容,更多請關注TW511.COM其它相關文章!