rusk icon indicating copy to clipboard operation
rusk copied to clipboard

Allow Dockerfile to support various network environments

Open HDauven opened this issue 1 year ago • 0 comments

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:

  1. 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.
  2. (Genesis) State Volume: Allow the Dockerfile to mount a volume that contains the (genesis) state for a given network environment.
  3. 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.

HDauven avatar Oct 09 '23 08:10 HDauven