question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

DAO fork-choice issue

See original GitHub issue
  • Trinity version: trinity-0.1.0a3
  • OS: linux
  • Python Version (python --version): Python 3.6.3

What is wrong?

When doing fullsync with trinity the DAO fork is incorrectly handled and ETC chain followed.

Trinity has been run as follows:

trinity --sync-mode full

Syncronization works:

 trinity attach
 w3.eth.getBlock(5000000)
Out[41]:
AttributeDict({'difficulty': 153555857798073,
 'extraData': HexBytes('0x4554432065746865726d696e65202d20555331'),
 'gasLimit': 4700036,
 'gasUsed': 51416,
 'hash': HexBytes('0xb2f55d12af971452c3669669380e03040ff01fabb64afec6bfddb3052dbd0117'),
 'logsBloom': HexBytes('0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000080000000000000000020000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000'),
 'mixHash': HexBytes('0x36a33662da9d77511a4580dceb57f46b261247134ffd126398c2fcbff34acae9'),
 'nonce': HexBytes('0x4c85a020172afc4d'),
 'number': 5000000,
 'parentHash': HexBytes('0x001717abe8e5d60afaaa9fd2d62ab9e3a59c711fe7b66b2d9d47162c63d9e9ec'),
 'receiptsRoot': HexBytes('0xcdfeee56af33c91c592567852d74b647801f0355c5160ea42dffbebd25b56d58'),
 'sha3Uncles': HexBytes('0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'),
 'stateRoot': HexBytes('0x94dbf3aa3242e0039dcb327806652e2c4620eff111a628a2c9488e70d0b10a30'),
 'timestamp': 1513013050,
 'transactionsRoot': HexBytes('0x3063dfd1bda002b2a8737d9ce1d1148f3d178f7a224b92b1419b3c005944c4d7'),
 'miner': '0xDf7D7e053933b5cC24372f878c90E62dADAD5d42',
 'totalDifficulty': 179580593652975622022,
 'uncles': [],
 'size': 763,
 'transactions': [HexBytes('0x9d2f76af534006c0d40e23af572925fba31994597991173f997ba0fc1764af91'),
  HexBytes('0x11c2d6c664d2527ff33e0fc184b946a0d72e86eec03a02134f0162bb8a7dc5b4')]})

This block corresponds to ETC http://etcchain.com/block/number/5000000

How can it be fixed

Fork-choice rule for DAO fork (block height 1919999 -> 1920000) needs to be re-evaluated.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:4
  • Comments:15 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
gsalgadocommented, Jun 12, 2018

Right, that’s pretty much what I had in mind when I wrote https://github.com/ethereum/py-evm/issues/865#issuecomment-396514850

1reaction
pipermerriamcommented, Jun 4, 2018

Sounds like the 10 headers after the fork have special extra data that we may not be enforcing/generating/checking.

Read more comments on GitHub >

github_iconTop Results From Across the Web

timed out dao fork-check dropping · Issue #3044 · ethereum/go ...
This is a real problem because the blockchain will stop syncing and only receive does error messages after a while. Almost every 2...
Read more >
Curve Finance on Twitter: "There is a popular topic of DAOs ...
For Curve DAO, it is impossible to force the choice of one or another (too decentralized). Fork will inevitably clone DAO and CRV,...
Read more >
MakerDAO identifies risks of an Ethereum hard fork
DeFi protocol MakerDAO (MKR) has identified seven risks its protocol faces if Ethereum (ETH) is forked.
Read more >
Syncing slow to a crawl (2048 blocks in 2 hours)
I had no issues before, but my syncing has gotten incredibly slow with geth. My system time and date are good (set by...
Read more >
History and Forks of Ethereum
The DAO fork was in response to the 2016 DAO attack where an insecure DAO contract was drained of over 3.6 million ETH...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found