Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create mainnet startup script. #18

Open
4 tasks
dwedul-figure opened this issue Mar 15, 2022 · 1 comment
Open
4 tasks

Create mainnet startup script. #18

dwedul-figure opened this issue Mar 15, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@dwedul-figure
Copy link

Summary

Create a script that will guide a user through setting up and starting a mainnet node.

Problem Definition

As a future node operator, I want it to be amazingly simple to set up and start running a Provenance mainnet node so that I don't have to spend time walking through startup documents.

Currently, to start up a node, a person would probably start at https://docs.provenance.io/ and follow through the documented procedure, which isn't very straight-forward. They might also start with this repo, which isn't much of a guide either.

The process could be made easier though.

Proposal

Create a script/program in this repo that would help facilitate the process.

I picture it having an interactive mode, but also able to do everything as a single command (lots of flags and options I guess).

Steps:

  1. Identify installation location. Create it and set it up if not already done. Directory structure should conform to Cosmovisor's requirements (even if Cosmovisor isn't going to be used).
  2. Identify the starting data. The default should be to get the most recent quicksync. But there should be options for providing a different quicksync, providing a previously downloaded quicksync tarball, using an existing data directory. If using an existing data directory that isn't already in the proper place, ask if it should be copied or moved.
  3. Identify the version of provenanced to use. Sometimes this might be an automatic thing, others we might need to prompt them for it. If it's something they already have, just make sure a copy of it is in the correct place. Otherwise, get it and put it in the right place. Also download/install Cosmovisor and put it in the proper place.
  4. Identify the type of node desired: Validator, or query.
  5. Copy the appropriate configuration files into place and prompt for needed configuration changes (and make them).
  6. Done. Output locations of downloaded files that aren't strictly necessary anymore (e.g. the quicksync tarball). Output a command for setting/exporting PIO_HOME, and suggest running it and that it be placed in an appropriate rc file. Lastly output the command to use to start the node either with or without Cosmovisor.

Extra thoughts:

  • In step 3, add a link in a directory commonly found in $PATH (e.g., /usr/local/bin or /bin) to the "current" link that Cosmovisor uses. That way, the provenanced command will always use the current version for the node, and will be available anywhere on the system.
  • Another possible node type might be for historical queries. I think we need to iron out some kinks with that, though, so maybe leave that out for the first iteration.
  • In step 7, maybe also output Cosmovisor env var export commands along with the PIO_HOME one. Or maybe it's better to just put them all in a file and instruct the user to source the file (along with adding that source command to an rc file). Putting that file at the root of the directory made in step 1 would probably be helpful too.
  • Step 2 might take a while (if downloading stuff). Make sure it's outputting progress and also that it doesn't have re-download every time. It'd even be great if it were possible to pick-up an interrupted download, but that might be getting too fancy (and be more trouble than it's worth).

The overall idea is just to make it easy to get started. So prompts should have at least a little explanation about what's being asked.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@dwedul-figure dwedul-figure added the enhancement New feature or request label Mar 15, 2022
@dwedul-figure dwedul-figure changed the title Create startup script. Create mainnet startup script. Mar 15, 2022
@nullpointer0x00 nullpointer0x00 moved this from Todo to Backlog in Provenance Core Protocol Team Jan 23, 2023
@iramiller
Copy link
Member

Probably be able to starship for this...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

2 participants