Skip to content

[C-323] added some general improvements in context of testing memstore - #5

Open
gorgos wants to merge 5 commits into
mainfrom
C-323/memstore-integrity
Open

gorgos wants to merge 5 commits into
mainfrom
C-323/memstore-integrity

Conversation

@gorgos

@gorgos gorgos commented Mar 2, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation

    • Added Git LFS setup requirements and instructions for cloning repositories.
    • Corrected repository clone details and clarified optional steps.
  • Configuration

    • Updated validator peer connectivity and private peer settings.
    • Reduced exposed JSON-RPC namespaces by removing debug, transaction-pool, and Injective-specific APIs.
    • Disabled transaction indexing and enabled discarding of ABCI responses.
    • Updated local development image and upgrade handler settings.
  • Developer Experience

    • Improved devnet startup and shutdown status handling, including failure detection and reliable compose-file resolution.
    • Expanded ignore rules for validator data and WebAssembly directories.

@coderabbitai

coderabbitai Bot commented Mar 2, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Essentials

Run ID: f3b506db-e661-4f81-a229-6df6cbbe2493

📥 Commits

Reviewing files that changed from the base of the PR and between bf7516b and fb0261e.

📒 Files selected for processing (4)
  • multival-novote/README.md
  • multival-novote/injective-1/.env
  • multival-novote/injective-1/cli/devnetify.sh
  • multival-novote/injective-888/cli/devnetify.sh
🚧 Files skipped from review as they are similar to previous changes (3)
  • multival-novote/injective-1/cli/devnetify.sh
  • multival-novote/README.md
  • multival-novote/injective-888/cli/devnetify.sh

Included review availability: 2 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Walkthrough

Walkthrough

The pull request updates devnet setup documentation, local runtime configuration, validator settings, Git LFS pointers, ignore patterns, and Docker Compose lifecycle scripts for two Injective environments.

Changes

Devnet setup and configuration

