人民日報整版報導區塊鏈,我只想知道用什麼語言開發?

IT派發表於2018-03-06

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

IT派 - {技術青年圈}持續關注網際網路、區塊鏈、人工智慧領域640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


2月26日,《人民日報》經濟版今日整版刊發了區塊鏈署名評論文章《三問區塊鏈》《抓住區塊鏈這個機遇》及《做數字經濟領跑者》,積極肯定了區塊鏈在降低價值傳輸成本、解放生產力上的作用。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

那區塊鏈具體要用到什麼語言開發呢?


JAVA開發語言(未來幣)

640?wx_fmt=png&wxfrom=5&wx_lazy=1

定義:Java是一種物件導向的程式語言,不僅吸收了c++語言的優點,也拋棄了在c++、指標等概念中難以理解多重繼承的困難,因此Java語言具有強大且易於使用的兩個特性。作為靜態物件導向程式語言的代表,Java語言完美地實現了物件導向的理論,允許程式設計師用優雅的思維方式進行復雜的程式設計。

Java的特點是簡單、物件導向、分散式、健壯、安全、平臺獨立性和可移植性、多執行緒和動態。Java可以編寫桌面應用程式、Web應用程式、分散式系統和嵌入式系統應用程式。

C++開發語言(比特幣、公正通、瑞波ripple)

640?wx_fmt=jpeg

定義:c++是C語言的繼承,它可以是C語言程式設計的過程,也可以是抽象的資料型別,作為基於物件的程式設計的特徵,也可以承擔物件導向程式設計的繼承和多型性。c++擅長物件導向程式設計,它也可以執行基於流程的程式設計,所以c++是問題大小的大小。

GO開發語言(以太坊、IBM)

640?wx_fmt=png

定義:Go是一種新的語言,並行的,垃圾收集,快速編譯的語言。它具有以下特點:

它可以在計算機上編譯一個大的Go程式幾秒鐘。Go提供了一個軟體構建模型,使依賴分析更容易,並且避免了大多數c風格的開始,包括檔案和庫。Go是一種靜態型別的語言,它的型別系統沒有層次結構。因此,使用者不需要花時間在定義型別之間的關係上,這使得他們比典型的面嚮物件語言更輕量級。Go是一個完整的垃圾收集語言,為併發執行和通訊提供基本支援。根據它的設計,為多核機器上的系統軟體的構建提供了一種方法。

Go是一種編譯語言,它結合瞭解釋語言的靈活性、動態型別語言的開發效率和靜態型別的安全性。它還打算成為一種支援網路和多核計算的現代語言。為了實現這些目標,需要解決一些語言問題:一個具有表達性但輕量級的型別系統、併發和垃圾收集機制、嚴格的依賴規則等等。這些不能通過庫或工具來解決,所以建立。

Solidity開發語言(以太坊)

640?wx_fmt=jpeg

定義:Solidity是在Ethereum虛擬機器(EVM)上執行的智慧契約的高階語言。它的語法接近於Javascript,是一種物件導向的語言。但是當涉及到把網路作為一個真正的東西的時候,這是非常不同的。

Python開發語言(SnakeCoin)

在本文將演示如何用不到50行的Python程式碼中製作一個簡單的blockchain。

我們首先定義我們的塊將是什麼樣子。在塊鏈中,每個塊都有時間戳和可選的索引,在SnakeCoin中,將同時儲存兩者,並且為了幫助確保整個塊鏈的完整性,每個塊將具有自識別雜湊。像比特幣一樣,每個塊的雜湊將是塊的索引,時間戳,資料以及前一個塊的雜湊雜湊的加密雜湊。當然,這些資料可以是任何你想要的。

640?wx_fmt=png&wx_lazy=1

很好!現在我們有了塊結構,但是我們正在建立一個塊鏈,需要向實際的鏈條新增塊。如前所述,每個塊都需要上一個塊的資訊。也就是說,出現了一個問題:塊區中的第一個塊怎麼到達那裡?因此,第一個塊,或起源塊,是一個特殊的塊。在許多情況下,它是手動新增的或具有允許新增的唯一邏輯值。

我們將建立一個函式返回一個起源塊,使事情變得容易。該塊的索引為0,它在“previous hash”引數中具有任意資料值和任意值。


640?wx_fmt=png&wx_lazy=1

現在我們可以建立一個起源塊,我們需要一個函式來生成塊鏈中的後續塊。該函式將將鏈中的前一個塊作為引數,建立要生成的塊的資料,並返回具有其相應資料的新塊。當新塊得到先前塊中的雜湊資訊時,塊鏈的完整性隨著每個新的塊而增加。如果我們沒有這樣做,外界資訊會更容易“改變過去”,並用自己的更新變化來替代我們的鏈條。這個雜湊鏈作為加密證明,有助於確保一旦塊被新增到塊鏈中,它不能被替換或刪除。


640?wx_fmt=png&wx_lazy=1

以上是必要的工作。現在我們可以建立我們的blockchain!在我們的例子中,blockchain本身就是一個簡單的Python列表。列表的第一個元素是起源塊。當然,我們需要新增後續的塊。因為SnakeCoin是最小的塊,所以我們只新增20個新的塊。我們可以用for迴圈來做到這一點。


640?wx_fmt=png&wx_lazy=1

讓我們來測試一下


640?wx_fmt=png&wx_lazy=1

完美執行。


程式設計師小依

往期精彩回顧640?wx_fmt=png

小米上市,雷軍是否會成為中國新首富?

劉強東重磅宣佈無人智慧配送站投入使用!

有個微信小程式想用人工智慧跟你一起修復老照片


640?wx_fmt=png

相關文章