不是。區塊鏈是一種程式設計思想,原則上使用任何一種程式語言都可以實現,例如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 。常見公鏈的開發語言如下:
#區塊鏈上層應用:DAPP
#對於上層應用,涉及智能合約開發、前後端開發等相關知識。快速開發、快速迭代才能搶佔市場先機,首選:Javascript,基於以太坊 首選 Solidty。
通證相關應用程式
對於通證相關應用:重在設計邏輯,語言上沒有特別的推薦。
七大程式語言
#目前,大部分區塊鏈項目,主要使用以下七大程式語言:
1、Solidity
Solidity,一種在以太坊開發人員中流行的新的簡單程式語言,因為它是用於開發以太坊智能合約的語言。 Solidity是一種以合約為導向的圖靈完整程式語言,估計開發人員數量超過20萬。
由於以太坊在智能合約方面處於領先地位,許多替代區塊鏈平台確保它們與Solidity(或ERC-20)兼容,從而允許智能合約從以太坊輕鬆移植到新的區塊鏈網路中。
以太坊,技術上以太坊作為「世界電腦」用作以太坊虛擬機(EVM),由多種語言組成,包括C ,Python,Ruby,Go和Java。 JavaScript充當以太坊的主幹,因為它充當腳本執行的運行時環境。
2、Java
Java,一種並發,物件導向和基於類別的通用程式語言,其設計方式使Java幾乎沒有實作依賴性。自1995年推出以來,Java已成為前三種程式語言之一,並且擁有超過900萬名開發人員。 NEM的核心區塊鏈網路僅以Java編寫(很快就會成為C )。
3、C
#C#,一種物件導向的語言,使開發人員能夠在全球至少有2M開發人員的.NET Framework上建立健全的應用程式。 C#是在2000年開發的。自成立以來,它已成為一種流行的程式語言,用於建立功能強大的跨平台程式碼,可在Windows,Mac,Linux和Android等多種作業系統上運行。用C#編寫的區塊鏈項目包括:
Stratis是一個由Microsoft支援的區塊鏈即服務供應商,允許企業建立自己的私有區塊鏈系統。
NEO是用C#寫的,但它也支援各種程式語言,如Javascript,Java,Python和Go。
4、Javascript
#Javascript,通常縮寫為JS,這是一種多範式語言,支援事件驅動,功能和命令(包括物件導向和基於原型)的程式設計風格。它是全球至少970萬名開發人員使用的世界上最受歡迎的程式語言之一。
Lisk的SideChain開發工具包(SDK)是用JavaScript編寫的,讓開發人員在Lisk的區塊鏈平台上建立應用程式。
5、SQL
SQL,結構化查詢語言或「續集」是IBM開發的一種程式語言,用於與存儲,查詢和操作資料的資料庫進行通訊。目前估計有700萬用戶使用SQL。流行的資料庫,如MySQL,PostgreSQL,SQL Server,DB2,Oracle等都使用SQL來開發應用程式。包含SQL的區塊鏈專案是:
Aergo,由Blocko根據其專有的Coinstack技術開發的企業級嵌入式解決方案利用SQL智慧合約。 Aergo鏈具有基於SQL的智慧合約平台,可讓企業實體在商業業務環境中建立和執行高階智慧合約。
6、C
C ,一種通用程式語言,估計有440萬開發人員,它最大的優勢在於能夠擴展資源密集型應用程式並使其能夠順利運行,從而使其成為非常流行的3D遊戲程式語言。使用C 的區塊鏈專案包括:
EOS,C 是EOS的主要程式語言,因為它可以靈活地在區塊鏈上運行大量應用程式。 EOS也支援任何編譯成WebAssembly(WASM)的語言。
bitcoin,比特幣核心的網路是用C 程式設計的。
7、Golang
Go,又稱Golang,是Google 開發的開源通用程式語言,設計初衷是為了解決分散式運算,是雲端運算領域的新興語言。 Go 語言語法與 C 語言相近,特點是:編譯速度快,執行效率高、網頁程式設計友善、高並發、跨平台。 Go 易學易用。能很好的滿足區塊鏈行開發所需的 」執行效率高、高並發、跨平台,網路開發要求高」 等特點,與區塊鏈開發堪稱絕配!
區塊鏈底層開發,早期多以 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語言嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!