Ropsten Testnet – Attack on Ropsten Testnet and Possible Solutions

attacksethminerkovanropstentestnets

For the last approximately 24 hours, Ropsten testnet is under an attack in my opinion. The gas limit is raised to 200m and the attacker was proposing blocks with more than 4,000 internal txs transfering 1 wei to different addresses. Mining reward is more than 12 eth now.

I think this is the block started the attack https://testnet.etherscan.io/block/586948.

I believe this makes my computer sync extremely slow and for the past 24 hours, I haven't been able to catch up with the chain.

However, looks like the attacker stopped attacking but other miners are still follow the gas limit. Maybe people don't know how to lower gas limit even that miners can do so at some point, some percent of current gas limit.

So my question is: What is the easiest way for miners to lower gas limit? Does it actually help?

Edit 1:
There is a hero with this address 0x00d92369a644ab070f38f8877b50feb5b61508ed is trying to lower the gas limit by proposing many (almost 2000 blocks now) empty blocks with lowered gas limit set. His first block is here https://testnet.etherscan.io/block/590360.

Edit 2:
The testnet is forked now. It split at block number 590359. Looks like the joke hasn't ended yet.

Best Answer

Update - 25th March 2017

Ropsten has been revived!

We are pleased to announce that the Ropsten testnet has been revived! Thanks to a generous donation of GPU hashpower, the Ropsten chain has been cleared of the spam blocks that had accumulated in a recent attack.

https://github.com/ethereum/ropsten/blob/master/revival.md


Update - 18th March 2017

From the https://testnet.etherscan.io/ homepage:

Announcement: There are currently at least 2 forks of the Ropsten network, so depending on which fork you are connected to there might be a mismatch of block data and transactions. Once the new TESTNET has been decided by the community and made public, "testnet.etherscan.io" will move over to the new testnet chain


Update - 6th March 2017

Ropsten should be considered dead. See the answer from 5chdn - (and upvote it!) - for details on its replacement.


For users running Parity, there was a workaround published on the Parity Gitter channel:

So the procedure would be [corrected]:

  • download the ropsten-543210.snapshot
  • restore from the snapshot: parity --chain=ropsten restore ropsten-543210.snapshot
  • grab the ropsten-revert.json
  • run parity --chain=ropsten-revert.json
  • mine on it as much as possible

Edit:

The below instructions for Geth don't actually work, presumably due to the Parity and Geth chainspecs (genesis.json formats) being incompatible, though Geth won't tell you this when you pass it to geth init.

And the equivalent for Geth using the same ropsten-revert.json file:

  • Remove your current ~/.ethereum/testnet/chaindata folder
  • Initialise with the new .json file: geth --testnet init <path/to/ropsten-revert.json>
  • Start Geth with whatever options you normally use, e.g.: geth --testnet --fast --rpc --rpcapi db,eth,net,web3,personal --cache=1024 --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*"
Related Topic