以太坊区块交易信息
2018-09-13 01:54
148 查看
下面是部分以太坊区块链知识普及
以太坊中有两种账户地址
[code]1 普通账户地址 2 合约地址
有关两者的区别 请google 百度 必应呗
如果要做到账确认
就得区分区块中的某笔交易是普通账户交易还是合约的交易
首先通过命令 进入控制台
[code]/root/ethereum/go-ethereum-1.7.3/build/bin/geth attach
使用上一篇命令 eth.getBlock()
获取区块交易信息
之前我们把transactions 数组的信息去除掉了
这次我们要使用的就是它了
[code]说明 transactions 就是每笔交易信息的交易hash值 (不是区块hash值 blockhash)的集合 这个在以太坊中可以是看做唯一的交易订单号 区块链中有几个是可以作为唯一值的 比如区块高度,比如交易hash,比如区块hash 聪明的猿们应该明白了这个东东的作用了吧~~
顺便介绍2个命令
[code]eth.getTransaction 查询区块的交易信息 eth.getTransactionReceipt 查询收据信息 数据说明 参考官网详细介绍 这里给出链接 https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionbyhash https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionreceipt
有这两个命令应该就可以过滤出需要的信息了
有个新的问题 如何区分普通账户交易 还是合约交易?
下面来解决它
打开以太坊区块浏览器
[code]https://etherscan.io
我们在左上角输入1000000 这个数字是随便输入的 当然筒子们你也可以输入 200万 300万啦~~
即查询第1000000个区块的交易信息
其实就是相当于eth.getBlock(1000000)
[code]eth.getBlock(1000000)
以下是验证信息
做到这里 是不是有什么想法了?
我们是不是也可以做一个这样的浏览器了!!!
:)
OK 继续我们的工作
观察数据 可以找到一个共同点 即 value值都是大于0的
其实这就是普通账户交易才会产生的信息
如果知道普通账户转账和合约转账的区别
那么这里就是很容易理解了 转账的机制请查看
[code]https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction
为了验证我们的推测 我们直接去找基于合约的交易信息查看
通过官网下的tokens下拉菜单的token-20选项
我们单击BNB跳转到它的所有交易列表页面
点击最近那个txhash
复制该信息的txhash值
到节点控制台中使用命令查看信息是否一致
这个信息与官网一致
可以看到合约交易的value值都是0
这就可以区分开普通账户交易和合约交易了
不正之处,希望留言给予提点,不胜感激
阅读更多相关文章推荐
- 以太坊中的账户、交易、Gas和区块Gas Limit等概念
- 以太坊中的账户、交易、Gas和区块Gas Limit
- 以太坊区块和交易的存储结构分析
- 以太坊中的账户、交易、Gas和区块Gas Limit等基本概念
- 【以太坊源码】I.区块和交易,合约和虚拟机
- [以太坊源代码分析] I.区块和交易,合约和虚拟机
- 【区块链开发指南】区块链基础之区块和交易
- 某省内所有企业交易信息泄漏,不知道你是其中的一个吗?
- 交易信息平台
- 以太坊加速区块同步方法
- 12306支付出错:交易失败!代码:50050描述:交易信息不完整
- 通过矿工地址(address),获取发生的所有交易的hash值,和该矿工所打包的区块
- 以太坊客户端mist和geth加快区块同步速度的方法
- C#如何进行以太坊合约调用交易,时间处理,使用过滤器和主题。
- 交易信息被篡改 错误码:CONTEXT_INCONSISTENT
- geth查询某个交易的具体信息
- 商户银联交易信息查询
- 数据库交易记录--如何添加审计信息到闪回归档数据以替换操作日志表
- 在以太坊上如何取消/修改已经提交的交易
- 【比原链】比原节点收到“请求区块数据”的信息后如何应答?