eth.coinbase 的 eth.sendTransaction 进行了多次交易并减少了 eth.coinbase 余额
eth.sendTransaction from eth.coinbase makes multiple transactions and decrease the eth.coinbase balance
我正在使用 Ethereum 开发分布式应用程序,go-ethereum 实现 (Geth)。
我在 Digital Ocean droplet (Ubuntu 16.04) 上安装了 geth。
我创建了这样的结构:
devnet$ tree -L 2
.
├── accounts.txt
├── boot.key
├── genesis.json
├── node1
│ ├── geth
│ ├── keystore
│ └── password.txt
我有:
- 一个bootnode/discovery节点
- 一个Seal/full节点
seal节点是这样初始化的:
geth --datadir node1/ init genesis.json
然后是引导节点:
devnet$ bootnode -nodekey boot.key -verbosity 9 -addr :30310
INFO [02-07|22:44:09] UDP listener up self=enode://3ec4fef2d726c2c01f16f0a0030f15dd5a81e274067af2b2157cafbf76aa79fa9c0be52c6664e80cc5b08162ede53279bd70ee10d024fe86613b0b09e1106c40@[::]:30310
在 bootnode 监听后,我 运行 在 node1 上获取:
geth --datadir node1/ --syncmode 'full' --port 30311 --rpc --rpcaddr 'localhost' --rpcport 8501 --rpcapi 'personal,db,eth,net,web3,txpool,miner' --bootnodes 'enode://3ec4fef2d726c2c01f16f0a0030f15dd5a81e274067af2b2157cafbf76aa79fa9c0be52c6664e80cc5b08162ede53279bd70ee10d024fe86613b0b09e1106c40@127.0.0.1:30310' --networkid 1515 --gasprice '1' -unlock '0x87366ef81db496edd0ea2055ca605e8686eec1e6' --password node1/password.txt --mine
注意:这是例子,真实的ip,bootnode "enode"值和账户不是那些。
在这个私有以太坊网络上,我部署了一个 ERC20 合约,具有基本的传输功能,因此,我想使用一些随机地址从 Metamask 调用该功能。
为此,我需要在我的帐户中获取一些 ETH,因此我已连接到 geth 控制台并将一些以太币从 eth.coinbase 转移到该地址:
eth.sendTransaction({from:eth.coinbase, to:"0xf17f52151ebef6c7334fad080c5704d77216b732", value: web3.toWei(10, "ether")})
后来我发现有些交易我没法辨认,我的意思是,只是一笔交易将以太币从一个账户发送到另一个账户,为什么会导致提交多个交易?
下面是情况截图:
此外,这些交易中的每一项都在减少 eth.coinbase 余额(eth.coinbase == 部署合约的地址),所以我开始在那个账户上存入大量以太币,然后在其中一些 "ghost" 交易之后 eth.coinbase 的余额就像 0.0026 Ether..
所以,我有 2 个问题
- 是否存在任何可能减少合约所有者 address/coinbase 余额的情况?
- 知道为什么会出现这些交易吗?
编辑:
就是这个问题... https://github.com/ethereum/go-ethereum/issues/16691
[为了完整性从 Ethereum.SE 交叉发布]
据我所知,默认情况下 Digital Ocean 不会阻止任何端口。
很可能,您的节点的 RPC 是可公开访问的,并且当您解锁帐户以发送交易时,机器人会尝试将其余部分扫到它自己的地址(可能不止一个,因为似乎有多个收件人)。
尝试使用 ufw 阻止从计算机外部访问 RPC 端口,或者干脆关闭 RPC,因为控制台通过 IPC 工作。
确实,如果你看一下主网上的0x6e4cc3e76765bdc711cc7b5cbfc5bbfe473b192e and 0x7097f41f1c1847d52407c629d0e0ae0fdd24fd58,你可以看到他们已经横扫了将近 15 个 ETH,待处理的交易反映了此类机器人的一种常见策略,即预先签署交易在 rpc 解锁时用更高的随机数改变值。
我正在使用 Ethereum 开发分布式应用程序,go-ethereum 实现 (Geth)。
我在 Digital Ocean droplet (Ubuntu 16.04) 上安装了 geth。
我创建了这样的结构:
devnet$ tree -L 2
.
├── accounts.txt
├── boot.key
├── genesis.json
├── node1
│ ├── geth
│ ├── keystore
│ └── password.txt
我有:
- 一个bootnode/discovery节点
- 一个Seal/full节点
seal节点是这样初始化的:
geth --datadir node1/ init genesis.json
然后是引导节点:
devnet$ bootnode -nodekey boot.key -verbosity 9 -addr :30310
INFO [02-07|22:44:09] UDP listener up self=enode://3ec4fef2d726c2c01f16f0a0030f15dd5a81e274067af2b2157cafbf76aa79fa9c0be52c6664e80cc5b08162ede53279bd70ee10d024fe86613b0b09e1106c40@[::]:30310
在 bootnode 监听后,我 运行 在 node1 上获取:
geth --datadir node1/ --syncmode 'full' --port 30311 --rpc --rpcaddr 'localhost' --rpcport 8501 --rpcapi 'personal,db,eth,net,web3,txpool,miner' --bootnodes 'enode://3ec4fef2d726c2c01f16f0a0030f15dd5a81e274067af2b2157cafbf76aa79fa9c0be52c6664e80cc5b08162ede53279bd70ee10d024fe86613b0b09e1106c40@127.0.0.1:30310' --networkid 1515 --gasprice '1' -unlock '0x87366ef81db496edd0ea2055ca605e8686eec1e6' --password node1/password.txt --mine
注意:这是例子,真实的ip,bootnode "enode"值和账户不是那些。
在这个私有以太坊网络上,我部署了一个 ERC20 合约,具有基本的传输功能,因此,我想使用一些随机地址从 Metamask 调用该功能。
为此,我需要在我的帐户中获取一些 ETH,因此我已连接到 geth 控制台并将一些以太币从 eth.coinbase 转移到该地址:
eth.sendTransaction({from:eth.coinbase, to:"0xf17f52151ebef6c7334fad080c5704d77216b732", value: web3.toWei(10, "ether")})
后来我发现有些交易我没法辨认,我的意思是,只是一笔交易将以太币从一个账户发送到另一个账户,为什么会导致提交多个交易?
下面是情况截图:
此外,这些交易中的每一项都在减少 eth.coinbase 余额(eth.coinbase == 部署合约的地址),所以我开始在那个账户上存入大量以太币,然后在其中一些 "ghost" 交易之后 eth.coinbase 的余额就像 0.0026 Ether..
所以,我有 2 个问题
- 是否存在任何可能减少合约所有者 address/coinbase 余额的情况?
- 知道为什么会出现这些交易吗?
编辑:
就是这个问题... https://github.com/ethereum/go-ethereum/issues/16691
[为了完整性从 Ethereum.SE 交叉发布]
据我所知,默认情况下 Digital Ocean 不会阻止任何端口。
很可能,您的节点的 RPC 是可公开访问的,并且当您解锁帐户以发送交易时,机器人会尝试将其余部分扫到它自己的地址(可能不止一个,因为似乎有多个收件人)。
尝试使用 ufw 阻止从计算机外部访问 RPC 端口,或者干脆关闭 RPC,因为控制台通过 IPC 工作。
确实,如果你看一下主网上的0x6e4cc3e76765bdc711cc7b5cbfc5bbfe473b192e and 0x7097f41f1c1847d52407c629d0e0ae0fdd24fd58,你可以看到他们已经横扫了将近 15 个 ETH,待处理的交易反映了此类机器人的一种常见策略,即预先签署交易在 rpc 解锁时用更高的随机数改变值。