Skip to content
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

Port AuRa engine from Rust to Go #2

Open
1 of 2 tasks
5chdn opened this issue Sep 7, 2018 · 2 comments
Open
1 of 2 tasks

Port AuRa engine from Rust to Go #2

5chdn opened this issue Sep 7, 2018 · 2 comments

Comments

@5chdn
Copy link

5chdn commented Sep 7, 2018

  • review AuRa consensus engine in Parity & config
  • port consensus engine to Go
@5chdn 5chdn added this to the 0.1 consensus engine milestone Sep 7, 2018
@noot
Copy link
Member

noot commented Sep 7, 2018

this is a preliminary list of functions that may need to be modified. however, not all of these may need to be modified. there are likely many many more places that /do/ need to be modified.

Changes to be made in aura.go (implementing Engine interface):
Author():

  • Pull the author from block header (not coinbase)

VerifyHeader():

  • Determine what checks need to be placed here
  • Implement checks
  • (???) mixDigest; i don't think parity implements mixDigest

VerifyHeaders():

  • Confirm not changes needed

VerifyUncles():

  • Return true always

VerifySeal():

  • make sure the signature of the header is the correct elected authority based on turns

Prepare()

  • Determine if no changes necessary (ie. no additional fields in header)

Finalize()

  • Add block reward (5 eth)
  • Add tx fees (assumption)

Seal()

  • Verify no changes needed
  • make sure to sign correct block

SealHash()

  • Verify no changes needed

CalcDifficulty()

  • Verify no changes needed (presumable a constant)

Other Functions maybe needed:

verifyCascadingFields():

  • If the block is a checkpoint block, verify the signer list

snapshot()

  • how often are snapshots created? -> snapshots are not necessary for Aura, as long as we store validators somewhere and they are static

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

No branches or pull requests

3 participants