hemilabs / hemilabs/dave

Dave V1

Open
#14 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Objective

_(I will make child issues)_

We want to get dave to a highly-usable place, building off of the work that has been done, dave needs to solve the following issue:

_When we need to spin up a node from scratch, we need to quickly be able to pull in a data directory with a relatively recent block as its tip._

To put it concretely, let's say that we need to be able to restore up to the latest "safe" block.

This should also be "push button". Ideally, we would have a GUI, for now we can stick with CLI as long as it's clear and easy.

## Requirements

Here are the high-level requirements of dave, the steps it needs to perform in order, but are each independent:

**1. Freeze a node**

Given a healthy node, we need to "freeze" the node. This can be done by: stopping op-node, ensuring that tbc is stopped (perhaps cutting off networking?), waiting for no state changes (op-geth stops progressing, and tbc stops progressing).

**2. Copy data**

Given the "frozen" node, copy the data to where it's accessible via a network. perhaps a gcp bucket.

**3. Verify the data**

Given the copied data in the gcp bucket (or something similar), pull it down to an ephemeral vm as a new node. Run this node, ensure that it keeps up with a healthy "tip". delete the node once done

**IDEA:** after we copy the data, we can "unfreeze" the node it was copied from. if it starts running again successfully then we know that the data directories are valid

**4. Make data available**

once we know that the copied data works, we can make it publicly available, and we can delete older snapshots. perhaps we can keep the most recent 3(?).

**5. Have a way to get this data onto new nodes in our infra**

With this data being available, we need a push-button way to copy it to: a node in GCE, K8s. Note that it should _not_ override a node id on that node.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by mapping the five independent workflow stages—freezing, copying, verifying, publishing, and restoring snapshots—then define the CLI scope and behavior for GCE and Kubernetes. Done means a push-button workflow can safely create, verify, publish, and restore recent node data without overriding a node ID.

Written by the indexing model from the issue text.

Assessment

Tech stack
gcp, go, kubernetes
Domain
cli, cloud, devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.