Skip to content
This repository has been archived by the owner on Aug 13, 2019. It is now read-only.

Overwrites and ignorances of pre-existing features during the implementation of Atlantis #68

Open
3 tasks done
GregTheGreek opened this issue Jun 17, 2019 · 4 comments
Open
3 tasks done
Assignees

Comments

@GregTheGreek
Copy link

GregTheGreek commented Jun 17, 2019

In light of #66 #67 there was a communication breakdown of a few ETC specific forks that occurred. @YazzyYaz pointed me to a couple things we should double check.

@soc1c
Copy link
Contributor

soc1c commented Jun 18, 2019

what's the difference between #66 and #67 and isn't supply cap already implemented and activated? could we have one ticket for each issue with discover? this would be a mess otherwise.

@GregTheGreek
Copy link
Author

GregTheGreek commented Jun 18, 2019

supply cap should be implemented, but I want to double check, never know what you'll find.

I think everything is implemented. IF anyone discovers they're not correctly done we can break it out.

@meowsbits
Copy link

Indeed,

  • Supply cap (aka Disinflationary Monetary Policy, ECIP1017) is already implemented (via hard fork approaching two years ago).
  • IO/Gas model (EIP150) countering network spam is also implemented via hard fork even before that.

As I see it, the important idea of this issue is to flag potential 'overwrites' or ignorances of these pre-existing features during the implementation of the next fork (Atlantis) features, as was the case with #67.

Hotspots with this might include

  • difficulty calculations (given already implemented difficulty bomb disposal w/r/t EIP100
  • rewards (given disinflationary model) w/r/t block reward adjustment that was implemented coincidentally with difficulty bomb delay in byzantium
  • state trie clearing (EIP161) implementation; aspects of support for this feature have been partially implemented, although sometimes unfortunately hardcoded (eg statedb.IntermediateRoot(false)). This is a tricky one because it is unclear exactly how partially or wholly this feature was already partially implemented. Not pretty, mostly edge case relevant, lots of tendrils.

Medium spots:

  • EIP658 tx receipt status encoding; this was preexistingly partially implemented for storage, but not for consensus. afair features were in place to satisfy the eth API specs for ETH interoperability on-the-fly, w/o extending support through wire protocol. are there adequate unit tests for these new RLP encoding/decoding cases?
  • evm handling around new opcodes behavior

Cold spots I would expect (places which can be relatively satisfactorily unit-testable and/or comprehensively integration testable):

  • precompiled contracts' unit logic
  • new opcodes unit logic

@GregTheGreek
Copy link
Author

@meowsbits thanks for this beautifully written comment, I think its worth breaking that into its own issue(s) - I'll get to that tomorrow

@soc1c soc1c changed the title Potential Bugs Overwrites and ignorances of pre-existing features during the implementation of Atlantis Jun 19, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants