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

Improved Network Create Command #1686

Open
winder opened this issue Nov 5, 2020 · 1 comment
Open

Improved Network Create Command #1686

winder opened this issue Nov 5, 2020 · 1 comment
Labels

Comments

@winder
Copy link
Contributor

winder commented Nov 5, 2020

Summary

goal node create --network <network> --destination ./ is incomplete and can be improved.

The ingredients to configure a node for a specific network are:

  1. A compatible release
  2. The correct genesis.json file
  3. The correct DNS Bootstrap URL (used to find a relay)

The --network currently ONLY attempts to properly set the genesis.json file, and even that piece has problems. The main problem is that there is not a consistent way for the --network option to find the genesis file, it searches 3 locations and the files are not always in those locations.

Open Question

Is there an opportunity for consolidation? The genesis.json files are shipped in many ways:

  • make install places genesis files in the $GOPATH/bin/genesisfiles directory
  • The update.sh script installs them relative to the binaries
  • The release tarballs include genesis files in the <archive>/genesis/ directory
  • The deb/rpm installers include genesis files in /var/lib/algorand
  • The sandbox includes and manages them internally

Who is actually using goal network create? I see it in a few places and ONLY to install a private network based on a template.

Scope/Requirements

There are two options

  1. Make the "template" field required. This is now a non-issue because goal network create wouldn't need to lookup the genesis.json file.

  2. If we decide we can't remove the install-a-real-network mode we could modify goal node create with the following:

  • Bake the genesis files into the binary. mainnet/testnet/betanet/devnet are all committed to the go-algorand repository and serve as the source of truth, so they can be included in the goal command.
  • Alongside the baked in genesis files include the DNS Bootstrap ID configuration.
  • The network option should ONLY allow using the baked in configurations.

Urgency/Relative Priority

This command is extremely confusing to developers and customers.
The problem of finding genesis files should be something we have an actual design for, currently the design is organic and keeps being redesigned when someone runs into the problem.

@kehiy
Copy link
Contributor

kehiy commented Jul 21, 2023

@winder is this issue done?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants