Concordium / Concordium/concordium-node
Separate the node and the bootstrapper
- Dominant language
- Haskell
- Stars
- 108
- Forks
- 24
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 9
Description
The distinction between the behavior of the Bootstrapper and of the Node is quite different, but the way that they are currently entangled means that in a few places we check "are we a bootstrapper, respond like this, otherwise respond in some other way".
This makes it hard to get an overview of what is going on. Moreover it would be useful if the bootstrapper could be built without building consensus, since it does not need it.
This is a large task. It would mean factoring the functionality in such a way that the core code could be reused between a bootstrap node, and a normal node, but that the distinction would be cleaner and we would not check in many places whether we are a bootstrapper or not.
Contributor guide
Research direction
No files, tests, or entry points are named. Start by mapping where Bootstrapper and Node behavior are entangled and where consensus is required; the work is complete when their responsibilities are cleanly separated and the bootstrapper can be built without consensus while sharing reusable core functionality.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- blockchain
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100