区块链学习之Web3j入门(三):状态与交易
生活随笔
收集整理的這篇文章主要介紹了
区块链学习之Web3j入门(三):状态与交易
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.以太坊的兩種交易
以太坊中有兩種交易,分別為普通交易和裸交易。普通交易由外部節點進行簽名,然后發送到網絡中進行確認;裸交易由外部應用進行簽名,節點不再額外處理,而只是負責發送到網絡中進行確認(未經節點加工的原始交易數據)。交易作為一種激勵,使得賬戶的狀態不斷發生改變(賬戶余額),即產生了一種基于余額激勵的以太坊狀態機。
2. Web3j獲取賬戶余額
以太坊定義了eth_getBalance接口用來獲取賬戶余額,在web3j中對應的封裝方法為ethGetBalance(),響應對象為EthGetBalance:
@Testpublic void getAccountBalance() throws IOException {Web3j web3j = Web3j.build(new HttpService("http://localhost:8545"));String account0 = web3j.ethAccounts().send().getAccounts().get(0);//獲取第1個賬戶信息BigInteger balance = web3j.ethGetBalance(account0, DefaultBlockParameterName.LATEST).send().getBalance();//獲取第一個用戶的余額,ethGetBalance第二個參數為指定特定的塊,DefaultBlockParameterName.LATEST為最近的一個塊。//.EARLIEST為最初的塊中賬戶余額信息BigInteger balance1 = web3j.ethGetBalance(account0, new DefaultBlockParameterNumber(12L)).send().getBalance();//第12塊中的賬戶余額信息System.out.println(balance);System.out.println(balance1);}執行結果:(單位為wei,相當于100個以太幣)
3.貨幣單位的表示與轉換
Web3j中Unit的枚舉類型定義以太坊貨幣的單位:
- Convert.Unit.WEI
- Convert.Unit.KWEI
- Convert.Unit.MWEI
- Convert.Unit.GWEI
- Convert.Unit.SZABO
- Convert.Unit.FINNEY
- Convert.Unit.ETHER
- Convert.Unit.KETHER
- Convert.Unit.METHER
- Convert.Unit.GETHER
進制轉換實現:
結果:
4.兩種交易
以太坊約定了兩種交易不同的提交接口:普通交易使eth_sendTransaction 調用提交,而裸交易則應當使用eth_sendRawTransaction調用提交。事實上,在公共節點中,通常會拒絕普通交易的提交,而要求外部應用必須進行離線簽名。
下節中再詳細講述兩種交易的具體實現過程~~
總結
以上是生活随笔為你收集整理的区块链学习之Web3j入门(三):状态与交易的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机组成原理机器码怎么求,计算机组成原
- 下一篇: 高效办公之如何高效利用互联网提高你的工作