Go語言以太坊DApp開發教程

以太坊是備受關注的區塊鏈,它基於密碼學技術和P2P通訊技術構建了一個去中心化的平臺,全部的交易同步保存在每一個節點中,經過將區塊單向級聯成鏈,以太坊有效的保證了交易的不可篡改:web

在這裏插入圖片描述

智能合約平臺

以太坊是第一個實現了虛擬機的區塊鏈,所以爲智能合約 - Smart Contract - 的運行提供了良好的支持環境。也正由於這個緣由,以太坊被稱爲區塊鏈2.0,以區別於比特幣表明的以數字加密貨幣爲核心特徵的區塊鏈1.0。json

能夠將智能合約理解爲機器之間的合同約定,在知足必定條件時自動執行約定好的邏輯,例如在保險理賠流程中,若是理賠條件知足就自動將賠償金釋放給出險人,這個流程就可使用智能合約來實現。api

有多種語言能夠開發以太坊智能合約,但目前最經常使用的是相似於JavaScript的Solidity語言。本課程中將採用Solidity講解智能合約的開發。websocket

JSON RPC

若是咱們但願構造一個去中心化應用(DApp),除了智能合約的開發,一般還須要使用其餘開發語言爲用戶提供操做智能合約的用戶接口,例如開發一個網頁、一個手機App或者一個桌面應用。這些代碼都須要與以太坊進行交互。socket

以太坊規定了每一個節點須要實現的JSON RPC API應用開發接口,該接口是傳輸無關的,應用程序能夠經過HTTP、websocket或IPC等多種通訊機制來使用該接口協議操做以太坊節點:學習

在這裏插入圖片描述

理論上你可使用任何語言基於JSON RPC接口開發出以太坊之上的去中心化應用,不過爲了提升開發效率,更好的辦法是使用特定語言的JSON RPC封裝庫,這些庫封裝了JSON RPC的協議細節, 有助於開發人員聚焦在業務邏輯的實現上。區塊鏈

雖然以太坊的官方客戶端geth就是採用Go語言開發的,可是直接使用geth提供的接口對於DApp開發來說過於重量級和碎片化了,更好的辦法是最DApp開發增長一層抽象,屏蔽掉沒必要要的細節,好比利用課程提供的 ethtool 開發包。網站

課程內容概述

本課程的目的是幫助Go開發工程師快速掌握開發以太坊應用的技能,同時穿插講解以太坊的一些基本概念,例如:帳戶、交易和智能合約的開發等。加密

第二章 Hi,以太坊code

這一章將經過一個簡單的Go應用的開發來說解使用Go語言進行以太坊應用開發的最簡流程,經過這一部分的學習,你就能夠在本身的Go應用中引入基本的以太坊支持了。

第三章 帳戶管理

這一章將詳細介紹以太坊的帳戶管理接口。若是你對開發中心化錢包應用感興趣,或者須要在本身的網站中動態建立帳戶(例如,你但願爲網站增長對以太坊支付的支持),那麼這部份內容會有很大的幫助。

第四章 理解狀態與交易

這一章主要講解以太坊的交易操做接口,同時也介紹一些重要的概念,例如狀態、裸交易、gas等。這部份內容將幫助你理清Go應用與以太坊交互的大多數問題。

第五章 智能合約的開發、部署與交互

這一章將經過一個ERC20代幣合約的開發、編譯、代碼生成、部署與交互的完整流程,講解使用Go語言操做solitiy合約的方法。若是你但願爲本身的網站增長代幣支持,這一部分的內容是必須的。

第六章 過濾器、發佈訂閱與事件

這一章主要講解以太坊的通知機制以及如何在Go應用中使用過濾器和發佈訂閱機制來監視塊和交易的生成以及合約事件的觸發。

課程爲每一個知識點都提供了相應的預置代碼,你能夠在實驗環境的~/repo目錄下查看。

課程鏈接:Go以太坊開發詳解 — 匯智網

相關文章
相關標籤/搜索