iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
0
Blockchain

Smart Contract 開發 - 使用 Solidity系列 第 8

開發智能合約 - 用戶端 Geth, Parity (Day08)

每當在網路上閱讀零散的文章來學習區塊鏈的時,看到 Geth 這個詞都會有點疑惑,它到底是什麼東西。

我知道 Geth 是以太坊的用戶端,它實作了以太坊,但有些文章又說 Geth 可以當作節點使用,即使我知道它可以做什麼,但我還是不知道它到底是什麼,因為這些解釋都太過抽象。

直到持續閱讀區塊鏈相關領域的文章多日,才終於了解它,希望大家看過這篇文章後,不需要像我一樣繞了這麼大圈的路。

從比較常見的例子來說,還記得紅極一時的 BitTorrent (BT),它伴隨了當年仍是窮學生的時光,我們用它來抓一些大型檔案,它的特色是若下載同一檔案的人越多,下載該檔案的速度越快,因為在下載檔案的同時,我們也變成了傳遞這個檔案的節點。所以當我們執行 Geth 之後,本機就會開始去下載區塊鏈的資料,就會變成以太坊網路中的一個節點。這樣算礦工嗎?答案是否定的,因為我們並沒有執行 miner 指令。

實際上我覺得翻譯成用戶端,其實會有點誤導,因為用戶端第一個會聯想到的是伺服器端,但區塊鏈是一個分散式架構,並沒有伺服器端,那 implement ethereum 可能會比較貼切,但中文要怎麼翻?實作以太坊?還是很模糊對吧。

那我們從 Geth 具備了哪些功能來看,它可以建立帳戶,也可以建立交易,還可以透過 API 查詢到區塊鏈裡的資料,所以它具有以太坊規範裡的那些功能,所以它「實作以太坊」,Geth 是用 Go 語言實作的,所以只有 Go 語言可以實作以太坊嗎?

你可以使用任何語言來實作以太坊,像是用 Rust 語言來實作以太坊,專案名稱就叫 Parity。不管是 GethParity 都是實作以太坊,只是使用了不同的程式語言,並且實作的完整度或提供的介面不太一樣。幾乎每種語言都有實作以太坊的相對應專案,但目前最受歡迎是 Geth 和 Parity。

各專案所支援的協定

WS 是 WebSocket 的縮寫,IPC 是指 IPC Socket

go-ethereum

Parity

Ethereumjs

相關專案


上一篇
開發智能合約 - 網路 (Day07)
下一篇
開發智能合約 - 線上版 IDE 之 Remix 基礎篇 (Day09)
系列文
Smart Contract 開發 - 使用 Solidity31

尚未有邦友留言

立即登入留言