以太坊生態系統中的開發工具和技術 原

如果你是以太坊區塊鏈的新手,那麼你可能會不知所措(至少我是),並試圖瞭解以太坊生態系統中的所有工具和技術。因此,我決定在開始學習以太坊時簡要描述下你經常遇到的各種組件。希望這將有助於你全面瞭解以太坊生態系統以及所有部分如何組合在一起。

1.以太坊

以太坊是一個智能合約區塊鏈,你可以在其上構建去中心化的應用程序(稱爲智能合約)。如果你是技術專家,本白皮書值得一讀:https://github.com/ethereum/wiki/wiki/White-Paper

如果你之前已經構建了Web應用程序,我寫了一篇文章,比較以太坊區塊鏈和Web應用程序架構,這可能有助於在更高層次上理解以太坊。

2.Geth

Geth是以太坊基金會提供的官方客戶端軟件。它是用Go編程語言編寫的。該軟件包含一些值得理解的組件:

  • 客戶端守護程序

當你啓動此客戶端守護程序時,它將連接到網絡中的其他客戶端(也稱爲節點)並下載區塊鏈的副本。它將不斷與其他節點通信,以使其區塊鏈的副本保持最新。它還能夠挖掘塊並向區塊鏈添加交易,驗證塊中的交易並執行交易。它還通過公開可以通過RPC與之交互的API充當服務器。

  • geth控制檯

這是一個命令行工具,可讓你連接到正在運行的節點,並執行各種操作,如創建和管理帳戶,查詢區塊鏈,簽署並向區塊鏈提交交易等。

  • mist瀏覽器

這是用於與節點通信的桌面應用程序。你使用geth控制檯執行的任何操作都可以通過此圖形用戶界面完成。

3.Parity

Parity是以太坊協議的另一個很好的實現,用Rust編程語言編寫。它是一個非官方的客戶端,由一家名爲Parity Inc.的公司維護。任何人都可以實現客戶端軟件並加入以太坊網絡。你可以按照本黃皮書中的規範來實施你自己的客戶端!

4.Web3.js

就像你有geth,mist瀏覽器等與ethereum節點進行通信一樣,還有一個名爲Web3.js的javascript庫,可以用來與節點進行交互。由於它是一個javascript庫,你可以使用它來構建基於Web的dapps。

5.solidity

Solidity是用於編寫智能合約以便在以太坊區塊鏈上運行的最流行的編程語言。它是一種高級語言,在編譯時會轉換爲EVM(以太坊虛擬機)字節代碼。這與Java世界非常相似,其中有Scora,Groovy,Clojure,JRuby等JVM語言。編譯時所有這些都生成在JVM(Java虛擬機)中運行的字節代碼。你可以創建像Solidity這樣的語言,只要你遵循規範並且你的語言編譯爲有效的EVM字節代碼就行!

還有一個非常好的基於瀏覽器的IDE,你可以在這裏編寫合約,編譯和部署到區塊鏈:http://remix.ethereum.org/

6.Truffle/Embark

就像你有Web應用程序開發的框架,如Ruby on Rails,Python/Django等,Truffle和Embark是用於開發dapps的兩個最流行的框架。它們消除了在區塊鏈上編譯和部署合同的許多複雜性。

如果你是Ethereum dapp開發的新手,我寫了一系列的指導教程,可以在123開始。

7.Metamask

如果你在以太坊社區閒逛超過一週,你將不可避免地遇到Metamask。在撰寫本文時,它是一個用於與以太坊節點交互的chrome插件。對於世界上每個人來說,運行節點與區塊鏈進行交互是不現實的。因此,Metamask的人員擁有許多節點,因此你不必這樣做。你所要做的就是安裝Metamask,它會自動連接到他們的節點。

8.ENS

以太坊命名系統是以太坊世界的DNS。就像你將IP地址映射到人類可讀的名稱一樣,你可以將任何以太坊合約或錢包地址映射到人類可讀的名稱。

例如:146.115.22.177→google.com。你可以輸入解析爲該IP地址的google.com,而不是在瀏覽器中鍵入IP地址。

例如:0x80C013d980aB049471c88E1603b8b4a60E03295C是我的錢包地址。如果你有心情給我發送一些以太幣,你不必記住這個地址。一旦ENS啓動,我可能會將它映射到mvmurthy.eth,你可以用它來輕鬆地給我錢:)。

9.Swarm

區塊鏈可以存儲少量數據。如果你想存儲患者記錄,銷售合同或某些需要公開時間戳的大型文件,該怎麼辦?在區塊鏈中存儲blob既昂貴又無法擴展。Swarm用於解決這個問題。Swarm是一種分散的內容存儲和分發服務。你可以將其視爲CDN,而不是在一家公司的服務器上託管的整個CDN,它通過互聯網分佈在計算機上。就像運行以太坊節點一樣,你運行一個swarm節點來連接到羣網絡。

當你將以太坊合約部署到區塊鏈時,你將獲得ABI的部署地址和JSON接口(合同接口類似於API)。當你希望某人使用你的合約時,你必須向他們提供已部署的地址和ABI。將來,ABI將存儲在Swarm上,所以任何人都可以通過查看以太坊地址來查找ABI。

10.IPFS

IPFS(星際文件系統)在概念上與Swarm完全相似。它是一個分散的存儲系統。它與以太坊直接無關,但可以與以太坊集成。

你可以在這裏閱讀Swarm和IPFS之間的區別:https://github.com/ethersphere/go-ethereum/wiki/IPFS-&-SWARM

11.Whisper

你沒有聽到很多關於Whisper的信息,但在以太坊生態系統中卻是一項有趣的技術。它是Dapps彼此交互的通信協議。你可以在這裏閱讀更多相關信息:https://github.com/ethereum/wiki/wiki/Whisper

下面是嘗試將所有部分組合在一起:

======================================================================

分享一些以太坊、EOS、比特幣等區塊鏈相關的交互式在線編程實戰教程:

  • java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
  • python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
  • php以太坊,主要是介紹使用php進行智能合約開發交互,進行賬號創建、交易、轉賬、代幣開發以及過濾器和交易等內容。
  • 以太坊入門教程,主要介紹智能合約與dapp應用開發,適合入門。
  • 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
  • C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智能合約開發與交互、過濾器和交易等。
  • EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
  • java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Java代碼中集成比特幣支持功能,例如創建地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
  • php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Php代碼中集成比特幣支持功能,例如創建地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
  • tendermint區塊鏈開發詳解,本課程適合希望使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI接口、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操代碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。

匯智網原創翻譯,轉載請標明出處。這裏是原文以太坊生態系統中的工具和技術

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章