funded
MLabs – SPO-anywhere – Easy Stake Pool Deployment with NixOS
Current Project Status
In Progress
Amount
Received
₳258,534
Amount
Requested
₳287,260
Percentage
Received
90.00%
Solution

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.

Problem

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.

Feasibility
Value for money
Impact / Alignment

MLabs

1 member

MLabs – SPO-anywhere – Easy Stake Pool Deployment with NixOS

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.

What is your capability to deliver your project with high levels of trust and accountability?

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.

What are the main goals for the project and how will you validate if your approach is feasible?

The main goals of our project are as follows:

  • Create a NixOS module for stake pool operation that is simple to deploy but with a reasonable array of configurable options.
  • Leverage nixos-anywhere to enable deployment to any Linux-based machine.
  • Automate the generation of necessary files consumed by services and securely transfer secret keys.
  • Ensure compatibility with a variety of cloud and bare-metal host providers.
  • Offer comprehensive documentation and user guides to guarantee accessibility as well as ease of use.

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:

  • Successful creation of the NixOS module
  • Successful deployment of the NixOS configuration to a variety of Linux machines
  • Effective operation of stake pools using our NixOS configuration
  • Positive user feedback
  • Popularity among stake pool operators

Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

1st-3rd month

  • Scaffold the flake repository
  • Configure CI and a cache
  • Scaffold an “all in one” NixOS configuration for running an SPO

4th-6th month

  • Automatically generated docs for “all in one” module options
  • Start working on the script

7th-8th month

  • Finish the script
  • Make the script also push secrets

Please describe the deliverables, outputs and intended outcomes of each milestone.

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.

Please provide a detailed budget breakdown of the proposed work and resources.

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.

Who is in the project team and what are their roles?

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

How does the cost of the project represent value for money for the Cardano ecosystem?

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.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00