forked from ethereum/ropsten
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
23 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Ropsten Revival | ||
|
||
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](http://ethereum.stackexchange.com/questions/12477/ropsten-testnet-is-under-kind-of-attack-what-can-we-do). | ||
|
||
The denial-of-service (DoS) attack on Ropsten inserted "state bloat" or spam blocks that were very slow to process, requiring a lot of CPU time and memory. Thus, syncing an Ethereum client to the Ropsten testnet became slow, and consumed excessive disk space (the attack blocks added over 10 Gigabytes of bloat to the Ropsten state database). | ||
|
||
To revive the Ropsten chain without changing the protocol (i.e. without a soft or hard fork), we mined a new highest-difficulty ("heaviest") chain from a block prior to the DoS attack. Because the new revived chain has the highest difficulty, it is now the default chain for all Ropsten testnet clients. And because the chain excludes the DoS attack blocks, syncing to Ropsten is once again a fast and low memory process (the cleaned state is around 1 Gigabyte). To use the revived Ropsten chain, users should resync their clients; this may require resetting the chain database, depending on when the client was last used. Instructions for syncing to the revived chain can be [found here](https://github.com/ethereum/ropsten). | ||
|
||
Additionally, on the revived chain we have reprocessed ("replayed") all transactions that occurred on Ropsten since the attack (around 250,000 transactions in over 120,000 blocks). This means that any users who deployed contracts or sent transactions after the attack can expect to find those contracts and transactions on the revived chain as well. This comes with the caveat that the replayed transactions may have executed differently on the revived chain (particularly for transactions that read in block hashes as a source of randomness, for example). Further technical details of the chain revival and transaction replaying process [are here](https://github.com/ethereum/ropsten/tree/master/ropsten-revival). | ||
|
||
## Ropsten: a PoW Ethereum Testnet | ||
|
||
While there is a trend toward adoption of alternative "Proof-of-Authority" (PoA) consensus protocols for Ethereum testnets, such as [Kovan](https://github.com/kovan-testnet/proposal) and [Rinkeby](https://github.com/ethereum/EIPs/issues/225), Ropsten as a public Proof-of-Work (PoW) Ethereum testnet remains relevant for multiple reasons. | ||
|
||
Since the Ethereum mainnet still operates based on PoW consensus, a PoW testnet best reproduces the current production environment, i.e. system and network conditions on the live Ethereum mainnet. Thus, Ropsten is useful for experiments to investigate certain issues that we observe today on the mainnet, such as the relation between [uncle rates and gas prices](https://blog.ethereum.org/2016/10/31/uncle-rate-transaction-fee-analysis/). And for Dapp developers, Ropsten is useful for realistic tests of back-end performance (i.e. mainnet transactions and block times) and front-end user experience. | ||
|
||
Furthermore, some exciting projects on the horizon will begin on a public PoW Ethereum testnet. In the very near term, this includes [SmartPool](http://www.smartpool.io), which promises contract-based decentralized mining pools that could transform not only the existing mining pool infrastructure for Ethereum, but also the pool infrastructure of other PoW blockchains like Bitcoin and Zcash. And later, a PoW testnet will be needed for testing the Casper [hybrid PoW/PoS transition](https://www.reddit.com/r/ethereum/comments/5y9bqb/video_excerpt_of_dev_discussion_on_metropolis/deo8p0f/) strategy. | ||
|
||
## The Future of Ropsten: Here to Stay | ||
|
||
Given the disruption of Ropsten-based Dapp development that occurred in the wake of the attack, many members of the Ethereum community have wondered about the future of Ropsten, and whether a PoW testnet chain is economically viable in a public setting open to potential attackers. The Ropsten Revival demonstrates that although an attack can be disruptive, defensive counter-measures to restore and protect the chain's integrity are practical. | ||
|
||
To coordinate further defensive efforts, we have set up a Ropsten Testnet mining pool at [http://pool.ropsten.ethereum.org](http://pool.ropsten.ethereum.org) and a Ropsten gitter room at [gitter.im/ethereum/ropsten](http://gitter.im/ethereum/ropsten). The gitter room will also serve to gather participants for upcoming PoW testnet projects, including the aforementioned [SmartPool](http://www.smartpool.io), and for longer-term planning of Ropsten's direction. There's no doubt that Ropsten is necessary as a PoW Ethereum chain and public testnet, but its evolution could take many forms. Let's see what the future brings; to Ropsten! |