ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
下面是部分以太坊区块链知识普及 以太坊中有两种账户地址 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) 以下是验证信息 ![](https://box.kancloud.cn/f1263f02f8e3103a0a31afe6994db71b_1797x596.png) 做到这里 是不是有什么想法了? 我们是不是也可以做一个这样的浏览器了!!! # :) OK 继续我们的工作 ![](https://box.kancloud.cn/49eecb21f67d15055a20b6d4efc9866d_1768x486.png) ![](https://box.kancloud.cn/47f219606c5286cc0a594d38a857d84c_1633x688.png) ![](https://box.kancloud.cn/dd9cfc8dd85d99c8535a2bca24ff1882_1094x405.png) ![](https://box.kancloud.cn/dcf016a96e72128f073cf412fc3c5d3a_1342x419.png) 观察数据 可以找到一个共同点 即 value值都是大于0的 其实这就是普通账户交易才会产生的信息 如果知道普通账户转账和合约转账的区别 那么这里就是很容易理解了 转账的机制请查看 https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction 为了验证我们的推测 我们直接去找基于合约的交易信息查看 通过官网下的tokens下拉菜单的token-20选项 ![](https://box.kancloud.cn/5006969e69b456ad9f64aa6e62f69063_1376x704.png) 我们单击BNB跳转到它的所有交易列表页面 ![](https://box.kancloud.cn/60d1f12783ebe5548fc7b4e3111b05e5_1355x779.png) 点击最近那个txhash ![](https://box.kancloud.cn/11c5c82fb523ffc74b4fa99943aa9cde_1243x739.png) 复制该信息的txhash值 到节点控制台中使用命令查看信息是否一致 ![](https://box.kancloud.cn/c8e3f2899a57a5a1f016c6c5a1040d4b_1716x391.png) 这个信息与官网一致 可以看到合约交易的value值都是0 这就可以区分开普通账户交易和合约交易了 不正之处,希望留言给予提点,不胜感激