Ethereum Blog

To fork or not to fork

Introduction

user

Jeffrey Wilcke


LATEST POSTS

The Ethereum network is currently undergoing a DoS attack 22nd September, 2016

Security alert – All geth nodes crash due to an out of memory bug 18th September, 2016

announcement

To fork or not to fork

Posted on .

The DAO, though not a product developed by the Ethereum Foundation, has been a hot topic as of late, both internally in the organisation as well as within our community. The Hard Fork is a delicate topic and the way we see it, no decision is the right one. As this is not a decision that can be made by the foundation or any other single entity, we again turn towards the community to assess its wishes in order to provide the most appropriate protocol change.

The specification proposed for the hard fork that is being implemented in the Geth client is as follows:

The DAO (0xbb9bc244d798123fde783fcc1c72d3bb8c189413), its extraBalance (0x807640a13483f8ac783c557fcdf27be11ea4ac7a), all children of the DAO creator (0x4a574510c7014e4ae985403536074abe582adfc8) and the extrabalance of each child are encoded into a list L at block 1880000. The contents of L can be viewed here. At the beginning of block X (X = 1920000, on July 20 or 21 depending on your time zone), all ether throughout all accounts in L will be transferred to contract account C, which is at (0xbf4ed7b27f1d666546e30d74d50d173d20bca754). You can verify the solidity source code of C on etherscan. From this contract, DAO token holders can submit their DAO in order to withdraw ETH at a rate of 1 ETH = 100 DAO. The extrabalance, as well as some additional ether that remains due to complications in the interactions between the re-entrancy exploit and the splitting mechanism, will be withdrawable by the DAO curator to be distributed as appropriate to cover all edge cases.

Additional information to facilitate verification of the fork spec and implementation is expected to be released separately by the community; consensus code in Geth that implements the fork logic is covered by the bug bounty program.

Unfortunately time limits require swift adoption before a protocol change becomes impractical. The community tool carbonvote will be used to set the default fork option for Geth. At block number 1894000 the votes will be tallied, and the outcome will determine whether the default is set to fork or not to fork. Then merging the DAO fork PRs will proceed, followed shortly by a release for both Geth and Mist. Users with business-critical applications who need to update quickly should frequently check the blog and social media for ongoing updates.

profile

Jeffrey Wilcke

Comments
user

Author Jeroen M

Posted at 12:07 pm July 15, 2016.

Interesting times…

Reply
user

Author lgn21st

Posted at 1:30 pm July 15, 2016.

Thanks Jeffrey, the carbonate will going to stop polling & process data at block number 1894000, more details at https://github.com/consenlabs/carbonvote/commit/a87d21fdcfd848d8a1d186a6d55ba072b51a61a8

Reply
user

Author FutureMoney

Posted at 2:28 pm July 15, 2016.

Smart move.

Reply
user

Author David Silverweb

Posted at 2:43 pm July 15, 2016.

Please correct the statement of such Shakespearean significance from “to fork on not to fork” to ”
to fork or not to fork”.

Reply
    user

    Author Bitcoins and Gravy

    Posted at 6:57 am July 16, 2016.

    To fork ON not to fork . . . yes please fix this typo y’all!!!

    Reply
user

Author Chris Forrester

Posted at 5:00 pm July 15, 2016.

So a clarification here.. is the token itself still transferrable between addresses in the non-withdrawal case? working on Jaxx (crypto wallet) we’d like to still have dao as a basic token if it’s going to stick around.

Reply
user

Author Mukul Thakur

Posted at 9:28 pm July 15, 2016.

meh

Reply
user

Author Rafael Sarres

Posted at 9:33 pm July 15, 2016.

If carbon vote has a bug and steal ether from the voters, will we have another hard fork?

Reply
    user

    Author Falcon Crypto

    Posted at 10:44 pm July 15, 2016.

    You are not sending more than .0006 ETH. You can handle that right?

    Reply
      user

      Author bob645

      Posted at 9:17 am July 20, 2016.

      So, what amount does it need to be before this happens again?

      Reply
user

Author veox

Posted at 4:21 am July 16, 2016.

DAO.totalSupply is declared as uint, but in WithdrawDAO.trusteeWithdraw() is used as a function.

EDIT: also, would suggest modifier trustee_only { if (msg.sender == trustee) _ } and adding that to trusteeWithdraw().

P.S. What’s the preferred platform for code feedback? I’ve posted in 3 places so far, since no one is marked as preferred. The bounty page?..

Reply
user

Author Jorijn Jacko Smit

Posted at 12:46 am July 17, 2016.

So how much time exactly was there between carbonvote being announced on this website and stopping counting?

Block 1894000 occurred on July 15th, 2016. The same day as this article was posted! Twitter timestamped the article at 11:02, said block occurred at 23:20. This gives a difference of 12 hours and 18 minutes.

I can only conclude that the default position of supporting the hard-fork is being pushed by a third party. Wherever the carbonvote idea came from, it didn’t come from the Ethereum Foundation. Developers are not passing through official channels when making their decisions and disrespecting the community. Ethereum is not the neutral, incorruptible platform I thought it was (going to be), “without any possibility of downtime, censorship, fraud or third party interference”.

Move along folks, nothing to see here. Just another evolution of our corrupt, rich, elite banking system.

https://www.google.com/?q=site%3Aethereum.org%20carbonvote
https://twitter.com/ethereumproject/status/753877284155777024
https://tradeblock.com/ethereum/block/1894000

Reply
    user

    Author Fraggle222

    Posted at 2:18 pm July 17, 2016.

    Yeah, it was completely ridiculous, 12hr window !!

    What really happened was that someone started the carbonvote a while back, vote was going in the direction that certain people wanted (I assume @jeffehh is one of them), then they were like oh darn we forgot to actually tell people about this vote, I guess we better do that.

    So this blog post was hastily put together right before the “vote” was over.

    Reply
user

Author jacob meeder

Posted at 6:10 pm July 17, 2016.

Well you didn’t expect it not to be rigged did you?

Reply
user

Author jacob meeder

Posted at 6:10 pm July 17, 2016.

These people on here have deleted my posts before

Reply
user

Author jacob meeder

Posted at 6:12 pm July 17, 2016.

The people of ethereum demand free speech! Just kidding control them all I quit when there was no hope

Reply
user

Author HClivess

Posted at 12:54 pm July 18, 2016.

to become a top notch comedian or a professional clown?

Reply
user

Author Paul Page

Posted at 12:22 am July 19, 2016.

So I bought directly from the DAO at a rate of 1.45 ETH per 100 tokens, since all original ETH will now be available why is the conversion back to ETH at the 1 per 100 tokens rate and not a direct refund of what each person invested? Trans ID 0x64672b2aa16dbb94f86e4cc9ee74f7184f6cbb28457651cb0ca8c78556a1b5aa

Reply
user

Author Clément Loumpa loumpa

Posted at 3:24 pm July 19, 2016.

Can we have the result pool per pool .. ? I don’t see the result of mine … to fast..

Reply
user

Author pelias

Posted at 10:47 am July 20, 2016.

Reset is not a case of use in a criptocurrency

Reply
user

Author Ale Vald

Posted at 12:04 pm July 21, 2016.

I sended all my DAOs to the address you posted up here (0xbf4ed7b27f1d666546e30d74d50d173d20bca754).
and havent recived anything back, should it take days?

Reply

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

View Comments (22) ...
Navigation