Bitcoin: Why Bitcoin Core is a monolith?

Created on 2 Mar 2019  ·  3Comments  ·  Source: bitcoin/bitcoin

I don't understand why Bitcoin Core software was designed as a monolith and not as a microservices architecture.

Now the node, the gui, the cli, the wallet are all in one.

For example, some people don't need the GUI, others don't need the CLI, or others don't need the wallet.

For example, some people can install a cli, set the node, and use it remotely, or some people can be take a wallet with a remote node.

So my question is, Why the core team deceided a monolith architecture? I don't find any reasonable fact for do this.

Questions and Help

Most helpful comment

The goal is to eventually split it up, but it's not easy.

All 3 comments

The goal is to eventually split it up, but it's not easy.

@CodersBrothers

I'm not qualified to answer the question about the rationale behind design decisions made roughly ten years ago but these are some recent open pull requests that might be of interest:

  • #6714: "A plan for abstracting out libconsensus"
  • #10102: Multiprocess Bitcoin
  • #10973: "Refactor: separate wallet from node"

AFAIK no one opposes the idea of splitting it up, but doing so is non-trivial.

Closing. If you have more general/historical questions about the code base, the bitcoin stack exchange might be a better place to ask them.

Was this page helpful?
0 / 5 - 0 ratings