stellar / quickstart

Home of the stellar/quickstart docker image for development and testing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Consider not running validator node in network modes

leighmcculloch opened this issue · comments

The quickstart image is used in several modes.

In local mode all the components required to support a network are required, so a validator node is running, as well as meta generating watchers for horizon and soroban-rpc. This results in three stellar-core nodes actually running, but this is not a big deal for a local network with no history and very little activity.

In testnet and pubnet modes it runs much the same with three nodes.

This is manageable with testnet due to the smaller 3 month window of history and smaller activity.

This isn't manageable with pubnet. In my own tests with reasonably solid consumer hardware, running the quickstart image with pubnet never catches up after hours of waiting.

However, if I disable the validator node, and horizon, soroban-rpc and its meta streaming watcher node catch up in under 10 mins.

It's definitely reasonable to want to run a validator node with quickstart, but for development and testing if that isn't realistic, it probably shouldn't be the default.

cc @tomerweller

I'm thinking of a model where for testnet and pubnet modes the validator node doesn't run, unless an additional flag is passed, such as --enable-validator.

Before working on this it may be worth looking into whether it's reasonable to run quickstart against pubnet at all.

Even without core running in validator mode the resources consumed by Horizon and RPC on pubnet may be too much for a development machine.

Before working on this it may be worth looking into whether it's reasonable to run quickstart against pubnet at all.

Hilariously and unfortunately, we actually have some partners that run quickstart as their production deployment (cc @aditya1702).

Alternatively, in a similar vein, we could allow people to configurably not run Horizon.

A quick prototype I did yesterday showed it's relatively easy to run soroban-rpc against pubnet. However running an entire quickstart did not seem possible for me on my hardware, and I have above average consumer hardware.

In my own tests in #573 it appears horizon is the biggest resource user, so instead I'm looking at making all services optional, rather than the node.

Implemented in: