以太坊区块交易详情信息

下面是部分以太坊区块链知识普及

以太坊中有两种账户地址

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

这就可以区分开普通账户交易和合约交易了

不正之处,希望留言给予提点,不胜感激

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180913G03IVE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券