-
Notifications
You must be signed in to change notification settings - Fork 15
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.
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 |