Last updated 2 months ago
To maximize decentralization, stake pool operation should be extremely accessible. Yet, current practice involves many steps and is hardly simple for non-experts, leading to a lack of SPO diversity.
We will create a NixOS configuration and scripts to generate the files needed for SPO deployment. We will leverage nixos-anywhere to make our NixOS configuration deployable on any Linux-based machine.
This is the total amount allocated to MLabs – SPO-anywhere – Easy Stake Pool Deployment with NixOS. 4 out of 5 milestones are completed.
1/5
Scaffolding
Cost: ₳ 28,726
Delivery: Month 2 - Dec 2023
2/5
Basic SPO NixOS module and corresponding NixOS tests
Cost: ₳ 71,815
Delivery: Month 4 - Feb 2024
3/5
Deploy the SPO
Cost: ₳ 57,452
Delivery: Month 6 - Apr 2024
4/5
Configurability
Cost: ₳ 71,815
Delivery: Month 9 - Jul 2024
5/5
Improved documentation and project closeout
Cost: ₳ 57,452
Delivery: Month 11 - Sep 2024
Andrea Ciceri
No dependencies.
Project will be fully open source.
Problem
Operating a stake pool is not easy and requires several manual steps for bootstrapping the needed software.
Solution
We offer a straightforward solution:
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.
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.
Several KPIs will help evaluate the success of this 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.
MLabs, a leading consultancy in the Cardano ecosystem, has a proven track record and significant experience. Our team consists of seasoned engineers, each holding expertise in their respective fields. Moreover, we have consistently demonstrated our ability to deliver complicated projects with a high degree of trust and accountability. We have an extensive portfolio of satisfied client projects as well as several popular Catalyst projects. We're committed to upholding these standards for this SPO enhancement proposal. Moreover, we are committed to working in an open-source and transparent manner.
The main goals of our project are as follows:
As mentioned, MLabs is experienced in Cardano development and the use of Nix, providing us with high confidence that we can deliver.
We'll rely on several checkpoints to verify our approach to this project:
1st-3rd month
4th-6th month
7th-8th month
The deliverables and outcomes from our key milestones include:
Scaffold the flake repository
Deliverable: A fully operational flake repository.
Outcome: A reliable foundational structure ready for further development.
Configure CI and a cache
Deliverable: A fully functional Hercules CI pipeline and a configured cache.
Outcome: A streamlined development process allowing for expedited iterations.
Scaffold an “all in one” NixOS configuration for running an SPO
Deliverable: An all-in-one NixOS configuration for running an SPO.
Outcome: A simplified setup process for SPOs, encouraging broader participation and greater decentralization.
Generate docs for module options
Deliverable: Comprehensive, auto-generated documentation for the all-in-one module.
Outcome: Increased usability and understanding by potential SPOs, reducing barriers to entry.
Start working on the script
Deliverable: The first version of the script for deploying the NixOS configuration.
Outcome: Preliminary toolset for SPOs to begin testing and providing feedback.
Finish the script
Deliverable: A finalized, fully functional script for deploying the NixOS configuration.
Outcome: A ready-to-use tool for SPOs, enabling the swift and efficient launch of stake pools.
Make the script also push secrets
Deliverable: An enhanced script that securely pushes secret keys to the target machine.
Outcome: Increased security and ease of setup for SPOs.
Main development tasks:
Scaffold the flake repository: 10 hours
Configure Hercules CI and a cache: 20 hours
Scaffold an “all in one” NixOS configuration for running an SPO: 60 hours
Automatically generated docs for “all in one” module options: 20 hours
Start working on the script: 20 hours
Finish the script: 20 hours
Make the script also push secrets: 60 hours
Subtotal00 : 210 hours
For the post-development tasks:
Testing (unit, integration, system, acceptance): 105 hours
Beta release: 40 hours.
Feedback and Improvement: 105 hours
Documentation and User Guides: 40 hours.
Support Plan: 20 hours.
Post-release Review: 10 hours.
Subtotal01: 320 hours
Subtotal02: 530 hours + 105 hours (20%) change budget
Total: 635 @95/hour = $60,325 USD
Total (@ rate $0.21 USD / ADA): 287260 ADA
**In the interest of full transparency, please note we have applied a conservative USD/ADA exchange rate in pricing this proposal. This is to ensure our operations remain stable regardless of market conditions. Although we firmly believe the future of Cardano is bright, we recognize the price of ADA and all cryptocurrencies is inherently volatile. Our financial obligations are denominated in fiat. Most importantly, this includes the salary of our engineers whose hard work makes projects like this possible.
In the unlikely scenario of severe negative price movement beyond our forecasted rate, it is possible that MLabs may need to temporarily suspend work on this proposal until the market recovers. Rest assured, this decision would be made solely to protect our business's long-term viability and never taken lightly.
We appreciate your understanding and support, and we are excited to see what we can achieve together.
The cost of the project provides a considerable ROI for the Cardano ecosystem. This occurs along two lines: enhancing the stake pool operator (SPO) ecosystem and fostering greater network decentralization.
Enhancing the SPO Ecosystem: Our solution provides SPOs, both new and experienced, with an accessible tool to establish stake pools. This drastically reduces the barriers to entry, allowing more lay individuals to participate in the ecosystem. Moreover, by automating many of the tasks involved in deploying a stake pool, we enable operators to focus on more value-adding activities, such as community engagement, marketing, and ecosystem participation.
Supporting Greater Decentralization: A critical value proposition of Cardano network decentralization. By making it easier for more community members to establish stake pools and participate in network consensus, our project directly contributes to this goal. Greater decentralization enhances network resilience, reduces the threat of cabals, and aligns with the inclusive ethos of Cardano.
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
MLabs
MLabs is a premier development firm in the Cardano Ecosystem. We are an IOG Plutus Partner and work regularly to develop the Cardano blockchain and ecosystem. Our team is composed of talented developers who have helped build community projects such as:
• Liqwid
• SundaeSwap
• Minswap
• Optim
And several others. Through our work with early-stage projects, we have one of the largest groups of Haskell/Plutus developers in the Cardano community.
Website: https://mlabs.city/
Core Team
DevOps and Nix Developer
Andrea Ciceri
Passionate about technology and computers since he was a child, with a theoretical mathematical background, Andrea worked a few years as a full stack factotum getting his hands on many different technologies. His first contact with the blockchain occurred with Ethereum as a smart contracts developer for DeFi dApps. In the meantime, his sysadmin personality discovered Nix which changed his life forever. At the moment he is happily working for MLabs as a DevOps and Nix developer for a wide variety of Cardano-related projects.
Website: aciceri.dev
GitHub: https://github.com/aciceri