Update as promised: All systems are now ‘running’ on the technical side (pun intended) and we’ll be launching Frontier this week.
Thank you to everyone who provided feedback on previous blog posts. What’s clear is that ahead of the big day, many of you wanted to know more about exactly what the sequence of events would be and how to prepare your machines for launch.
Transparent and public release
Frontier users must first create a Genesis block and then load it into the Ethereum client. Genesis blocks are almost database files. It contains all transactions for the sale of Ether, and when a user enters them into the client, it represents their decision to join the network according to its terms. This is the first step toward agreement.
Since the Ethereum presale took place entirely on the Bitcoin blockchain, here’s what it says: public, anyone can create and verify a genesis block. For the sake of decentralization and transparency, Ethereum did not offer Genesis blocks as downloads, but instead created an open source script that anyone could use to create the files. Those links can be found later in this article.
Since the script is already available and we need to coordinate its release, we need to provide arguments to the script to ‘launch’ Frontier together. But how can we do this? and Do you want to stay decentralized?
Arguments must be random parameters that no one, including us, can predict. As you can imagine, there are not many parameters in the world that fit this criteria. But a good parameter is the future block hash of the Ethereum testnet. We had to choose a block number. But which one? It turns out that 1,028,201 is both a prime number and a palindrome, just as we wanted. So #1028201.
Release phase sequence:
- Final stage of public release: You are reading this now.
- Block #1028201 was formed on the Ethereum Testnet and its hash is provided.
- Hashes are used by users around the world as unique parameters in Genesis block creation scripts.
What You Can Do Today
You must first install the client. Let’s use Geth as an example. et (C++ implementation of Ethereum). Geth installation instructions for Windows, Linux, and OSX can be found here. wiki.
After installing the client, you will need to download a Python script that creates Genesis files. The name is ‘mk_genesis_block.py’ and is available for download. here.
Depending on your platform, you can also download curl from the console by installing and running it.
curl -O https://raw.githubusercontent.com/ethereum/genesis_block_generator/master/mk_genesis_block.py
This will create a file in the folder where you called the command. Now you need to install pybitcointools created by Vitalik Buterin. We can get this through the Python package manager pip, so let’s install pip first and then go ahead and install the tools.
The following instructions work on OSX and Linux. Windows users, good news, pip comes standard. Python installer.
curl -O https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py
or (if you already have it installed)
sudo pip install --upgrade bitcoin
As a final step, if you use Eth, you’ll need to choose the right software release to prepare for the big day, as it recently supports new Genesis block parameters.
cd ~/go-ethereum/ git checkout release/1.0.0 git pull make geth
Those who want to be ‘as prepared as possible’ can follow the instructions up to this point. child pull It is recommended to run the latest version of the software just before the fateful block.
If you have previously run the client:
- Back up your keys (some of them may be eligible for Olympic rewards). The key is in ./ethereum/keystore.
- Delete the existing chain. (In ./ethereum. Just delete the following 3 folders: ./extra, ./state, ./blockchain)
- You can safely leave ./ethereum/nodes, ./ethereum/history, and ./ethereum/nodekey as is.
- It doesn’t hurt to pre-create the DAG in ./ethash, but feel free to delete it if you need space.
For a full breakdown of where the configuration files are located, check out: Page In our forum.
It’s then a matter of waiting for block #1028201, which should form around Thursday evening (GMT+0) at the current block resolution time.
Once 1028201 is formed, you can access its hash by querying the node running the testnet using: web3.eth.getBlock(1028201).hashBut we’ll also make that value available on this blog and across all of our services. of society media channel.
You can then generate a Genesis block by running:
python mk_genesis_block.py --extradata hash_for_#1028201_goes_here > genesis_block.json
By default, the script uses Blockr and Blockchain.info to pull Genesis presale results. You can also add: –insight If you want to use a private Ethereum server to get this information, switch. If you have any issues with the script, please file an issue with it. github.
We will not provide Genesis blocks as files, but we will continue to provide Genesis block hashes (right after we create them ourselves) to make it easier for the community to discard invalid or malicious files from third parties.
Once you are satisfied with your Genesis block creation, you can load it into your client using the following command:
./build/bin/geth --genesis genesis_block.json
or:
./build/eth/eth --genesis genesis_block.json
From there, instructions on creating an account, importing a pre-sale wallet, trading, and more can be found in the ‘Getting Started’ Frontier guide. http://guide.ethereum.org/
If you have used Ethereum before, you should generate new keys using the latest (RC) client and should not reuse testnet keys.
A few more things…
We would also like to give you a heads up on the ‘thawing’ stage. During this period, the per-block gas limit is set very low, allowing the network to grow slowly before transactions can occur. We expect the network to be unstable in the early stages of release, including forks, potential unusual information displays, etc. http://stats.ethdev.com Page and various peer to peer (P2P) connection issues. As with the Olympic phase, this instability is expected to stabilize after a few hours/days.
We also want to remind everyone that while we plan to provide a secure platform for the long term, Frontier is a technical release targeted at developers, not a general public release. Keep in mind that early software is often affected by bugs, instability issues, and complex user interfaces. If you want a more user-friendly experience, we recommend waiting for a future Homestead or Metropolis Ethereum release.
Please be especially careful with third-party websites and software from unknown sources. Ethereum only publishes software through the Github platform. https://github.com/ethereum/.
Finally, for clarity, it is important to note the following: Olympiad The program ended this morning at block 1M, but bug bounties are still ongoing and will continue until further notice. You should continue to report security vulnerabilities as they are discovered. https://bounty.ethdev.com/.
—
update
15/07/27: Added instructions for users upgrading from a previous installation.
15/07/28: Minor edit, added link to script github
15/07/29: Added recommendation to generate new keys and not reuse testnet keys.