goshimmer icon indicating copy to clipboard operation
goshimmer copied to clipboard

Rewrite ConflictDAG

Open hmoog opened this issue 1 year ago • 0 comments

Description of change

This PR merges several different components into a singular streamlined framework for creating, tracking and managing conflicts (and votes on these conflicts).

In the current code base, we have a lot of different components that interact with Conflicts, and synchronizing these components in the context of multi-threading has proven to be a bit hard to achieve, simply because these components do not share access to a common mutex.

This PR aims to change this by merging all components that currently handle Conflicts into a singular streamlined API. This will not only allow us to de-duplicate a lot of code but we can also use the same caches and data structures for all involved parts.

Type of change

  • Enhancement (a non-breaking change which adds functionality)

Change checklist

  • [x] My code follows the contribution guidelines for this project
  • [x] I have performed a self-review of my own code
  • [x] I have commented my code, particularly in hard-to-understand areas
  • [x] I have made corresponding changes to the documentation
  • [x] I have added tests that prove my fix is effective or that my feature works
  • [x] New and existing unit tests pass locally with my changes

hmoog avatar Mar 10 '23 01:03 hmoog