Skip to content

3 High Level Requirements

Colfax Selby edited this page Feb 17, 2021 · 1 revision

This page is where we'll capture the high-level requirements that Stakehouse has to fulfill in order to meet all of the user needs. Ideally, every user need will be matched to at least one of these requirements so we know we've covered everything. Also, there shouldn't ever be a requirement that doesn't map to a user need - otherwise, we're adding features that nobody needs!

A wiki isn't really the greatest tool for this because it doesn't automatically track how the requirements trace back to the user needs, but this is just a fun hobby project so it'll be okay.


Requirements

ID Description User Need Satisfied Priority (v0 == MVP, v1, v2, ...) Notes
R1 Guide user to the Ethereum Launchpad to generate keys and make deposit U2.1, U3.1, U4.1 v0
R1.1 Provide a trusted way for users to safely create keys without interacting with the CLI U1.1 v1 (?)
R1.2 Assist users in backing up keys U1.1 v1 (?)
R2 Install and run ETH1 node U2.1, U3.1 v0
R2.1 Notify user what changes (generally) will be made as a part of the installation U2.1.1, U3.1.3, U4.1 v0
R2.2 Monitor progress of ETH1 node sync, alert when done U2.1.2, U3.1.4, U4.1.4 v0
R2.3 Configure systemctl to manage ETH1 node process U2.1 v0
R2.4 Educate user on differences between ETH1 nodes v1
R2.5 Give choice of ETH1 node v1
R2.6 Analyze system and customize ETH1 node recommendation based on system specs U3.4, U4.4 v2
R2.7 Allow user to specify custom configurations to ETH1 node U3.1.5 v2
R3 Install and run ETH2 beacon node and validator (for one validator) U2.1, U2.1.2, U3.1, U4.1 v0
R3.1 Notify user what changes (generally) will be made as a part of the installation U2.1.1, U3.1.3 v0
R3.2 Configurable to run on testnet or mainnet U2.1.3, U3.1.6 v0
R3.3 Configure systemctl to manage ETH2 node process U2.1 v0
R3.4 Provude GUI for user to specify deposit json file U2.1 v0
R3.5 Configure supported monitoring tools for selected client U2.2 v0
R3.6 Educate user on differences between ETH2 clients U3.1.1 v0
R3.7 Allow user to pick any ETH2 client U3.1.1, U4.1.1 v0
R3.8 Notify user when setup is complete U2.1.2, U3.1.4, U4.1.4 v0
R3.9 Analyze system and customize ETH2 client recommendation based on system specs U3.4, U4.4 v1
R3.10 Allow user to specify custom configurations to ETH2 client U3.1.5 v1
R3.11 Support configuration for multiple validators U4.5 v2
R4 Check the user's system's port status for ports needed U2.1, U2.1.2, U3.1, U4.1 v0
R4.1 Warn user if used ports are not open U2.1, U2.1.2, U3.1, U4.1 v0 We have an endpoint we can hit for this
R5 Support updating ETH1 node without user interacting with CLI U2.1, U2.6 v1
R6 Support updating ETH2 client without user interacting with CLI U2.1, U2.6 v0 (?)
R7 Support exiting validator/withdrawing ETH U1.6, U2.4, U3.5, U4.3 v2 (?) Depends on when this is allowed
R8 Provide clear messaging on the purpose of Stakehouse, limitations, risks, etc U2.1 v0
R9 Provide instruction for ongoing maintenence, client troubleshooting, etc U1.5, U2.5 v0
R10 Configure alerting through beaconcha.in for missing attestations, etc U1.4, U2.2.*, U3.1, U3.2, U3.3 v0
Clone this wiki locally