Layer / File(s) Summary
Setup documentation and local runtime values
multival-novote/README.md, multival-novote/injective-1/.env
The README adds Git LFS setup steps and corrects clone instructions. The environment file selects the local Docker image and sets UPGRADE_HANDLER_VERSION to v1.19.0.
Validator and repository configuration
.gitignore, multival-novote/injective-1/validators/*/config/*.toml, multival-novote/injective-1/validators/*/config/*.json, multival-novote/injective-1/validators/ids.json, multival-novote/injective-1/instances/0/accounts.json
The validator configurations update peers, private peer IDs, ABCI response handling, transaction indexing, and JSON-RPC namespaces. Git LFS pointer metadata is updated for validator and account files. New ignore patterns cover validator data and wasm directories.
Docker Compose lifecycle handling
multival-novote/injective-1/cli/devnetify.sh, multival-novote/injective-888/cli/devnetify.sh
Both scripts resolve the Compose file relative to the script, abort when containers fail, always attempt cleanup, and return Compose operation statuses instead of using a fixed sleep.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other

Sequence Diagram(s)

sequenceDiagram
  participant DevnetifyScripts
  participant DockerCompose
  participant DevnetContainers
  DevnetifyScripts->>DockerCompose: Start with resolved compose file
  DockerCompose->>DevnetContainers: Start containers
  DevnetContainers-->>DockerCompose: Return container status
  DevnetifyScripts->>DockerCompose: Run cleanup
  DockerCompose-->>DevnetifyScripts: Return operation statuses
Loading

Merge Risk: ⚪ Minimal · up to fb026

The inspected changes introduce no confirmed merge-blocking behavior.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title relates to the pull request through memstore testing and broadly covers the configuration, devnet, and documentation updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch C-323/memstore-integrity

Comment @coderabbitai help to get the list of available commands.

@gorgos
gorgos requested a review from maxim-inj March 2, 2026 03:48

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (3)
multival-novote/injective-1/cli/devnetify.sh (1)

5-5: Make compose file path independent of caller working directory.

Line 5 is CWD-dependent. Resolving from script location makes this reliable in CI and local runs.

Suggested fix
-COMPOSE_FILE=./injective-1/docker-compose.devnetify.yml
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+COMPOSE_FILE="${SCRIPT_DIR}/../docker-compose.devnetify.yml"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@multival-novote/injective-1/cli/devnetify.sh` at line 5, The COMPOSE_FILE
assignment in devnetify.sh is cwd-dependent; change it to compute the path
relative to the script location instead of the caller's working directory by
resolving the script directory (e.g., using the script's directory via dirname
on $0 or BASH_SOURCE) and joining that directory with
./injective-1/docker-compose.devnetify.yml so that the COMPOSE_FILE variable is
always set to the compose file next to the script regardless of the current
working directory.
multival-novote/injective-1/validators/3/config/priv_validator_key.json (1)

2-2: Add explicit test-only key handling guidance for private validator key assets.

This pointer change is fine, but keeping a short note in docs about “test-only keys, never production keys” would reduce accidental misuse.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@multival-novote/injective-1/validators/3/config/priv_validator_key.json` at
line 2, Add a short, explicit guidance note stating this priv_validator_key.json
is a test-only key and must never be used in production; update the
documentation and/or the asset's top-level comment or README reference for
priv_validator_key.json to include: a clear "test-only keys" warning,
recommended replacement procedures for production keys, and a link to key
management best practices so consumers cannot accidentally reuse this pointer
for production.
multival-novote/injective-1/validators/3/config/app.toml (1)

320-320: Consider documenting why max-txs = 500000 is required for this testbed.

A short note helps prevent this stress-test tuning from being mistaken as a safe default for other environments.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@multival-novote/injective-1/validators/3/config/app.toml` at line 320, Add a
brief explanatory comment or adjacent README entry clarifying that the config
key max-txs = 500000 in this testbed is a stress-test tuning (not a production
default), why the large value is needed (e.g., to avoid tx throttling during
load tests), any observed trade-offs (mem/CPU), and guidance for safe defaults
to use in production; update the config around the max-txs setting (and/or add a
short note in the repo's testing/config documentation) so future readers see the
rationale and recommended alternatives.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@multival-novote/injective-1/validators/2/config/genesis.json`:
- Around line 1-3: Add an ignore for Git LFS pointer JSONs so Biome's JSON
linter skips those invalid-JSON pointers: update biome.json to set vcs.ignore
(or create a .biomeignore) with a glob matching the LFS pointer files (e.g., a
pattern that targets genesis.json files in validator config dirs such as
"**/*/validators/*/config/genesis.json" or a broader "**/*/config/*.json" if
safe), or add a specific "genesis.json" ignore entry; ensure the change
references the Biome config key (vcs.ignore) or the .biomeignore file so Biome
no longer lints those Git LFS pointer files.

In `@multival-novote/injective-888/cli/devnetify.sh`:
- Line 5: COMPOSE_FILE is currently set relative to the caller's CWD which
breaks when the script is invoked from another directory; update devnetify.sh to
compute the script's directory (e.g., using dirname "${BASH_SOURCE[0]}" or $0
via cd/dirname/pwd) and set COMPOSE_FILE to the absolute path under that
directory (pointing to injective-888/docker-compose.devnetify.yml) so the file
is resolved reliably regardless of the caller working directory.

In `@multival-novote/README.md`:
- Line 28: The git clone URL currently references
"InjectiveLabs/injective-devnetify-testbed" in the README clone command; update
that clone command string to "git clone
https://github.com/InjectiveLabs/devnetify-testbed" so users are pointed to the
correct repository (look for the clone command line in README.md and replace the
repository path in the URL).

---

Nitpick comments:
In `@multival-novote/injective-1/cli/devnetify.sh`:
- Line 5: The COMPOSE_FILE assignment in devnetify.sh is cwd-dependent; change
it to compute the path relative to the script location instead of the caller's
working directory by resolving the script directory (e.g., using the script's
directory via dirname on $0 or BASH_SOURCE) and joining that directory with
./injective-1/docker-compose.devnetify.yml so that the COMPOSE_FILE variable is
always set to the compose file next to the script regardless of the current
working directory.

In `@multival-novote/injective-1/validators/3/config/app.toml`:
- Line 320: Add a brief explanatory comment or adjacent README entry clarifying
that the config key max-txs = 500000 in this testbed is a stress-test tuning
(not a production default), why the large value is needed (e.g., to avoid tx
throttling during load tests), any observed trade-offs (mem/CPU), and guidance
for safe defaults to use in production; update the config around the max-txs
setting (and/or add a short note in the repo's testing/config documentation) so
future readers see the rationale and recommended alternatives.

In `@multival-novote/injective-1/validators/3/config/priv_validator_key.json`:
- Line 2: Add a short, explicit guidance note stating this
priv_validator_key.json is a test-only key and must never be used in production;
update the documentation and/or the asset's top-level comment or README
reference for priv_validator_key.json to include: a clear "test-only keys"
warning, recommended replacement procedures for production keys, and a link to
key management best practices so consumers cannot accidentally reuse this
pointer for production.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 53346a4 and bf7516b.

📒 Files selected for processing (28)
  • .gitignore
  • multival-novote/README.md
  • multival-novote/injective-1/.env
  • multival-novote/injective-1/cli/devnetify.sh
  • multival-novote/injective-1/docker-compose.yml
  • multival-novote/injective-1/instances/0/accounts.json
  • multival-novote/injective-1/validators/0/config/app.toml
  • multival-novote/injective-1/validators/0/config/config.toml
  • multival-novote/injective-1/validators/0/config/genesis.json
  • multival-novote/injective-1/validators/0/config/node_key.json
  • multival-novote/injective-1/validators/0/config/priv_validator_key.json
  • multival-novote/injective-1/validators/1/config/app.toml
  • multival-novote/injective-1/validators/1/config/config.toml
  • multival-novote/injective-1/validators/1/config/genesis.json
  • multival-novote/injective-1/validators/1/config/node_key.json
  • multival-novote/injective-1/validators/1/config/priv_validator_key.json
  • multival-novote/injective-1/validators/2/config/app.toml
  • multival-novote/injective-1/validators/2/config/config.toml
  • multival-novote/injective-1/validators/2/config/genesis.json
  • multival-novote/injective-1/validators/2/config/node_key.json
  • multival-novote/injective-1/validators/2/config/priv_validator_key.json
  • multival-novote/injective-1/validators/3/config/app.toml
  • multival-novote/injective-1/validators/3/config/config.toml
  • multival-novote/injective-1/validators/3/config/genesis.json
  • multival-novote/injective-1/validators/3/config/node_key.json
  • multival-novote/injective-1/validators/3/config/priv_validator_key.json
  • multival-novote/injective-1/validators/ids.json
  • multival-novote/injective-888/cli/devnetify.sh

Comment on lines 1 to +3
version https://git-lfs.github.com/spec/v1
oid sha256:fcf3f1f4c1a127d136948ec01bfaa5a891429352f0b98577572a1bf4f4e2fa7c
size 29442
oid sha256:8c8bda492d7cafbda5f26bf6535a844e19b3a9067f77fcaacafca70bc1e97d98
size 29801

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# 1) Locate Biome config files.
echo "=== Searching for Biome config files ==="
fd -HI 'biome.json' .
fd -HI 'biome.jsonc' .

# 2) List JSON files that are actually Git LFS pointers.
echo "=== Searching for Git LFS pointer JSON files ==="
rg -n '^version https://git-lfs.github.com/spec/v1$' -g '**/*.json'

