以太坊网络爬虫,深度剖析以太坊网络

这篇文章主要介绍了以太坊网络爬虫,深度剖析以太坊网络 ,文中通过代码以及文档配合进行讲解,很详细,它对在座的每个人的研究和工作具有很经典的参考价值。 如果需要,让我们与区块链资料网一起学习。

https://www.interchains.cc/16701.html

以太坊网络爬虫,深度剖析以太坊网络是很好的区块链资料,他说明了区块链当中的经典原理,可以给我们提供资料,以太坊网络爬虫,深度剖析以太坊网络学习起来其实是很简单的,

不多的几个较为抽象的概念也很容易理解,之所以很多人感觉以太坊网络爬虫,深度剖析以太坊网络比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难

以太坊eth网络爬虫,深度剖析以太坊eth网络

之前一直听说黑客RPC盗币,觉得挺有意思的,最近也体验了一下。这个Bug最新版的geth客户端已经没有,Http调用解锁账户早已被禁掉,以太坊ethHolder不需要担心。

写这篇文章是想让区块链blockchain充满趣味性,不再是核心开发者中晦涩的代码。目前以太坊eth网络中夹杂着很多其他链的节点信息,由于很多公链基于以太坊eth二次开发,没有修改p2p参数,导致节点信息污染了真实的以太坊eth节点。通过devp2p节点发现拿到的节点数据,通过查询network ID,有很大一部分不属于以太坊eth网络,有趣的是在这些链里面,查询你自己的账户,余额竟然不为零,可惜有的项目不开源,都不知道是哪些公链项目。

矿池钱包

为了让大家有读下去的欲望,先抛出一个发现,通过扫描全网节点,发现了一个矿池Hiveon Pool,里面有6个账户,以太坊eth总持仓在1W个左右。这是其中一个地址0x4c549990a7ef3fea8784406c1eecc98bf4211fa5

可用RPC节点

以下是扫描到的一些可用RPC节点,Dapp终于可以愉快的部署了。

  • 解决Dapp开发没有部署节点
  • 快速同步老是追不上最新块
  • 同步占用硬盘和同步慢

使用下面节点发送离线交易可快速实现合约和转账操作,GAS费不要太低就行,离线交易的安全性在于节点无法作恶,只可选择是否继续广播。

http://95.217.58.225:8545 apis map[admin:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0] http://144.91.122.52:8545 apis map[eth:1.0 net:1.0 personal:1.0 rpc:1.0 web3:1.0] http://95.217.163.203:8545 apis map[eth:1.0 net:1.0 rpc:1.0 web3:1.0] http://167.99.192.187:8545 apis map[admin:1.0 debug:1.0 eth:1.0 ethash:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0] http://142.93.227.185:8545 apis map[eth:1.0 net:1.0 rpc:1.0 web3:1.0] http://161.97.81.18:8545 apis map[debug:1.0 eth:1.0 net:1.0 parity:1.0 parity_accounts:1.0 parity_pubsub:1.0 parity_set:1.0 parity_transactions_pool:1.0 personal:1.0 private:1.0 pubsub:1.0 rpc:1.0 secretstore:1.0 signer:1.0 traces:1.0 web3:1.0] http://46.4.63.234:8545 apis map[admin:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0] http://157.230.142.236:8545 apis map[eth:1.0 net:1.0 rpc:1.0] http://46.4.86.252:8545 apis map[admin:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0] http://95.217.87.230:8545 apis map[eth:1.0 personal:1.0 rpc:1.0 web3:1.0] http://195.154.81.121:8545 apis map[debug:1.0 eth:1.0 net:1.0 parity:1.0 parity_accounts:1.0 parity_pubsub:1.0 parity_set:1.0 personal:1.0 private:1.0 pubsub:1.0 rpc:1.0 secretstore:1.0 shh:1.0 shh_pubsub:1.0 signer:1.0 traces:1.0 web3:1.0] http://49.12.93.10:8545 apis map[admin:1.0 debug:1.0 eth:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0] http://165.227.99.131:8545 apis map[eth:1.0 net:1.0 rpc:1.0]

这些大部分是geth节点,少量是parity节点,由于较熟悉geth代码,所以下面的操作都是基于Geth客户端。 原理可读上一篇文章。

查询节点信息

在上篇文章中已讲过大致的原理,通过节点发现不停的遍历全网节点,使用默认的8545端口去连接,获取连接成功的节点。 以太坊eth默认开发的api是[eth:1.0 net:1.0 rpc:1.0 web3:1.0]这几个,可通过SupportedModules方法获取

过滤主网节点

节点发现了太多的无用节点,需要通过network IDchainID过滤拿到主网节点。

client.Call(&ver, "net_version") client.CallContext(ctx, &result, "eth_chainId")

查询矿工信息

        err := client.Call(&mine, "eth_mining")         err = client.Call(&coinbase, "eth_coinbase")         err = client.Call(&hashrate, "eth_hashrate")

上面的方法可依次查询节点是否在挖矿,查询挖矿奖励地址和当前挖矿的hash率。

查询节点账户

    err := client.Call(&account, "eth_accounts")

这个返回的是当前节点的账户数,通过keystore导入到节点中的账户,地址都会返回出来。

查询账户余额

client.Call(&result, "eth_getBalance", account, toBlockNumArg(blockNumber))

此api可将节点的挖矿地址和账户余额都查询出来。

查询账户信息

        client.Call(&raws, "personal_listWallets")         for _, account := range raws {             if account.Status == "Unlocked" {                 arr = append(arr, rawAccount{"Unlocked", account.Accounts[0].Address.String()})             } else {                 arr = append(arr, rawAccount{"Locked", account.Accounts[0].Address.String()})             }         }

此方法可查询节点账户状态,是否锁定,需要节点启动时显示指定。

转账

 ec.c.CallContext(ctx, nil, "eth_sendRawTransaction", hexutil.Encode(data))

此方法为发起离线交易

    err := client.Call(&result, "eth_sendTransaction", mapData)

此方法需要节点签名交易,正常情况下会返回账户锁定错误。

部分转自网络,侵权联系删除www.interchains.cchttps://www.interchains.cc/16701.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 以太坊网络爬虫,深度剖析以太坊网络

提供最优质的资源集合

立即查看 了解详情