New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Casper MSC [PoC4] #809

Merged
merged 87 commits into from Oct 9, 2017

Conversation

Projects
None yet
4 participants
@karlfloersch
Contributor

karlfloersch commented Oct 9, 2017

This PR implements Casper based on Vitalik's Minimal Slashing Conditions blog post.

Additions

  • hybrid_casper/casper_utils.py - Casper utility functions, most notably make_casper_genesis()
  • hybrid_casper/casper_initiating_transactions.py - Transactions useful when initializing the Casper contract
  • hybrid_casper/consensus.py - Casper specific consensus functions, most notably initialize() used during block initializing. This calls initialize_epoch() in the Casper contract
  • hybrid_casper/chain.py - Casper specific chain logic. This implements add_block() which follows the modified fork choice rule which favors commits over the heaviest subtree.
  • hybrid_casper/validator.py - Casper validator simulated on a mock network. This logic can be easily ported to pyethapp.
  • tests/hybrid_casper/testing_lang.py - A module which parses Casper testlang strings and executes them as defined. For example: B J0 J1 J2 J3 B B S0 B P0 P1 P2 P3 B1 C0 C1 B1

karlfloersch and others added some commits Aug 21, 2017

Remove overly complex chain test
This test will be much better served once the testing lang is created.
Then long complex chain tests will be significantly less brittle
Add Validator & allow any validator indexes
- Add Validator class
- Allow any validator index (join in any order, revert doesn't break
validators
- Rename handlers to be more descriptive
Change valcode_addr->withdrawl_addr
Assume each validator has a unique withdrawl address so we can easily
find their index

@vbuterin vbuterin merged commit 70d1b38 into ethereum:develop Oct 9, 2017

1 check failed

continuous-integration/travis-ci/pr The Travis CI build could not complete due to an error
Details

@karlfloersch karlfloersch changed the title from Casper MSC [PoC5] to Casper MSC [PoC4] Oct 9, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment