Please describe your proposed solution.
Problem
Operating a stake pool is not easy and requires several manual steps for bootstrapping the needed software.
Solution
We offer a straightforward solution:
- Write a NixOS module that includes everything to run an SPO node with a wide amount of configurable options
- The module will re-use all the needed upstream modules by IOG and they will be pinned inside a flake created for this project
- The flake will implement a binary cache and NixOS tests to ensure that the combination of used dependencies works well together
- The flake will also include a script that, leveraging nixos-anywhere (https://github.com/numtide/nixos-anywhere), will be able to deploy that NixOS configuration to arbitrary Linux machines
- The script and the configuration will also provide a way to copy secrets to the target machine
- To guarantee better compatibility with target machines we will provide ad hoc NixOS modules for a set of well-known cloud and bare metal hosts providers
The end user, assuming that it has ssh access to a target machine, will be able to run a command like:
nix run github:mlabs-haskell/spo-anywhere –- spo-remote-host.tld
Possibly passing as an argument a path to already created addresses and keys, or leaving to the script the burden of generating them.
Market
Potentially all the stake pool operators.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
Intended Challenge – SPO Tools & Community Projects
Challenge Question – “How can we support effective and impactful projects and initiatives to build and support the SPO Ecosystem and Community?”
What does this proposal entail?
Substantially, it entails an easier way to create SPOs with NixOS, which has many advantages over other operating systems but it also has some intrinsic complications for those who aren't familiar with it. As a final corollary, we hope that this implies more democratization in decentralization.
How does this proposal improve the SPO tooling ecosystem?
This proposal significantly streamlines the process of setting up a stake pool by leveraging NixOS and nixos-anywhere projects. It reduces the complexity and technical barrier to entry, allowing a broader range of individuals to contribute as Stake Pool Operators and, more importantly, increases the propensity for decentralization across the Cardano chain.
Moreover, our project facilitates reproducible deployments and enhances the efficiency and reliability of SPOs through deterministic configurations. Finally, as an open-source project, it will provide a platform for ongoing community-led improvements, enriching the SPO tooling ecosystem and fostering innovation within the Cardano community.
How do you intend to measure the success of your project?
Several KPIs will help evaluate the success of this project:
- Adoption rate – The number of SPOs deploying their nodes using our toolset
- Reliability – The rate of successfully deployed nodes without any issues, or with minor issues resolved swiftly. Bug reports will be a useful indicator here.
- User satisfaction – Assessed through user feedback, reviews, and testimonials.
- Community involvement – As this project is open source, the number of community contributions, pull requests, issues reported, and active participants will be useful indicators.
- Diversity of SPOs – An increase in the diversity of SPOs (including those from non-strong technical backgrounds) due to our toolset will be a strong success metric.
Please describe your plans to share the outputs and results of your project?
In the spirit of complete transparency with the Cardano community, the outputs of our proposal will be widely available. Foremost, as an open-source project, the GitHub repo will be the obvious resource for updates, documentation, and educational resources. This repo will be updated as the project progresses - a primary deliverable of this proposal.
MLabs has a noteworthy social media presence. We'll make active use of these channels to share regular updates with less technical community members. Finally, we'll actively share progress reports through the typical, publically-available Catalyst channels. MLabs has a strong compliance record, and this will not change throughout the progress of this proposal.