android web3j 代币查询_Android通过web3j以太坊智能合约交互
如果要下載整個以太坊區(qū)塊鏈并保持本地節(jié)點(diǎn)同步。當(dāng)區(qū)塊鏈占用了我計(jì)算機(jī)上超過100GB的空間。這在臺式計(jì)算機(jī)上可能有意義,但在移動設(shè)備上則不太合理。
解決此限制的一種方法是使用像Infura這樣的服務(wù)。Infura允許你連接到遠(yuǎn)程以太坊節(jié)點(diǎn)并執(zhí)行交易,而無需擔(dān)心維護(hù)和同步本地節(jié)點(diǎn)。
為了能夠使用本機(jī)Java代碼與智能合約進(jìn)行交易,我們使用一個名為Web3j的庫。Web3j為你提供生成智能合約java封裝包的實(shí)用程序,以及通過HTTP和IPC完整實(shí)現(xiàn)以太坊的JSON-RPC客戶端API。它提供了更多功能,但剛說的這些對這個“Android Ethereum hello world”示例來說最重要的功能。
我想要與之互動的示例智能合約是一個Greeter。它在區(qū)塊鏈上存儲可以讀取或更新的問候消息。它看起來像這樣:
contract greeter is mortal {
/* define variable greeting of the type string */
string greeting;
/* this runs when the contract is executed */
function greeter(string _greeting) public {
greeting = _greeting;
}
/* change greeting */
function changeGreeting(string _greeting) public {
greeting = _greeting;
}
/* main function */
function greet() constant returns (string) {
return greeting;
}
}
為了能夠創(chuàng)建封裝包,我們首先要編譯這個智能合約:
solc greeter.sol --bin --abi --optimize -o /
要生成運(yùn)行的封裝包:
web3j solidity generate /path/to/.bin /path/to/.abi -o /path/to/src/main/java -p com.your.organisation.name
Java部分
首先,我們需要獲得以太坊區(qū)塊鏈交互的Web3實(shí)例。它看起來像這樣:
InfuraHttpService infuraHttpService = new InfuraHttpService(url);
Web3j web3j = Web3jFactory.build("https://ropsten.infura.io/YOUR_API_KEY");
現(xiàn)在我們可以讀取合約幾乎是即時的。
Greeter greeter = Greeter.load(greeterContractAddress, web3j, credentials, gasPrice, gasLimit);
Future greeting = greeter.greet();
Utf8String greetingUtf8 = greeting.get();
String result = greetingUtf8.getValue();
但交易不是即時的,可能需要幾分鐘才能得到驗(yàn)證。
Greeter greeter = Greeter.load(greeterContractAddress, web3j, credentials, gasPrice, gasLimit);
TransactionReceipt transactionReceipt = greeter.changeGreeting(new Utf8String(greetingToWrite)).get(timeout);
String result = "Successful transaction. Gas used: " + transactionReceipt.getGasUsed();
如果希望快速進(jìn)行web3j、java、以太坊開發(fā),那請看我們精心打造的教程:
java以太坊開發(fā)教程,主要是針對java和android程序員進(jìn)行區(qū)塊鏈以太坊開發(fā)的web3j詳解。
其他以太坊教程如下:
以太坊入門教程,主要介紹智能合約與dapp應(yīng)用開發(fā),適合入門。
以太坊開發(fā)進(jìn)階教程,主要是介紹使用node.js、mongodb、區(qū)塊鏈、ipfs實(shí)現(xiàn)去中心化電商DApp實(shí)戰(zhàn),適合進(jìn)階。
python以太坊,主要是針對python工程師使用web3.py進(jìn)行區(qū)塊鏈以太坊開發(fā)的詳解。
php以太坊,主要是介紹使用php進(jìn)行智能合約開發(fā)交互,進(jìn)行賬號創(chuàng)建、交易、轉(zhuǎn)賬、代幣開發(fā)以及過濾器和事件等內(nèi)容。
C#以太坊,主要講解如何使用C#開發(fā)基于.Net的以太坊應(yīng)用,包括賬戶管理、狀態(tài)與交易、智能合約開發(fā)與交互、過濾器和事件等。
匯智網(wǎng)原創(chuàng)翻譯,轉(zhuǎn)載請標(biāo)明出處。這里是原文
總結(jié)
以上是生活随笔為你收集整理的android web3j 代币查询_Android通过web3j以太坊智能合约交互的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小萝贝控机大师工具推荐(一款在PC就能控
- 下一篇: android sina oauth2.