Skip to content

Conversation

@betterclever
Copy link
Member

Particular improvements:

  1. Move away from StatefulSet to Deployment in Kubernetes to have stateless deployments wherever possible.
  2. Multipod architecture for running all firehose processes separately i.e. reader, merger, relayer, and firehose in separate pods with varying resource requirements.
  3. New single pod architecture for testnet / devnet where the overall load is lesser.
  4. Move away from usage of yaml config files for Firehose node in favor of direct flags in CLI for easier prototyping and visibility while running commands.

Improvements needed:

  1. Need a templating system to specify Dexter and Core-1 endpoints separately in a config file and can be picked automatically with rest of the config being same.

@cursor
Copy link

cursor bot commented Oct 23, 2025

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Validator State Backup File Path Mismatch

The script incorrectly references the priv_validator_state_backup.json file. It copies the backup to $HOME, but then tries to move and remove it from $HOME_DIR. The restore operation also attempts to place the file in $HOME/data instead of its original $HOME_DIR/data location. This prevents the validator state from being restored correctly and leaves the backup file behind.

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Genesis Command References Undefined Variable

The persistenceCore genesis add-genesis-account command for the initial genesis validator uses the undefined variable $i to retrieve the validator's address. This command is outside the loop where $i is defined and should instead reference the first genesis validator directly.

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Script Logic Error: Command Misplaced

De-indenting the cat << END ... command causes it to execute unconditionally. This removes it from its intended else block, potentially appending the extractor configuration incorrectly or multiple times.

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Backup File Path Mismatch Causes Restore Failures

The script backs up priv_validator_state.json to $HOME/priv_validator_state_backup.json, but subsequent restore and cleanup operations expect the file at $HOME_DIR/priv_validator_state_backup.json. This path mismatch causes the mv and rm commands to fail.

Additional Locations (1)

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Production Config Contains Debugging Artifacts

Commented-out debugging commands, such as sleep infinity and alternative exec commands, are present in the production configuration. These appear to be development artifacts that can be removed.

Additional Locations (1)

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Conflicting Volume Definitions in Kubernetes Deployment

A volumeClaimTemplates section is added to create node-pv-storage, but the volumes section at lines 228-236 already references this storage via a persistentVolumeClaim with claimName: node-pv-claim. This creates a conflict where the same storage is defined both as a static PVC reference and as a dynamic volumeClaimTemplate, which will cause deployment failures in Kubernetes.

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Reader Node Incorrectly Configured for RPC Fetching

The --reader-node-arguments flag contains fetch rpc $FIRST_STREAMABLE_BLOCK which appears to be using the firepersistence binary to fetch blocks from an RPC endpoint. However, this is a multi-pod architecture where the reader should be running a blockchain node, not fetching from RPC. This configuration seems incorrect for a reader node that should be producing blocks locally.

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Unused Storage in StatefulSet

The StatefulSet defines a volumeClaimTemplates for node-pv-storage but the container has no volumeMounts section (commented as "No volume mounts needed when not restoring snapshots"). This creates unused persistent storage that will be provisioned but never mounted, wasting resources. If snapshots aren't needed, the volumeClaimTemplates should also be removed.

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Oct 23, 2025

Bug: Infinite Sleep Halts Container Initialization

The command contains sleep infinity which will cause the container to hang indefinitely instead of starting the firehose reader. This appears to be debugging code that was accidentally left in.

Fix in Cursor Fix in Web

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.

2 participants