Architecture¶
Design Principles¶
Umbra was designed having in mind the following guidance:
- Fast and simple prototypes: with simple APIs it is possible to construct different topologies for blockchain networks to be experimented. Those are easily generated in any laptop, enabling deployments in small or large scale.
- Lightweight execution: the source code is easily portable, installed and utilized in multiple underlying environments (e.g., laptop, cloud servers, etc).
- Transparent reproduction: configuration files are recipes to be shared and executed in different environments for comparability among experiments, enabling reproducible research.
Components¶
Umbra has three independent components:
- design: defines APIs to implement the topology and events that will be respectively deployed and triggered when testing a blockchain platform.
- broker: main component, responsible for the orchestration and management of the scenario (topology and events)
- scenario: the actual interface that deploys the topology (i.e. network, containers, virtual switches)