# 3) Inspect package scripts invoking biome.
echo "=== Searching for Biome scripts in package.json ==="
fd -HI 'package.json' . -x rg -n '"(lint|check|biome)[^"]*"' {}

Repository: InjectiveLabs/devnetify-testbed

Length of output: 6285


🏁 Script executed:

cat -n ./biome.json

Repository: InjectiveLabs/devnetify-testbed

Length of output: 2360


Configure Biome to exclude Git LFS pointer JSON files from linting.

The file multival-novote/injective-1/validators/2/config/genesis.json is a Git LFS pointer (55+ such files exist in the repository). These contain valid Git LFS format but invalid JSON syntax. Add an ignore pattern to biome.json to prevent Biome's JSON linter from processing them, such as using .biomeignore or configuring vcs.ignore in the Biome config.

🧰 Tools
🪛 Biome (2.4.4)

[error] 1-1: String values must be double quoted.

(parse)


[error] 1-1: String values must be double quoted.

(parse)


[error] 1-2: End of file expected

(parse)


[error] 2-2: End of file expected

(parse)


[error] 2-2: String values must be double quoted.

(parse)


[error] 3-3: String values must be double quoted.

(parse)


[error] 3-3: End of file expected

(parse)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@multival-novote/injective-1/validators/2/config/genesis.json` around lines 1
- 3, Add an ignore for Git LFS pointer JSONs so Biome's JSON linter skips those
invalid-JSON pointers: update biome.json to set vcs.ignore (or create a
.biomeignore) with a glob matching the LFS pointer files (e.g., a pattern that
targets genesis.json files in validator config dirs such as
"**/*/validators/*/config/genesis.json" or a broader "**/*/config/*.json" if
safe), or add a specific "genesis.json" ignore entry; ensure the change
references the Biome config key (vcs.ignore) or the .biomeignore file so Biome
no longer lints those Git LFS pointer files.

Comment thread multival-novote/injective-888/cli/devnetify.sh Outdated
Comment thread multival-novote/README.md Outdated
…fy-5

# Conflicts:
#	multival-novote/injective-1/.env
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant