SSV x Ponkila Inc grant proposal [Open Source]

We want to inform the community that the grant committee has approved the following grant request on July 6th 2023:

Ponkila Inc-HomestakerOS

Total grant: $15000

Payment terms: The grant will be paid in 70% SSV and the rest in USDC tokens based on a 7-day moving price average as of the approval date, re-calculated for every milestone.

Thank you :four_leaf_clover:

—Grants Committee

This post marks the completion of the HomestakerOS grant of Ponkila Oy.

The software artifact is delivered here: GitHub - ponkila/HomestakerOS: A web UI for generating Linux images for Ethereum homestaking

This repository contains the following software:

  • a web UI that uses NixOS configuration files to display dynamic, multi-node Ethereum home-staking setups
  • a “bidirectional” translation package that turns HTML form inputs into Nix, and a way to turn Nix definitions into JSON
  • a backend package, which builds self-contained NixOS disk images from those HTML inputs that can be booted on bare-metal or VMs

The README contains links to documentation that explains in detail what is required to get started with the software. Additionally, we provide a template repository at GitHub - ponkila/HomestakerOS-template and a showcase repository of our setup at GitHub - ponkila/homestaking-infra: Ethereum home-staking infrastructure powered by Nix

To the best of our knowledge, this is one of the first, if not the first, project that builds NixOS images from HTML form inputs. This addresses a well-known challenge with NixOS, which requires the user to be familiar with the Nix configuration language. With the software packaging provided in our contribution, people interested in evaluating NixOS setups for homestaking can get started without pre-existing knowledge about Nix.

The benefits of using NixOS become apparent when organizations want to run redundant multi-node setups: NixOS ensures that the software configurations between multiple nodes are bit-by-bit exact. This can help to recognize hardware problems in nodes: if one node’s operational health deviates from the others, it’s instantly apparent that there is a problem with some piece of the hardware, such as RAM, NVMe, or motherboard. This is how we have previously recognized faulty RAM setups in our own systems.

Another beneficial aspect is team collaboration via the infrastructure-as-code paradigm: the whole infrastructure definition can be made public with secret values encrypted with PGP or age. This way, a public git repository can act as the last-known working state. Each node can use the git repository to self-build itself and reboot into that configuration, ensuring that any state derivations post-boot that may be introduced by software are cleared. This enhances system dependability and makes software upgrades simple: if something goes wrong, the previous git hash can be used to roll back changes.

Nix has a role within blockchain systems: while the blockchain itself is often public, the way the software runs the nodes is not. Thus, NixOS works as a reproducible step towards realizing more open software integrations, as communities can collaborate on monitoring and managing their infrastructure. Coincidentally, this may open up new ways to realize Eigenlayer-esque AVS services, as system composition can be created by importing other organizations’ and people’s Nix configurations to integrate programmatically.

In the future, we plan to continue the development of HomestakerOS to further help with Lido’s CSM module, making it easier for people with hardware but no direct Ethereum stake to participate in the consensus of Ethereum.

For questions, do not hesitate to contact us via email at jesse@ponkila.com and juuso@ponkila.com

1 Like