溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)

發(fā)布時(shí)間:2022-01-05 18:08:44 來(lái)源:億速云 閱讀:192 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)”吧!

如何使用web3j為Java應(yīng)用或Android App增加以太坊區(qū)塊鏈支持,教程內(nèi)容即涉及以太坊中的核心概念,例如賬戶管理包括賬戶的創(chuàng)建、錢包創(chuàng)建、交易轉(zhuǎn)賬,交易與狀態(tài)、智能合約開(kāi)發(fā)與交互、過(guò)濾器和事件等,同時(shí)也詳細(xì)說(shuō)明如何使用web3j提供的API開(kāi)發(fā)接口與以太坊進(jìn)行交互,是java工程師學(xué)習(xí)以太坊應(yīng)用開(kāi)發(fā)的不二選擇。

以太坊概述

以太坊是備受關(guān)注的區(qū)塊鏈,它基于密碼學(xué)技術(shù)和P2P通信技術(shù) 構(gòu)建了一個(gè)去中心化的平臺(tái),所有的交易同步保存在每個(gè)節(jié)點(diǎn)中, 通過(guò)將區(qū)塊單向級(jí)聯(lián)成鏈,以太坊有效的保證了交易的不可篡改:

Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)

智能合約平臺(tái)

以太坊是第一個(gè)實(shí)現(xiàn)了虛擬機(jī)的區(qū)塊鏈,因此為智能合約 - Smart Contract - 的運(yùn)行提供了良好的支持環(huán)境。也正因?yàn)檫@個(gè)原因,以太坊被稱為區(qū)塊鏈 2.0,以區(qū)別于比特幣代表的以數(shù)字加密貨幣為核心特征的區(qū)塊鏈1.0。

可以將智能合約理解為機(jī)器之間的合同約定,在滿足一定條件時(shí)自動(dòng) 執(zhí)行約定好的邏輯,例如在保險(xiǎn)理賠流程中,如果理賠條件滿足就自動(dòng) 將賠償金釋放給出險(xiǎn)人,這個(gè)流程就可以使用智能合約來(lái)實(shí)現(xiàn)。

有多種語(yǔ)言可以開(kāi)發(fā)以太坊智能合約,但目前最常用的是類似于JavaScript的 Solidity語(yǔ)言。本課程中將采用Solidity講解智能合約的開(kāi)發(fā)。

JSON RPC與web3j

如果我們希望構(gòu)造一個(gè)去中心化應(yīng)用(DApp),除了智能合約的開(kāi)發(fā), 通常還需要使用其他開(kāi)發(fā)語(yǔ)言為用戶提供操作智能合約的用戶接口,例如 開(kāi)發(fā)一個(gè)網(wǎng)頁(yè)、一個(gè)手機(jī)App或者一個(gè)桌面應(yīng)用。這些代碼都需要與以太坊進(jìn)行交互。

以太坊規(guī)定了每個(gè)節(jié)點(diǎn)需要實(shí)現(xiàn)的JSON RPC API 應(yīng)用開(kāi)發(fā)接口,該接口是傳輸無(wú)關(guān)的,應(yīng)用程序可以通過(guò)HTTP、websocket或IPC等多種 通信機(jī)制來(lái)使用該接口協(xié)議操作以太坊節(jié)點(diǎn):

Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)

理論上你可以使用任何語(yǔ)言基于JSON RPC接口開(kāi)發(fā)出以太坊之上的 去中心化應(yīng)用,不過(guò)為了提高開(kāi)發(fā)效率,更好的辦法是 使用特定語(yǔ)言的JSON RPC封裝庫(kù),這些庫(kù)封裝了JSON RPC的協(xié)議細(xì)節(jié), 有助于開(kāi)發(fā)人員聚焦在業(yè)務(wù)邏輯的實(shí)現(xiàn)上。

web3j是一個(gè)輕量級(jí)的用于集成以太坊功能的Java開(kāi)發(fā)庫(kù),它是Java版本的以太坊JSON RPC 接口協(xié)議封裝實(shí)現(xiàn),如果需要將你的Java應(yīng)用或Android應(yīng)用接入以太坊,用web3j就對(duì)了。

web3j體系概述

web3j的功能組織在不同的包中,下圖展示了org.web3j主要包之間的依賴關(guān)系:

Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)

core:JSON RPC協(xié)議的封裝主要由包org.web3j.core實(shí)現(xiàn),它依賴于org.web3j.crypto包提供的密鑰與簽名相關(guān)的功能,以及org.web3j.abi包提供的java/solidity類型映射支持。

consoleorg.web3j.console包實(shí)現(xiàn)了一個(gè)可以單獨(dú)運(yùn)行的命令行程序web3j,我們將使用它來(lái) 生成solidity合約的Java封裝類,其中,org.web3j.codegen包實(shí)現(xiàn)了從abi到j(luò)ava封裝類的代碼生成。

節(jié)點(diǎn)相關(guān)org.web3j.infura包封裝了對(duì)Infura公共節(jié)點(diǎn)旳http訪問(wèn)服務(wù)接口, org.web3j.gethorg.web3j.parity則分別封裝了這兩種常用以太坊節(jié)點(diǎn)軟件旳管理接口。

本課程的目的是幫助java工程師快速掌握使用web3j開(kāi)發(fā)以太坊應(yīng)用的技能,因此 主要以web3j的開(kāi)發(fā)接口為主線來(lái)展開(kāi)課程內(nèi)容,同時(shí)穿插講解以太坊的一些基本 概念,例如:賬戶、交易和智能合約的開(kāi)發(fā)等。

感謝各位的閱讀,以上就是“Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Android和Java以太坊開(kāi)發(fā)區(qū)塊鏈怎么使用web3j類庫(kù)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI