下面是部分以太坊區塊鏈知識普及
以太坊中有兩種賬戶地址
1 普通賬戶地址
2 合約地址
有關兩者的區別 請google 百度 必應唄
如果要做到賬確認
就得區分區塊中的某筆交易是普通賬戶交易還是合約的交易
首先通過命令 進入控制臺
/root/ethereum/go-ethereum-1.7.3/build/bin/geth attach
使用上一篇命令 eth.getBlock()
獲取區塊交易信息
之前我們把transactions 數組的信息去除掉了
這次我們要使用的就是它了
說明 transactions
就是每筆交易信息的交易hash值 (不是區塊hash值 blockhash)的集合
這個在以太坊中可以是看做唯一的交易訂單號
區塊鏈中有幾個是可以作為唯一值的 比如區塊高度,比如交易hash,比如區塊hash
聰明的猿們應該明白了這個東東的作用了吧~~
順便介紹2個命令
eth.getTransaction 查詢區塊的交易信息
eth.getTransactionReceipt 查詢收據信息
數據說明 參考官網詳細介紹 這里給出鏈接
https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionbyhash
https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionreceipt
有這兩個命令應該就可以過濾出需要的信息了
### 有個新的問題 如何區分普通賬戶交易 還是合約交易?
下面來解決它
打開以太坊區塊瀏覽器
https://etherscan.io
我們在左上角輸入1000000 這個數字是隨便輸入的 當然筒子們你也可以輸入 200萬 300萬啦~~
即查詢第1000000個區塊的交易信息
其實就是相當于eth.getBlock(1000000)
eth.getBlock(1000000)
以下是驗證信息

做到這里 是不是有什么想法了?
我們是不是也可以做一個這樣的瀏覽器了!!!
# :)
OK 繼續我們的工作




觀察數據 可以找到一個共同點 即 value值都是大于0的
其實這就是普通賬戶交易才會產生的信息
如果知道普通賬戶轉賬和合約轉賬的區別
那么這里就是很容易理解了 轉賬的機制請查看
https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction
為了驗證我們的推測 我們直接去找基于合約的交易信息查看
通過官網下的tokens下拉菜單的token-20選項

我們單擊BNB跳轉到它的所有交易列表頁面

點擊最近那個txhash

復制該信息的txhash值
到節點控制臺中使用命令查看信息是否一致

這個信息與官網一致
可以看到合約交易的value值都是0
這就可以區分開普通賬戶交易和合約交易了
不正之處,希望留言給予提點,不勝感激