Skip to content

2 User Stories and Needs

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

This page is meant to capture who the users of Stakehouse are, what they need to be able to do with it, and why they need to do it. This is intended to be a living document and will grow over time as we think of more stuff.


User 1: The Newbie

Profile: I'm new to this whole staking thing. I don't know a lot about it, but I have a lot of ether sitting around doing nothing. I don't know anything about "beacon chain" or "validators" or "running a node". I'm a non-technical user, I don't know what a "Linux" is. I just want to put my capital to work in a safe, effective way. Someone told me staking is a good way to do that, so here I am.

Note: This user is not the target user, at least at the beginning. We can help direct this user to resources to continue learning, but we do not want to lead them to stake without a deeper understanding.

ID Description Notes
U1.1 I want to start staking my ETH in a simple and quick way.
U1.2 I want to understand why I can't stake if I don't have enough ETH, and what my options are.
U1.2.1 I want to learn more about staking in general. Optional, and low-hanging fruit, but still worth considering.
U1.3 I want to watch my money grow.
U1.4 I want to be alerted if something breaks and I'm losing money.
U1.5 I want help fixing my thing if it's broken in a safe, secure way.
U1.6 I want to take money out of my thing when I need it.

User 2: The non-technical-but-informed Ethereum User (Target User)

Profile: I'm very familiar with Ethereum and own a good amount of ETH. I am well aware of the changes coming and I would like to stake so I can earn ETH and so I can contribute to the decentralization of Eth2, however I am not very technical and do not want to use a CLI to set up my node. I also do not want to use a staking pool as I want to contribute to the decentralization of the network, but there is no good way for me to set everything up simply yet.

Note: This is our current target user for Stakehouse. They understand staking and the risks/responsibilities, but they are not comfortable setting up everything with the existing tools that are available.

ID Description Notes
U2.1 I want to be able to confidently stake my ETH and trust that the setup is correct.
U2.1.1 I want to see what modifications Stakehouse is going to do to my system before letting it set up the clients.
U2.1.2 I want Stakehouse to perform those modifications automatically, but tell me how it goes.
U2.1.3 I want to be able to run Stakehouse on a testnet before mainnet.
U2.2 I want to track all of my validators' activities.
U2.2.1 I want to see each attestation, including the inclusion distance.
U2.2.2 I want to see each block proposal.
U2.3 I want to configure alerts regarding my validator's attestations, proposals, etc.
U2.4 I want to be able to exit my validators.
U2.5 I want to know what resources are available in case something goes wrong after I have my validator set up.
U2.6 I want Stakehouse to assist with updating my software as necessary. Do we notify users when a client update is available?

User 3: The Experienced Ethereum User

Profile: I've been in the ETH ecosystem for a while. I know the difference between PoW and PoS. I may or may not be familiar with Linux, but I'm willing to learn. I'm comfortable following guides on how to stake, but I'm either too lazy to do it or too nervous that I'll screw something up. I heard Stakehouse can help with that, so I'm going to give it a shot.

Note: This user is not exactly our target user, but they may benefit from Stakehouse if they want an automated way to set things up. They may be dissatisfied with the lack of customization, but as Stakehouse evolves this user will be more satisfied. Maybe they will even join the Stakehouse team to help out :)

ID Description Notes
U3.1 I want to be able to confidently stake my ETH and trust that the setup is correct.
U3.1.1 I want to understand the available clients better.
U3.1.2 I want to be able to choose what client I Stakehouse sets up for me to stake.
U3.1.3 I want to see what modifications Stakehouse is going to do to my system before letting it set up the clients.
U3.1.4 I want Stakehouse to perform those modifications automatically, but tell me how it goes, with incremental updates.
U3.1.5 I want to change some settings (like the database directory) if I don't like the defaults.
U3.1.6 I want to be able to run Stakehouse on a testnet before mainnet.
U3.2 I want to track all of my validators.
U3.2.1 I want to see each attestation, including the inclusion distance.
U3.2.2 I want to see each block proposal.
U3.3 I want to configure alerts if I miss a certain number of consecutive attestations.
U3.3.1 I want to see the logs for my clients in order to troubleshoot any issues.
U3.4 I want to be able to see the underlying system resources my validator is taking up
U3.5 I want to be able to exit my validators.

User 4: The Blockchain Developer

Profile: I'm an experienced developer. I close my eyes and I see Solidity drifting along. I probably wrote one of the ETH2 clients that this tool is going to recommend. I don't need my hand held, and I don't want the UI to get in the way. I just want a fast way to set stuff up. I don't plan to use this as the UI for my entire validator experience - I know how to use beaconcha.in. I probably just want this for testing and development, though I probably already have a bash script to do this, so I'm not sure why I'm here. Maybe I shouldn't be?

Note: Maybe this user isn't worth considering. Does Stakehouse do anything that they can't already do? Does it actually satisfy a need? Maybe the main benefit for this user is speed of setup, if they don't already have an automated way to do that.

ID Description Notes
U4.1 I want to stake my ETH.
U4.1.1 I want to specify which clients I want to use.
U4.1.2 I want to specify lots of custom parameters for those clients. E.g. ports, data directories, user accounts to run under, permissions, etc.
U4.1.3 I want to see what modifications Stakehouse is going to do to my system before letting it set up the clients.
U4.1.4 I want Stakehouse to perform those modifications automatically, but tell me how it goes.
U4.2 I want to see the detailed logs for my clients in real time.
U4.3 I want to exit my validators.
U4.4 I want to be able to see the underlying system resources my validator is taking up
U4.5 I want to be able to run multiple validators