-
Notifications
You must be signed in to change notification settings - Fork 6
docs: align Go requirements with source modules #58
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,13 +19,13 @@ | |
| <Card horizontal title="Archive Nodes" icon="database" /> | ||
| </CardGroup> | ||
|
|
||
| ## Network Versions | ||
|
|
||
| <VersionTable /> | ||
|
|
||
| _Live binary versions, genesis, and seed peers — see the [technical reference](/node/technical-reference)._ | ||
|
|
||
| ## Hardware Requirements | ||
|
|
||
| | Component | Required | | ||
| | --------- | ------------------------------------------------------ | | ||
|
|
@@ -34,7 +34,7 @@ | |
| | Storage | 2 TB NVMe SSD (high IOPS required) | | ||
| | Network | 2 Gbps with low latency | | ||
|
|
||
| ## Installation & Setup Steps | ||
|
|
||
| <Steps> | ||
|
|
||
|
|
@@ -47,13 +47,13 @@ | |
| sudo apt update && sudo apt upgrade -y | ||
| ``` | ||
|
|
||
| ###### 2. Install Essential Packages | ||
|
|
||
| ```bash | ||
| sudo apt install make gcc git jq chrony curl lz4 wget tar build-essential -y | ||
| ``` | ||
|
|
||
| ###### 3. Synchronize System Time | ||
|
|
||
| ```bash | ||
| sudo timedatectl set-timezone UTC | ||
|
|
@@ -61,22 +61,36 @@ | |
| timedatectl | ||
| ``` | ||
|
|
||
| ##### Install Go | ||
|
|
||
| Only needed if you build `seid` from source — the prebuilt binary and Docker | ||
| install paths in the next step don't require Go. | ||
| You need Go only if you build `seid` from source. The prebuilt binary and Docker | ||
| install paths in the next step do not require it. | ||
|
|
||
| Suggested Version: Go 1.24.x (required for seid v6.3+) | ||
| Current `seid` releases require Go 1.25.6 or later. Check the `go.mod` at the release tag | ||
| you check out | ||
| (e.g. [`v6.6.1`](https://github.com/sei-protocol/sei-chain/blob/v6.6.1/go.mod)) for its | ||
| exact requirement. | ||
|
|
||
| ###### Installation Steps | ||
|
|
||
| ```bash | ||
| # Check for existing Go installation | ||
| # Check for existing Go installations — more than one entry means another copy | ||
| # may still win on your PATH after this install | ||
| which -a go | ||
| go version | ||
|
|
||
| # Download and install Go 1.24.x | ||
| wget https://go.dev/dl/go1.24.5.linux-amd64.tar.gz | ||
| sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz | ||
| # Bumping Go? Change these two lines only | ||
| GO_TARBALL=go1.25.6.linux-amd64.tar.gz | ||
| GO_SHA256=f022b6aad78e362bcba9b0b94d09ad58c5a70c6ba3b7582905fababf5fe0181a | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [suggestion] Hardcoding the digest makes this snippet silently rot: every Go bump needs a manual checksum lookup, and if the constant is ever wrong the curl -fLO https://go.dev/dl/${GO_TARBALL}
curl -fL https://go.dev/dl/${GO_TARBALL}.sha256 -o ${GO_TARBALL}.sha256
echo "$(cat ${GO_TARBALL}.sha256) ${GO_TARBALL}" | sha256sum -c -If you prefer to keep the pinned constant (it does defend against a compromised download endpoint serving a matching checksum), please double-check the value against go.dev before merge — I wasn't able to reach the network to verify it. |
||
|
|
||
| curl -fLO https://go.dev/dl/${GO_TARBALL} | ||
|
|
||
| # Verify integrity before trusting the archive (go.dev/dl publishes a SHA256 per file | ||
| # at ${GO_TARBALL}.sha256), then replace any previous installation — extracting over | ||
| # one leaves stale files behind | ||
| echo "${GO_SHA256} ${GO_TARBALL}" | sha256sum -c - \ | ||
| && sudo rm -rf /usr/local/go \ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [nit]
|
||
| && sudo tar -C /usr/local -xzf ${GO_TARBALL} | ||
|
|
||
| # Add Go to your environment variables | ||
| echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.bashrc | ||
|
|
@@ -85,6 +99,16 @@ | |
| # Verify installation | ||
| go version | ||
| ``` | ||
|
|
||
| <Note> | ||
| `sudo rm -rf /usr/local/go` is the replacement step [Go's install | ||
| docs](https://go.dev/doc/install) prescribe, but it only clears a tarball install. A | ||
| package-manager Go (`/usr/lib/go-*`, Homebrew) survives it and can still shadow | ||
| `/usr/local/go/bin/go` — if the final `go version` reports the old release, | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [suggestion] This Note correctly diagnoses the shadowing case but stops short of the fix, and the cause is right above it: line 96 appends with |
||
| `which -a go` lists every copy on your `PATH`. If the extraction itself fails, the | ||
| verified tarball is still in your working directory: re-run the `sudo tar` command | ||
| rather than starting over. | ||
| </Note> | ||
| </Step> | ||
|
|
||
| <Step title="Install Sei"> | ||
|
|
@@ -174,7 +198,7 @@ | |
| </Tab> | ||
| </Tabs> | ||
|
|
||
| ##### Initialize Chain Files | ||
|
|
||
| <Info>Default init mode is **full** (RPC/P2P bind to all interfaces). For **validator** or **seed** nodes, use `--mode validator` or `--mode seed` so RPC and P2P bind to localhost only. See the [Validator Operations Guide](/node/validators) for the full validator init example.</Info> | ||
|
|
||
|
|
@@ -202,7 +226,7 @@ | |
| sed -i 's/persistent-peers = .*/persistent-peers = "'$PEERS'"/' ~/.sei/config/config.toml | ||
| ``` | ||
|
|
||
| ##### Configure App Settings | ||
|
|
||
| ```bash | ||
| # Set minimum gas price (recommended; helps prevent spam transactions) | ||
|
|
@@ -232,7 +256,7 @@ | |
|
|
||
| <Accordion title="Advanced Configuration"> | ||
|
|
||
| #### Archive Node Setup | ||
|
|
||
| An archive node maintains the complete historical record of the chain. This requires disabling state sync and starting with a pre-existing database using a "snapshot". | ||
|
|
||
|
|
@@ -246,7 +270,7 @@ | |
|
|
||
| **2. Configure Archive Node Peers** — To sync from the height your snapshot was created at, you need peers retaining a large amount of historical blocks. The node will require specific peers during initial sync, which can be changed at a later time. | ||
|
|
||
| #### Mempool Configuration | ||
|
|
||
| For optimal transaction handling and resource management, it is recommended to update the mempool settings in your `config.toml` file. | ||
|
|
||
|
|
@@ -334,7 +358,7 @@ | |
| sudo systemctl start seid | ||
| ``` | ||
|
|
||
| ##### Monitoring & Troubleshooting | ||
|
|
||
| Check your node's status with these commands: | ||
|
|
||
|
|
@@ -370,9 +394,9 @@ | |
|
|
||
| [View Complete Node Setup Guide](/node/node-operators) | ||
|
|
||
| ## Node Resources | ||
|
|
||
| ### Node Setup | ||
|
|
||
| <CardGroup cols={3}> | ||
| <Card horizontal title="Node Operations Guide" icon="server" href="/node/node-operators"> | ||
|
|
@@ -386,7 +410,7 @@ | |
| </Card> | ||
| </CardGroup> | ||
|
|
||
| ### Advanced Operations | ||
|
|
||
| <CardGroup cols={3}> | ||
| <Card horizontal title="Configuration & Monitoring" icon="gauge-simple-high" href="/node/advanced-config-monitoring"> | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,7 +20,7 @@ | |
|
|
||
| ## Installation | ||
|
|
||
| ### Pre-built Binaries (Recommended) | ||
|
|
||
| Pre-built binaries are available for Linux, macOS, and Windows. Download the latest release from | ||
| the [releases page](https://github.com/sei-protocol/seictl/releases). | ||
|
|
@@ -87,7 +87,7 @@ | |
| seictl --version | ||
| ``` | ||
|
|
||
| #### Verify Download (Optional) | ||
|
|
||
| All releases include a `checksums.txt` file for verification, e.g.: | ||
|
|
||
|
|
@@ -99,13 +99,21 @@ | |
| sha256sum -c checksums.txt 2>&1 | grep seictl_Linux_x86_64.tar.gz | ||
| ``` | ||
|
|
||
| ### Build from Source | ||
|
|
||
| If you prefer to build from source or need a specific configuration: | ||
|
|
||
| #### Prerequisites | ||
|
|
||
| - Go 1.24.5 or higher | ||
| - [Go 1.26.0 or later](https://go.dev/doc/install). The commands below build `main`, whose requirement is set in [`go.mod`](https://github.com/sei-protocol/seictl/blob/main/go.mod). | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [nit] Linking |
||
|
|
||
| <Note> | ||
| This is newer than the Go version needed to build `seid` (1.25.6), so the toolchain from | ||
| the [node setup guide](/node) is a minor version behind. Under the default | ||
| `GOTOOLCHAIN=auto` that still builds: the go command downloads the toolchain `go.mod` | ||
| asks for. If you've set `GOTOOLCHAIN=local` or build without network access, install Go | ||
| 1.26.0 or later, or use a prebuilt binary above. | ||
| </Note> | ||
|
|
||
| #### Build | ||
|
|
||
|
|
@@ -115,7 +123,7 @@ | |
| go build -o seictl | ||
| ``` | ||
|
|
||
| ### Install via Go | ||
|
|
||
| ```bash | ||
| go install github.com/sei-protocol/seictl@latest | ||
|
|
@@ -127,13 +135,13 @@ | |
| seictl [global options] command [command options] [arguments...] | ||
| ``` | ||
|
|
||
| ### Global Options | ||
|
|
||
| - `--home <path>`: Sei home directory (default: `~/.sei`, can be set via `SEI_HOME` environment variable) | ||
|
|
||
| ## Commands | ||
|
|
||
| ### Patch Command | ||
|
|
||
| #### `patch` | ||
|
|
||
|
|
@@ -168,7 +176,7 @@ | |
|
|
||
| **Note:** The file extension (`.toml` or `.json`) is used to determine the format automatically. | ||
|
|
||
| ### Genesis Commands | ||
|
|
||
| #### `genesis patch` | ||
|
|
||
|
|
@@ -199,7 +207,7 @@ | |
| seictl genesis patch patch.json -i | ||
| ``` | ||
|
|
||
| ### Config Commands | ||
|
|
||
| #### `config patch` | ||
|
|
||
|
|
@@ -235,7 +243,7 @@ | |
| seictl config patch patch.toml -o /path/to/output.toml | ||
| ``` | ||
|
|
||
| ## Configuration Targets | ||
|
|
||
| The `config` command can work with three different configuration files: | ||
|
|
||
|
|
@@ -271,7 +279,7 @@ | |
| - State sync and block sync | ||
| - Transaction indexing | ||
|
|
||
| ## Merge Patch Behavior | ||
|
|
||
| The merge patch algorithm works as follows: | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nit]
node/seictl.mdxexplains that under the defaultGOTOOLCHAIN=autoan older local Go still builds because the toolchain is downloaded on demand — but this line andnode/index.mdx:69state 1.25.6 as a hard floor with no such caveat. That makes the requirement stricter than reality and inconsistent across the three touched pages. A short parenthetical ("with the defaultGOTOOLCHAIN=auto, an older Go will fetch the required toolchain automatically") would align them.