algorand / algorand/go-algorand

Improved Network Create Command

オープン
#1,686 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
FDE
主要言語
Go
スター
1.4k
フォーク
537
平均マージ
1日 6時間
マージ済み PR(30日)
17

説明

## Summary
`goal node create --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 `/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.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。