Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
root = true

[*.sh]
shell_variant = bash
indent_style = space
indent_size = 4
binary_next_line = true
switch_case_indent = true
63 changes: 63 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Checks

on:
pull_request:
push:

permissions:
contents: read

jobs:
shell:
name: Shell checks
runs-on: ubuntu-24.04

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Install ShellCheck
run: |
sudo apt-get update
sudo apt-get install --yes shellcheck

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.24.x
cache: false

- name: Install shfmt
run: |
go install mvdan.cc/sh/v3/cmd/shfmt@v3.12.0
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"

- name: Run shfmt
run: shfmt -d install tools

- name: Run ShellCheck
working-directory: install
run: |
shellcheck -x \
install-validator.sh \
install-observer.sh \
../tools/generate-openresty-jwt.sh

markdown:
name: Markdown checks
runs-on: ubuntu-24.04

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- name: Run Prettier
run: npx --yes prettier@3.6.2 --check '**/*.md'

- name: Run Markdownlint
run: npx --yes markdownlint-cli2@0.21.0 './**/*.md' '#./.git/**'
9 changes: 9 additions & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"config": {
"MD013": {
"line_length": 80,
"code_blocks": false,
"tables": false
}
}
}
4 changes: 4 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"printWidth": 80,
"proseWrap": "always"
}
50 changes: 48 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Seismic Node Operations

Operational tooling and configuration for installing and running Seismic validator nodes.
Operational tooling and configuration for installing and running Seismic
validator and observer nodes.

## Validator installation

Expand All @@ -10,10 +11,55 @@ The interactive validator installer is located at:
install/install-validator.sh
```

For requirements, installation steps, persistent storage, MDBX notes, validator registration, service startup, OpenResty, and troubleshooting, see the **[Validator Installer and First-Start Guide](install/README.md)**.
For requirements, installation steps, persistent storage, MDBX notes, validator
registration, service startup, OpenResty, and troubleshooting, see the
**[Validator Installer and First-Start Guide](install/README.md)**.

## Observer installation

The observer installer is located at:

```text
install/install-observer.sh
```

See the **[Observer Installer and First-Start Guide](install/OBSERVER.md)**.

Generate short-lived bearer tokens for OpenResty-protected endpoints with:

```text
tools/generate-openresty-jwt.sh
```

The Summit internal-testnet genesis file is provided at:

```text
internal_testnet_genesis.toml
```

## Repository checks

GitHub Actions checks shell scripts and Markdown through
[`.github/workflows/checks.yml`](.github/workflows/checks.yml).

Run the same checks locally from the repository root. ShellCheck must be
installed; Go and Node.js with `npx` are also required.

```bash
go run mvdan.cc/sh/v3/cmd/shfmt@v3.12.0 -d install tools

(
cd install
shellcheck -x \
install-validator.sh \
install-observer.sh \
../tools/generate-openresty-jwt.sh
)

npx --yes prettier@3.6.2 --check '**/*.md'
npx --yes markdownlint-cli2@0.21.0 './**/*.md' '#./.git/**'
```

Shell formatting is defined in [`.editorconfig`](.editorconfig). Markdown
formatting and lint rules are defined in [`.prettierrc.json`](.prettierrc.json)
and [`.markdownlint-cli2.jsonc`](.markdownlint-cli2.jsonc).
Loading
Loading