android和java以太坊開發區塊鏈應用使用web3j類庫

如何使用web3j爲Java應用或Android App增長以太坊區塊鏈支持,教程內容即涉及以太坊中的核心概念,例如帳戶管理包括帳戶的建立、錢包建立、交易轉帳,交易與狀態、智能合約開發與交互、過濾器和事件等,同時也詳細說明如何使用web3j提供的API開發接口與以太坊進行交互,是java工程師學習以太坊應用開發的不二選擇。java

以太坊概述

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

智能合約平臺json

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

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

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

JSON RPC與web3j

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

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

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

web3j是一個輕量級的用於集成以太坊功能的Java開發庫,它是Java版本的以太坊JSON RPC 接口協議封裝實現,若是須要將你的Java應用或Android應用接入以太坊,用web3j就對了。code

web3j體系概述

web3j的功能組織在不一樣的包中,下圖展現了org.web3j主要包之間的依賴關係:

core:JSON RPC協議的封裝主要由包org.web3j.core實現,它依賴於org.web3j.crypto包提供的密鑰與簽名相關的功能,以及org.web3j.abi包提供的java/solidity類型映射支持。

consoleorg.web3j.console包實現了一個能夠單獨運行的命令行程序web3j,咱們將使用它來 生成solidity合約的Java封裝類,其中,org.web3j.codegen包實現了從abi到java封裝類的代碼生成。

節點相關org.web3j.infura包封裝了對Infura公共節點旳http訪問服務接口, org.web3j.gethorg.web3j.parity則分別封裝了這兩種經常使用以太坊節點軟件旳管理接口。

本課程的目的是幫助java工程師快速掌握使用web3j開發以太坊應用的技能,所以 主要以web3j的開發接口爲主線來展開課程內容,同時穿插講解以太坊的一些基本 概念,例如:帳戶、交易和智能合約的開發等。

課程內容概述

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

  2. 帳戶管理
    將詳細介紹web3j提供的帳戶管理接口。若是你對開發錢包應用(中心化/去中心化)感興趣,這部份內容會有很大的幫助。web3j建立帳戶,建立錢包,轉帳特別是代幣轉帳等豐富的進行交易的功能。

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

  4. 智能合約
    將經過一個投票合約的開發、編譯、代碼生成、部署與交互的完整流程,講解使用web3j操做solitiy智能合約的方法。

  5. 過濾器與事件
    主要講解以太坊的通知機制和web3j的響應式封裝接口。

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

相關文章
相關標籤/搜索