rusk
rusk copied to clipboard
Allow Dockerfile to support various network environments
Summary
The current Dockerfile configuration runs the Rusk node as an ephemeral node. To enhance both our testing flexibility and to allow the community to run dockerized instances against different environments, the Dockerfile should accept a volume containing the required genesis state. For flexible testing, it also allows to attach pre-defined states or past failed states for inspection.
Possible solution design or implementation
There's a couple of approaches we can take:
- Parameterize the Dockerfile: We could parameterize the Dockerfile to accept a network environment (local/devnet/testnet). While this would work, it would most likely be less flexible.
- (Genesis) State Volume: Allow the Dockerfile to mount a volume that contains the (genesis) state for a given network environment.
-
Network Multi-tenancy: Allow the Rusk node client to have multiple (genesis) states based on the network ID. This would require deeper changes in Rusk, and seems more like a
nice to have
for the future.