Difference between revisions of "Ethereum"

From Organic Design wiki
(Constantinople release: constantinople finally implemented)
m (See also)
 
(20 intermediate revisions by the same user not shown)
Line 63: Line 63:
  
 
== Constantinople release ==
 
== Constantinople release ==
[https://medium.com/mycrypto/ethereum-constantinople-everything-you-need-to-know-a47f3a16f3d2 Constantinople] was originally composed of two phases, ''Metropolis'' and ''Serenity'', but has now been changed to a single hard-fork in its own right. There have been a couple of others since ''Frontier'' described above, there were a number of forks soon after Frontier designed to mitigate various attacks on the network, and then [https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/ Byzantium] in October 2017 which was one of the major planned upgrades. Constantinople is another such planned upgrade, or non-contentious hard-fork, but not that this fork does NOT introduce proof-of-stake which has been given an [https://www.mangoresearch.co/ethereum-roadmap-update/ updated timeline].
+
[https://medium.com/mycrypto/ethereum-constantinople-everything-you-need-to-know-a47f3a16f3d2 Constantinople] was originally composed of two phases, ''Metropolis'' and ''Serenity'', but has now been changed to a single hard-fork in its own right. There have been a couple of others since ''Frontier'' described above, there were a number of forks soon after Frontier designed to mitigate various attacks on the network, and then [https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/ Byzantium] in October 2017 which was one of the major planned upgrades. Constantinople is another such planned upgrade, or non-contentious hard-fork, which was originally supposed to include a hybrid PoW/PoS model, but now this fork '''does NOT introduce proof-of-stake''' which has been given an [https://www.mangoresearch.co/ethereum-roadmap-update/ updated timeline].
  
 
Casper and Sharding are now two independent projects - either could be completed first. This unified approach will allow for a minimum staking requirement of 32ETH deposits, rather then 1000 or 1500 as was planned before. Casper will most likely be launched first, but we can’t rule out the possibility of Sharding getting done faster, but they don't rely on each other even though both are needed for a final PoS solution.
 
Casper and Sharding are now two independent projects - either could be completed first. This unified approach will allow for a minimum staking requirement of 32ETH deposits, rather then 1000 or 1500 as was planned before. Casper will most likely be launched first, but we can’t rule out the possibility of Sharding getting done faster, but they don't rely on each other even though both are needed for a final PoS solution.
Line 71: Line 71:
 
'''Rescheduled:''' The Constantinople fork was [https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/ rescheduled to block 7,280,000] which occurred at [https://amberdata.io/blocks/7280000 04:52 on Feb 28<sup>th</sup> 2019].
 
'''Rescheduled:''' The Constantinople fork was [https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/ rescheduled to block 7,280,000] which occurred at [https://amberdata.io/blocks/7280000 04:52 on Feb 28<sup>th</sup> 2019].
  
== Installing geth ==
+
== Installing and running geth ==
The simplest way to install ''geth'' if you're running Ubuntu is via ''apt'' as follows. As of May 2017 ''geth'' with the default settings requires about 16G of space.
+
We run ''geth'' via the [[Docker]] container. You need to create a mount on the host for the ethereum data directory in ''/root/.ethereum'' in the container so that the chain data and config are stable across container runs. As of late 2019 the chain data requires about 150GB of storage.
 
<source lang="bash">
 
<source lang="bash">
sudo apt-get install software-properties-common
+
sudo mkdir {!/path/to/ethereum-data!}
sudo add-apt-repository -y ppa:ethereum/ethereum
+
docker pull ethereum/client-go
sudo apt-get update
+
docker run -v {!/path/to/ethereum-data!}:/root/.ethereum -d -p 30303:30303 ethereum/client-go
 
</source>
 
</source>
  
== Running geth ==
 
This section lists some useful commands available from within ''geth'', the JavaScript console for Ethereum. For a full description of all the commands available, see [https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console their wiki]. Note that ''geth'' requires ''gplang'', but that can have trouble when installing from ''apt'', so it can be better to [https://www.digitalocean.com/community/tutorials/how-to-install-go-1-7-on-debian-8 install from source].
 
  
After installing you should first add an account and enter a password for it:
+
To access ''geth'' within the container, use ''attach'' to open an interactive console or run a specific command:
 
<source lang="bash">
 
<source lang="bash">
.../build/bin/geth account new
+
docker exec -it CONTAINER_ID geth attach --exec "eth.blockNumber"
</source>
+
docker exec -it CONTAINER_ID geth attach
 
 
You can then start a node running in the background:
 
<source lang="bash">
 
.../build/bin/geth --identity organicdesign &
 
</source>
 
 
 
And then in another terminal attach a console to it so you can control and query the running instance.
 
<source lang="bash">
 
.../build/bin/geth attach
 
</source>
 
 
 
To stop the daemon use,
 
<source lang="bash">
 
killall -HUP geth
 
 
</source>
 
</source>
  
Line 162: Line 146:
 
*[https://medium.com/@tjayrush/downloading-the-dao-a004258c9b5f#.dl3vbjf3z About EthSlurp] ''- a tool for downloading data about the Ethereum blockchain''
 
*[https://medium.com/@tjayrush/downloading-the-dao-a004258c9b5f#.dl3vbjf3z About EthSlurp] ''- a tool for downloading data about the Ethereum blockchain''
 
*[https://medium.com/@shortsample/the-state-of-smart-contracts-6491faddeaa2 Good article on contract stats]
 
*[https://medium.com/@shortsample/the-state-of-smart-contracts-6491faddeaa2 Good article on contract stats]
 +
*[https://beacon.etherscan.io/ Ethereum 2.0 Beacon chain explorer]
  
== Decentralised exchanges ==
+
== Decentralised exchanges and applications ==
 
*[https://etherdelta.github.io/#MKR-ETH EtherDelta]
 
*[https://etherdelta.github.io/#MKR-ETH EtherDelta]
 
*[https://status.im/ Status.im] ''- a wallet supporting decentralised exchange''
 
*[https://status.im/ Status.im] ''- a wallet supporting decentralised exchange''
 
*[https://www.0xproject.com/ 0x project] ''- an Ethereum-based decentralised exchange protocol''
 
*[https://www.0xproject.com/ 0x project] ''- an Ethereum-based decentralised exchange protocol''
 +
*[https://tornado.cash/ Tornado.Cash] ''- decentralised Ethereum mixer service''
  
 
== Related Ethereum projects ==
 
== Related Ethereum projects ==
Line 197: Line 183:
  
 
== Ethereum news ==
 
== Ethereum news ==
 +
*2021-02-10: [https://cointelegraph.com/news/ethereum-hits-a-new-all-time-high-as-cme-futures-go-live-why-is-eth-price-rallying CME's Ethereum futures go live]
 +
*2020-06-03: [https://www.forbes.com/sites/jasonbrett/2020/06/03/federal-endorses-ethereum-backed-alternative-to-libor/ Federal Reserve Endorses Ethereum-Backed Alternative To Libor]
 +
*2020-03-26: [https://cointelegraph.com/news/did-ethereum-silently-give-up-on-plasma Did Ethereum silently give up on Plasma]
 +
*2020-02-17: [https://www.palkeo.com/en/projets/ethereum/bzx.html The bZx hack explained]
 +
*2019-11-22: [https://vitalik.ca/general/2019/11/22/progress.html Vitalik on where we are in crypto after 5 years since Ethereum was started]
 +
*2019-11-20: [https://medium.com/ethereum-cat-herders/istanbul-testnets-are-coming-53973bcea7df Instanbul Hard Fork set for block 9,069,000] ''- activation date on main-net not scheduled yet''
 +
*2019-11-12: [https://blog.ethereum.org/2019/11/12/Ethereum.org-Development-Update-1/ Introducing Ethereum Studio IDE]
 +
*2019-09-19: [https://blog.ethereum.org/2019/09/19/eth2-interop-in-review/ Eth2 Interop in Review] ''- major Ethereum2 progress''
 
*2018-01-06: [https://qz.com/1163660/brazil-may-write-new-laws-based-on-data-stored-on-the-ethereum-blockchain/ Brazil may write new laws with data stored on the Ethereum blockchain]
 
*2018-01-06: [https://qz.com/1163660/brazil-may-write-new-laws-based-on-data-stored-on-the-ethereum-blockchain/ Brazil may write new laws with data stored on the Ethereum blockchain]
 
*2017-10-12: [https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/ Byzantium HF in a few days]
 
*2017-10-12: [https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/ Byzantium HF in a few days]
Line 259: Line 253:
 
*[https://ethereumclassic.github.io/assets/ETC_Declaration_of_Independence.pdf ETC's declaration of independence]
 
*[https://ethereumclassic.github.io/assets/ETC_Declaration_of_Independence.pdf ETC's declaration of independence]
 
*[https://medium.com/@lopp/the-challenges-of-building-ethereum-infrastructure-87e443e47a4b The challenges of building an Ethereum infrastructure]
 
*[https://medium.com/@lopp/the-challenges-of-building-ethereum-infrastructure-87e443e47a4b The challenges of building an Ethereum infrastructure]
 +
*[https://www.coindesk.com/safety-without-silos-why-businesses-will-learn-to-love-public-ethereum Safety Without Silos: Why Businesses Will Learn to Love Public Ethereum]
 +
*[https://blog.ethereum.org/en/2023/11/15/beyond-borders-nb Good article on crypto in humanitarian crises]
 
[[Category:Cryptocurrency]]
 
[[Category:Cryptocurrency]]

Latest revision as of 18:29, 16 November 2023

Ethereum is a crypto-currency that has been under development since about 2013 and is lead by Vitalik Buterin. The Ethereum business is based in Crypto valley in Switzerland. Ethereum is not just another "alt coin" though, it really is the next generation of this paradigm, taking it out of the basic currency role by offering full-scale general purpose distributed application development and testing framework. Ethereum does still have an associated currency aspect called "Ether" (ETH) which performs the important role of "fuel" in the Ethereum network. Distributed applications in the Ethereum network require payments in the form of Ether to fuel every computational step and storage operation on the system.

Bitcoin and Litecoin are often thought of as the gold and silver of the crypto-currencies. To continue with that analogy, Ethereum could be considered as the "oil" of crypto-currency since it plays the role of fuel which can be used for any generic application. Another interesting and important aspect is that Ethereum could help to pave the way towards how a real-world resource-based economy might be implemented, which seems to be the only viable way to transcend the economic bottom-line problem.

Quote.pngProof-of-stake will not change the Ethereum governance processes at all, and miners do not have a significant influence on the governance process today. Moreover, Vitalik does not have nearly the amount of power to influence governance outcomes lots of people assume that he does. The structure of the governance processes limit Vitalik's power, just as it limits everyone's power.
Vlad Zamfir

How Ethereum relates to the Organic Design vision

How can you even assess whether something has a stable value? it's not very useful for something to have a stable price with respect to current currencies since they themselves are devaluing (USD has lost 90% of it's value since the federal reserve act of 1913).

Ideally prices should reflect the true cost of their production, but under the current system such costs are externalised so that, for example, when we buy a cellphone for $50 there's actually another $1000 being subsidised by the poorer nations, so in many areas the true cost should be much higher.

But on the other hand there's also the fact that our current system thrives on inefficiency. We live under a system that pays people to turn a blind eye to allow disasters such as the BP gulf of Mexico oil spill and Fukoshima to occur because they boost the economy. Even our measurement for how well we're doing as a nation, GDP, looks better if we can waste, destroy or pillage more. If the system didn't have an economic bottom line it would be far more efficient, making costs in many areas lower.

So a properly designed system of money is really not possible without a proper design for society as a whole, but of course this cannot happen using the rules of the current system. Voting is not a solution, the best it can do is offer some control over how fast we destroy ourselves, but remember that whoever you vote for is a vote to keep the current system running.

That means we, the people, have to start building this new society ourselves, and while we don't know everything about the way it must work, we do know that it must be decentralised, transparent and accountable and should be a general framework on which groups, organisations and institutions of all kinds can operate.

And this is exactly what Ethereum is about. It takes the ideas behind Bitcoin and extends them to contracts in general, and then shows how one can build organisations from collections of contracts working together.

Ethereum related sites

Ether

Ethereum has an associated currency aspect called "Ether" (ETH) which performs the important role of "fuel" in the Ethereum network. Distributed applications in the Ethereum network require payments in the form of Ether to fuel every computational step and storage operation on the system.

Bitcoin and Litecoin are often thought of as the gold and silver of the crypto-currencies. To continue with that analogy, Ethereum could be considered as the "oil" of crypto-currency since it plays the role of fuel which can be used for any generic application. Another interesting and important aspect is that Ethereum could help to pave the way towards how a real-world resource-based economy might be implemented, which seems to be the only viable way to transcend the economic bottom-line problem.

On 23 July 2014 the "Genesis Sale" began which will last for 42 days and allows Ether to be pre-purchased with Bitcoin in the form of a cold-storage wallet that can be converted to Ether after the network is established in late 2014 or early 2015.

Ether will be mined and probably use a hybrid proof-of-work/proof-of-stake system that should have a very quick block time of around 12 seconds and use Turing-completeness to make FPGA/ASIC hardware infeasible for mining. Ether will not be issued at more than 26% per annum of the initial genesis sale total.

Frontier release

The Frontier Release Logo

Frontier is the first in a series of releases that punctuate the roadmap for the development of Ethereum. Frontier will be followed by ‘Homestead’, ‘Metropolis’ and ‘Serenity’ throughout the coming year, each adding new features and improving the user friendliness and security of the platform.

Ethereum is special and different from other software projects in that its release also involves launching a live network. After a year and a half of development the Proof of Concept series completed 9 cycles. The 10th iteration resulted in the Olympic testnet, which gradually led to the Release Candidate client for Frontier.

The Ethereum network goes live when the clients consent on the genesis block and start mining transactions on it. The genesis block will reference an initial system state where all the accounts set up by the pre-sale exist with the correct amount of pre-issued ether allocated. Initially, the network will be in a "thawing" state allowing only blocks to be mined, but not transactions to be processed. This allows for users to have a break-in period to connect to the network while also building up its security.

In conjunction with the Frontier launch several exchanges will likely start enabling trade of Ether, which will provide necessary liquidity to the marketplace, allowing users and miners to transfer their holdings to other users requiring more or less Ether. As opposed to an earlier strategy, there is no plan to remove any contracts from the blockchain or otherwise alter the network to carry balances over to Homestead. In other words, the state in Homestead will be a direct and unmodified continuation of the state in Frontier.

Update: As discussed in their statement, the genesis block will not be available for download, but rather must be created by everyone who wishes to form the initial consensus of the network state. A script has been provided which can only be run after block 1028201 of the Ethereum testnet has been created (which should be about Thursday night). The script requires a hash of the block which we can calculate ourselves with web3.eth.getBlock(1028201).hash and it will also be posted on the Ethereum social media channels. This script can then create the genesis block when it has this hash passed to it in the --extradata parameter.

The release happened at about 15:20 UTC (July 30th 2015)! I was able to be part of the initial genesis block consensus, although I didn't obtain the hash of block 1028201 myself because I didn't have time to download the 77GB test-net blockchain, I used the hash provided on etherchain.org instead. I then ran the python script with the hash in the extradata parameter and a few minutes later my genesis block file was produced and I could run geth to submit my version of the genesis block to the network :-)

At the time of release they unveiled a new version of the main ethereum.org website, and a new introductory video which I've put at the top of this page.

See the Ethereum Launches blog post for more information.

The first Epoch switch was on 4th August 2015 (an epoch is 30,000 blocks, or about 100 hours) which means the so-called "thawing phase" being completed and so the gas-limit should soon start to rise up from 5000 to over 3 million which will mean that transactions will be able to start flowing in the network (a transaction requires about 21,000 gas) and the exchanges should start listing ETH in their markets! The gas limit has been on the move since the epoch change and is up to 6200 on the 6th.

Update: Transactions are flowing, gas limit is over 100K as of 03:00 UTC 7th. Poloniex exchange is the first to list ETH, but exchanges have been asked to delay deposits for 24hr in case the chain needs to be rolled back for any reason. Trading should begin at 03:50 UTC on August 8th if all is well.

Release concludes: Gas limit has reached the final value of "pi million" (3,141,592) on August 8th 2015 and trading began on a few exchanges. The price quickly found equilibrium at around $1.40 - not a bad start considering they were 23 cents in the pre-sale last year! The price will likely drop a fair bit now as the whales start dumping some of their holdings, but then it should steadily rise as the network starts to grow over the next few months.

Homestead release

It has been announced that the Homestead release will be on Pi Day (March 14th 2016). The ethereum.org website was updated for Homestead on March 7th and has downloads available for Mist, the Ethereum browser/wallet application. The Homestead release is all about making the project more accessible to ordinary people instead of just geeks, so Mist is a big step forward in achieving this!

Mist password bug

Mist installs easily on all platforms, and has a first-time set up procedure that allows users to import their presale wallet or set up a new account, and then transfer some value into the account from bitcoin if they wish. One problem which quite a few users seem to be having, including me, across all platforms is that Mist will not allow the presale wallet to be imported, saying that the password is incorrect. Many users, including me, have successfully imported the wallet into other Ethereum applications such as geth or the Kraken exchange, so we know that this is a bug in Mist rather than a simple case of having forgotten the password, so issue #182 has been raised about the problem.

Constantinople release

Constantinople was originally composed of two phases, Metropolis and Serenity, but has now been changed to a single hard-fork in its own right. There have been a couple of others since Frontier described above, there were a number of forks soon after Frontier designed to mitigate various attacks on the network, and then Byzantium in October 2017 which was one of the major planned upgrades. Constantinople is another such planned upgrade, or non-contentious hard-fork, which was originally supposed to include a hybrid PoW/PoS model, but now this fork does NOT introduce proof-of-stake which has been given an updated timeline.

Casper and Sharding are now two independent projects - either could be completed first. This unified approach will allow for a minimum staking requirement of 32ETH deposits, rather then 1000 or 1500 as was planned before. Casper will most likely be launched first, but we can’t rule out the possibility of Sharding getting done faster, but they don't rely on each other even though both are needed for a final PoS solution.

Cancelled: The Constantinople fork on block 7,080,000 has been cancelled due to security problems.

Rescheduled: The Constantinople fork was rescheduled to block 7,280,000 which occurred at 04:52 on Feb 28th 2019.

Installing and running geth

We run geth via the Docker container. You need to create a mount on the host for the ethereum data directory in /root/.ethereum in the container so that the chain data and config are stable across container runs. As of late 2019 the chain data requires about 150GB of storage.

sudo mkdir /path/to/ethereum-data
docker pull ethereum/client-go
docker run -v /path/to/ethereum-data:/root/.ethereum -d -p 30303:30303 ethereum/client-go


To access geth within the container, use attach to open an interactive console or run a specific command:

docker exec -it CONTAINER_ID geth attach --exec "eth.blockNumber"
docker exec -it CONTAINER_ID geth attach

Useful geth commands

You can then start mining with the specified number of threads, and then stop again at some point:

miner.start(4)
miner.stop()

Check the balance of an account denominated in Ether:

eth.getBalance(eth.accounts[0]).toNumber()/1e18

Show the details of the current block:

eth.getBlock("latest")

Calculate the average time to solve a block with your current hash-rate and the current difficulty:

etm = eth.getBlock("latest").difficulty/miner.hashrate;Math.floor(etm/3600.)+"h"+Math.floor((etm%3600)/60)+"m"+Math.floor(etm%60)+"s";

Unlock an account and send 1 ETH from it using default gas amount, password is not supplied, so will be prompted:

personal.unlockAccount(eth.accounts[0])
eth.sendTransaction({from: eth.accounts[0], to: "0x1234....abcd", value: web3.toWei(1, "ether")})

Ethereum Classic

After the DAO hack (see the news links below) the Ethereum community opted for a hard fork solution which resulted to the network splitting into two copies, the developers and community who supported the fork remains with the ETH currency, but the new (which is really the old) network has the symbol ETC for its version of the currency. ETC would probably have died being supported by only a few fanatics, but a major exchange supported it and then the traders gave new life to it, soon after many other exchanges started supporting it as well, and so now there are two Ethereum networks here to stay.

This means that everyone who had ETH now also has ETC, which you'll be able to see and trade if you had your ETH in an exchange. But if you had it in a private wallet, then the process of splitting the coins out is actually really difficult and messy. Fortunately ShapeShifter.io have set up a tool to help you with this at split.shapeshift.io.

Running geth on the classic chain

First set up a new directory for the classic data and then use the --datadir and --oppose-dao-fork options as discussed on the classic wiki here, e.g.

mkdir ~/classic_data
.../build/bin/geth --datadir ~/classic_data --oppose-dao-fork

Then wait for it to sync, and copy the keys across from the original datadir's keystore directory.

To attach a JavaScript console to the geth instance, you need to do the following syntax because the --datadir option doesn't work for attach:

.../build/bin/geth attach ipc:~/classic_data/geth.ipc

Ethereum Documentation

Block explorers and stats

Decentralised exchanges and applications

Related Ethereum projects

Ethereum news

Ethereum links

See also