Site icon WSJ-Crypto

Concluding Milestones: Insights from the Ethereum Foundation Blog

An announcement as promised: all systems are now ‘Go’ on the technical front (pun intended) and we plan to unveil Frontier this week.

Gratitude to all who provided input on my earlier blog entry. What became clear is that leading up to the significant day, many of you were eager to understand more about the exact progression of events, and how to ready your machine for the launch.

A clear and open launch

Users of Frontier will first need to create, then import the Genesis block into their Ethereum client. The Genesis block is essentially a database file: it encompasses all transactions from the Ether sale, and when a user inputs it into the client, it signifies their choice to engage with the network under its stipulations: it marks the initial step toward consensus.

Due to the fact that the ether pre-sale was conducted entirely on the Bitcoin blockchain, its contents are publicly accessible, allowing anyone to create and authenticate the Genesis block. In the spirit of decentralization and clarity, Ethereum will not supply the Genesis block as a downloadable file, but has instead developed an open-source script that anyone can utilize to generate the file, with a link provided later in this article.

Since the script is readily accessible and the release must be synchronized, a parameter must be supplied to the script to ‘initiate’ Frontier simultaneously. But how can we achieve this and maintain decentralization?

The parameter must be a random variable that no one, not even ourselves, can foresee. As one could imagine, there aren’t many variables that meet this criterion, but a suitable choice is the hash of a forthcoming block on the Ethereum testnet. We had to select a block number, but which one? 1,028,201 appears to be both prime and palindromic, just as we prefer. Therefore, #1028201 is the one.

Procedure leading to the release:

  • Final preparations for the release disclosed: You are currently reading this.
  • Block #1028201 is created on the Ethereum testnet, and assigned a hash.
  • The hash is utilized by users globally as a distinct parameter for the Genesis block generation script.

What you can do today

Firstly, you’ll need the client set up; I’ll use Geth as a reference, but the same can be accomplished with Eth (the C++ version of Ethereum). You can find Geth installation guidelines for Windows, Linux and OSX on our wiki.

Once you have set up a client, you now need to download the Python script that generates the Genesis file. It’s named ‘mk_genesis_block.py’, and is available for download here.

Depending on your operating system, you can also download it from the terminal by installing curl and executing;

curl -O https://raw.githubusercontent.com/ethereum/genesis_block_generator/master/mk_genesis_block.py

This will produce the file in the same directory from which you executed the command. Next, you will need to install the pybitcointools developed by our very own Vitalik Buterin. You can acquire these through the Python package manager pip, so we will first install pip, and then the tools immediately after.

The instructions below should work on OSX and Linux. For Windows users, good news, pip comes with the standard Python installer.

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py


or (if you had it installed previously),

sudo pip install --upgrade bitcoin

One final step, if you are utilizing Eth, we recently added support for the new Genesis block parameter, thus requiring you to acquire the appropriate version of the software in preparation for the significant day:

cd ~/go-ethereum/
git checkout release/1.0.0
git pull
make geth

For those wishing to be ‘as prepared as feasible,’ following the guidelines up to this point may be beneficial; that being said, a git pull just prior to the critical block is likely advisable to ensure you are operating the most recent version of any software.

If you have previously operated the clients:

  • Secure a backup of your keys (some could qualify for Olympic rewards) – they can be found in ./ethereum/keystore
  • Kindly remove your previous chain (located in ./ethereum; delete only the following three folders: ./extra, ./state, ./blockchain)
  • It is safe to retain ./ethereum/nodes, ./ethereum/history, and ./ethereum/nodekey
  • Having DAGs pre-generated in ./ethash will not cause issues, but you are free to delete them if additional space is necessary

For a detailed overview of the location of the configuration files, please refer to this page in our forums.

Thereafter, it will simply be a waiting game for block #1028201, which, based on the current block resolution time, should be formed around Thursday evening GMT+0.

Once 1028201 is formed, its hash can be retrieved by querying a node operating on the testnet with web3.eth.getBlock(1028201).hash, however, we will also make that value available here on this blog alongside all our social media channels.

You will then have the capability to create the Genesis block by executing:

python mk_genesis_block.py --extradata hash_for_#1028201_goes_here > genesis_block.json

By default, the script utilizes Blockr and Blockchain.info to gather the Genesis pre-sale results. Additionally, you may append the –insight switch if you prefer to utilize the private Ethereum server to acquire this information. Should you experience any complications with the script, please report the issue on its github.

While we will not offer the Genesis block as a document, we will still provide the Genesis block hash (shortly after we create it ourselves) to ensure that third-party invalid or malicious files can be easily dismissed by the community.

Once you are content with the generation of the Genesis block, you can load it into the clients using the following command:

./build/bin/geth --genesis genesis_block.json

or:

./build/eth/eth --genesis```html
 genesis_block.json

From that point, guidelines on establishing an account, importing your pre-sale wallet, making transactions, etc., can be discovered in the ‘Getting Started’ Frontier manual at http://guide.ethereum.org/

Be aware that if you have utilized Ethereum in the past, you should create new keys using a recent (RC) client, and refrain from reusing testnet keys.

A few additional considerations…

We also wish to provide you with a brief alert regarding the ‘thawing’ phase — the time frame during which the gas limit per block will be configured very low to enable the network to develop gradually before transactions can commence. You should anticipate network volatility at the outset of the release, including forks, possible irregularities in the information displayed on our http://stats.ethdev.com page, and several Peer to Peer connectivity complications. Much like during the Olympic phase, we expect this instability to stabilize after a few hours or days.

Additionally, we want to remind everyone that while we aim to deliver a secure platform in the long run, Frontier is a technical release aimed at developers, and not intended for general release. Bear in mind that early software frequently experiences bugs, instability issues, and intricate user interfaces. If you desire a more user-friendly experience, we advise waiting for the upcoming Homestead or Metropolis Ethereum releases.

Exercise particular caution with third-party websites and software of unknown origin — Ethereum will solely publish software through its GitHub platform at https://github.com/ethereum/.

Finally, for transparency, it’s essential to clarify that the Olympic program concluded at block 1M this morning, however, the bug bounty remains active — and will continue until further notice. Any security vulnerabilities, if discovered, should still be reported to https://bounty.ethdev.com/.

Updates

27/07/15: included guidelines for users upgrading from former installations
28/07/15: minor adjustments, added link to script GitHub
29/07/15: included suggestion to generate new keys and avoid reusing testnet ones





Source link
“`

Exit mobile version