Concordium / Concordium/concordium-node

Separate the node and the bootstrapper

Open
#100 1 comment 0 reactions 0 assignees View on GitHub
[Prio] Low [Size] Extra Large [Type] Change Request [Type] Maintenance
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.