1. 程式人生 > >以太坊學習4--rpc呼叫

以太坊學習4--rpc呼叫

啟動測試節點並開啟rpc功能:

geth -testnet -rpc console

查詢餘額:

官方文件說明:
這裡寫圖片描述
在Post工具中執行官方案例:
這裡寫圖片描述
注:result為地址上的餘額,是16進製表示的,單位為“為”
 

面對這個測試節點,我們第一步肯定是要新建賬號的:

去找到管理者的API:https://github.com/ethereum/go-ethereum/wiki/Management-APIs
這裡寫圖片描述
這裡寫圖片描述
注意:但是你會報錯
原因:在啟動測試節點的時候並沒有新增personal的API(即Management方法不在預設的RPC服務中的)
解決:輸入exit命令退出後再執行該命令重啟測試節點geth --testnet --syncmode "fast" --rpc --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal" console


 
再次調newAccount方法則可以成功:
這裡寫圖片描述
 

在轉賬操作先得解鎖賬戶:

這裡寫圖片描述
注:params下的第三個引數是“持續時長”,如果不填預設時間是300秒
這裡寫圖片描述
 

獲取賬號餘額(我們可以看到該賬戶餘額為0):

這裡寫圖片描述
注:我們一般用“latest”查詢賬戶餘額,“pending”為正在處理中的交易,可以理解為正在交易中還沒有到賬,“ earliest”為最早的餘額
這裡寫圖片描述
 

檢視交易筆數(該賬戶還沒有發生過交易,所以是0):

這裡寫圖片描述
注:正在處理中的交易也要算進去,所以這裡的引數是“pending”
這裡寫圖片描述
 

交易(我這裡的賬戶還沒有以太幣,所以無法完成該方法):

這裡寫圖片描述


個別引數說明:
from:轉賬人地址
to:收賬人地址
gas:手續費的數量
gasPrice:手續費的單價,根據行情,大家出多少你就出多少
value:轉賬的金額
data:以後呼叫智慧合約會涉及到
nonce:交易的筆數
注:這個交易的引數有的可以不設定,因為它有預設值,比如nonce你不填它也會自動給你填上的。這個交易是解鎖交易,但是簽名交易的話這些引數都必須手動設定
 
可以通過eth_getTransactionCount方法來查詢交易筆數,如果查詢為幾的話,下次交易的nonce就設定為幾,因為這個nonce是從0開始的

如果交易成功的話會返回一個交易hash,然後你就可以根據這個hash去區塊鏈上去查詢這筆交易(pending為正在處理中,success為已經交易成功):

這裡寫圖片描述
你也可以根據API方法查詢:
這裡寫圖片描述
注:如果查的晚的話會有blockNumber和blockHash的,這是因為交易已經上鍊了,所以會有塊的資訊。如果查的早的話是查不到塊資訊的。我們可以根據這個塊的資訊為標誌來判斷交易是否已經上鍊,但是成功與否我們是不知道的,而且gas到底消耗了多少我們也是不知道的。這就有了下面這個介面了
 

查詢這筆交易是否成功(和上一個方法並不衝突,有時候需要配合這兩個介面使用):

這裡寫圖片描述
這裡寫圖片描述
個別引數說明:
gasUsed:實際花費的gas數量
status:交易狀態,1成功,0失敗
 

如果交易成功後再檢視收賬人餘額:

這裡寫圖片描述
注:其中result的值為16進位制,你可以百度“線上進位制轉換”
這裡寫圖片描述

相關推薦

學習4--rpc呼叫

啟動測試節點並開啟rpc功能: geth -testnet -rpc console 查詢餘額: 官方文件說明: 在Post工具中執行官方案例: 注:result為地址上的餘額,是16進製表示的,單位為“為”   面對這

學習(7)利用RPC-JSON【post|get】與節點進行互動【2】關於呼叫eth_sendTransaction失敗的檢查方法

關於呼叫eth_sendTransaction失敗的檢查方法 本篇主要講利用JSON-RPC介面呼叫以太坊中已經部署好的合約函式時,如果出現呼叫失敗的檢查方法。  前置知識: 呼叫eth_sendTransaction所需的abi編碼:https:/

學習(9)關於geth搭建私有鏈下呼叫合約遇到require (false)會消耗完所有gas的解決方案【國內首發】

關於geth搭建私有鏈下呼叫合約遇到require (false)會消耗完所有gas的解決方案 如果你沒遇到過這個問題,你會覺得很奇怪,Solidity的關鍵字require,根據用法解釋:https://ethfans.org/posts/when-to-use-revert-as

學習筆記(七)——Truffle整合Nodejs

這篇文章的內容緊接著上章的內容,上一篇講了truffle合約部署的基本操作,文章最後講了通過console來呼叫部署成功的合約中的方法,之所以truffle console能夠直接呼叫合約中的方式,是因

學習(5)利用Web3.js與節點互動【1】

