-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Tasks
-
Ensure continuous delivery of Docker images and pre-compiled binaries through a Github workflow
-
Ensure default configuration files (including genesis files) are packaged with the software / images.
-
Define JSON-Schema for the genesis files (Shelley, Alonzo, Conway) and push this specification upstream to the Haskell team (possibly through a CIP?).
-
Export protocol-level, runtime and storage metrics as Prometheus metrics
- Exact metrics to be refined by whomever addresses that task.
-
Provide a default Grafana template on top of Prometheus metrics
-
Think about other configuration parameters that need to be provided to Dolos
- Where do we deviate from the Haskell configuration? Where do we want to keep compatibility?
- What needs to be configurable?
- docs: add detailed description of top-level (not genesis files) configuration params txpipe/dolos#185
-
Agree on a structure for ledger / blockchain snapshots to bootstrap from
- Consult with the Mithril team on this topic since they've already been looking into that problem.
- Ensure we can produce canonical representation of snapshots and reproducible hash digests
-
Provide a 'snapshotting tool' for creating arbitrary snapshots as configuration to bootstrap from.
Scope/Acceptance Criteria
-
Pre-compiled binary for
x86_64
andaarch64
- Fully statically linked on Linux
- as much static as possible for MacOS (rely on dynamic links for system deps)
-
Support the following platforms:
- Linux (generic)
- MacOS
-
Docker images for
amd
/arm
-
Installation through package managers:
- Cargo
- We do not aim to provide a crate-as-a-library, but only installation from sources via cargo.
- Homebrew
- Cargo
-
Provide Prometheus pre-defined configuration
-
Provide a default Grafana template
-
We don't need to synchronize and validate the entire chain. We only need to validate the current (and next) era(s). This means that it should be possible to start the node from a snapshot of the ledger state that is constructed elsewhere.
-
Opt-in analytics, behind feature flags.
- We might want to collect specific analytics to help improve the node.
-
Bonus: update notification in the installer / cli to let people know about more recent versions than the one installed on their machine.