利用Web3.js與節點互動  一、環境配置 【寫在最前:本文用到的主要工具:node.js+geth+ web3.js 1.0.0-beta.18】 1、確保已經安裝node.js 個人在debian9上安裝nodejs的經歷比較坎坷,但是據說ubuntu上安裝方便

學習(6)關於web3.js 1.0版本中event事件無法觸發的問題

關於web3.js 1.0版本中event事件無法觸發的問題 寫在最前:請檢查你的provider連線方式,http provider已不支援event事件的觸發了 具體請看官方源文件 一、問題還原: (1)先給出智慧合約程式碼 合約內容比較簡單 deposi

eth 合約之間相互呼叫

準備: remix 說明: demo1.sol 和 demo02.sol 使用相同賬戶進行部署 demo1.sol pragma solidity ^0.4.25; /** * 有所有人的合約 * 所有許可權管理都在這裡定義 * event Owners

4個發展階段與難度炸彈

以太坊(Ethereum,貨幣符號ETH)在設計之初就決定最終要採取權益證明(PoS)去維護交易的安全性,取代效率低下,資源消耗大的工作量證明(PoW)。前期通過PoW建立起一套可以信賴的數字加密貨幣體系,之後就將基於該貨幣轉到PoS體系,通過權益人交保證金的方式去保證其

學習(8)編寫C++程式與節點進行互動【2】

編寫C++程式與節點進行互動 【1】簡單版本,需對http request有一定了解,以及QT的基本操作  【2】進行類的封裝,個人水平有限,如有紕漏,請下方留言   測試環境: debian 9 QT 5.5 geth/v1.8.1

學習(::)簡單專案實戰

簡單專案實戰 目的:以html+js構建網頁,展示鏈上資訊。 一、合約 合約內容: 用結構體user記錄【使用者】個人資訊,對映為users 用結構體consignment記錄【電能】交易訂單,對映為orders 利用call獲取訂單的資訊

學習(二)--geth入門命令和miner.start返回null的問題

geth --datadir "./ethdev" --nodiscover console 2>>geth.log  //geth 進入控制檯 --datadir 指定鏈的目錄 與公有鏈區分開進入命令列模式,其中引數–datadir 代表資料夾地址,–nodis

學習(五)--ubuntu下安裝atom編輯器

在你的Ubuntu安裝AtomPPA安裝,開啟終端使用以下命令安裝:sudo add-apt-repository ppa:webupd8team/atom sudo apt-get update sudo apt-get install atom 解除安裝Atomsudo apt-get remove at

學習(一):利用Geth搭建私有鏈

在以太坊的多種語言實現的客戶端中,推薦使用go語言版本的,也是使用最廣的一個版本go-ethereum。geth是go-ethereum的縮寫。 本次開發平臺為Ubuntu 16.04版本64位的虛擬

學習之Java開發框架web3j的使用---部署合約

智慧合約名以 HelloContract 為例 1,編譯合約原始碼 命令:solc HelloContract.sol –bin –abi –optimize -o outputPath solc .sol –bin

學習7--Web3j和智慧合約

一、Web3j入門 以太坊推出了web3.js的nodejs庫,但是對於學Java出身的而言非常的不習慣,在github中尋找到了Java版本的web3j。輕量級客戶端與以太坊互動的Java庫。 web3j github地址:https://github.c

學習之常用命令

miner.start(1) 啟動挖礦 miner.stop() 停止挖礦 miner.setEtherbase(addr) 設定主賬戶 personal.unlockAccount(eth.accounts[0]) 解鎖賬戶 p

區塊鏈學習(二)學習簡介

很多人在剛接觸區塊鏈的時候疑惑以太坊是什麼東西,和區塊鏈有什麼關係,為什麼要學習以太坊等問題,本文將簡單介紹,目的是學習和理解以太坊方便以後深入學習。 這裡從區塊鏈的發展說起: 區塊鏈起源於比特幣,是比特幣的底層技術。具體介紹參照我對區塊鏈介紹的部落格:http://bl

學習6--智慧合約的線上IDE工具

導語: Remix有哪些功能? 開發智慧合約(集成了solidity語言的編輯器) 動態除錯(debug)智慧合約 訪問已部署的智慧合約的狀態和屬性 程式碼分析,給出錯誤提示,並給出最佳實踐的提示 除錯和測試Dapp(需要藉助於Mist或者其它注入

:MetaMask連線私有網路呼叫合約方法時報錯: [ethjs-rpc] rpc error with payload Error: invalid sender

錯誤詳情: [ethjs-rpc] rpc error with payload {"id":7663982154336,"jsonrpc":"2.0","params":["0xf86b808504a817c800833d090094001a4039eed5a5099b2

go-ethereum客戶端JSON-RPC API呼叫(一)

前幾篇部落格主要介紹了go-ethereum客戶端不同環境的搭建,今天這篇部落格是建立在前幾排部落格的基礎上。當搭建完成之後,我們可以通過各種方式與節點進行互動(JavaScript Console、JSON-RPC 、web3等)。本篇以建立一個賬戶為例,介紹