Skip to content

Conversation

@phutchins
Copy link
Contributor

No description provided.

This commit addresses a critical bug in `ipc-cli node init` that prevented libp2p from binding to network interfaces on cloud VMs (GCP, AWS, Azure). The fix ensures that `listen_addr` is set to `0.0.0.0` for proper binding, while `external_addresses` correctly advertises the public IP. This change restores functionality for parent finality voting and top-down message execution.

Changes include:
- Updated `ConnectionOverrideConfig` to include `external_addresses`.
- Modified port configuration logic to use `0.0.0.0` for `listen_addr`.
- Enhanced documentation in `CHANGELOG.md` and `node-init.md` to reflect these changes.
- Added tests to verify the correct configuration behavior.

Existing deployments may need to reinitialize or manually update their configurations to apply this fix.
This commit introduces a new `listen-ip` field in the P2P configuration, allowing advanced users to specify a custom IP address for binding services, while maintaining the default of `0.0.0.0` for maximum compatibility. This enhancement addresses previous limitations in binding on cloud VMs and improves flexibility for complex network setups.

Changes include:
- Updated `P2pConfig` structure to include the `listen-ip` field.
- Adjusted port configuration logic to utilize the `listen-ip` for binding.
- Enhanced documentation in `CHANGELOG.md` and `node-init.md` to reflect the new configuration options and usage examples.
- Added tests to ensure correct behavior of the new `listen-ip` functionality.

This update is fully backward compatible and does not require changes to existing configurations.
…ality issue

This commit updates the subnet configuration by changing the validator power from 1 to 3 and modifying the subnet ID to ensure compatibility with the latest deployment requirements. Additionally, a new markdown file is introduced to document the 16-hour lookback issue affecting parent finality on the Glif Calibration testnet, outlining the problem, root cause, and proposed solutions.

Changes include:
- Updated `ipc-subnet-config.yml` with new subnet ID and validator power.
- Added `PARENT-FINALITY-16H-LOOKBACK-ISSUE.md` to provide detailed insights into the parent finality issue and potential workarounds.

These updates aim to enhance the reliability and documentation of the IPC subnet management process.
…inality progress

This commit introduces a new `watch-finality` command to the IPC subnet manager, enabling users to monitor parent finality progress in real-time. The command supports continuous monitoring, target epoch tracking, and customizable refresh intervals.

Changes include:
- Added `cmd_watch_finality()` function in `ipc-subnet-manager.sh`.
- Updated usage documentation to include examples for the new command.
- Implemented `watch_parent_finality()` function in `lib/health.sh` for monitoring logic.
- Created `WATCH-FINALITY-FEATURE.md` to document usage, output, and potential use cases.

These enhancements improve the monitoring capabilities of the IPC subnet manager, facilitating better tracking of parent finality and subnet health.
…onitoring

This commit adds a new `watch-blocks` command to the IPC subnet manager, enabling users to monitor block production in real-time. The command supports continuous monitoring, target height tracking, and customizable refresh intervals.

Changes include:
- Implemented `cmd_watch_blocks()` function in `ipc-subnet-manager.sh`.
- Added `watch_block_production()` function in `lib/health.sh` for monitoring logic.
- Updated usage documentation with examples for the new command.
- Created `WATCH-BLOCKS-FEATURE.md` to document usage, output, and potential use cases.
- Adjusted `ipc-subnet-config.yml` to optimize block production settings.

These enhancements improve the monitoring capabilities of the IPC subnet manager, facilitating better tracking of block production and overall subnet health.
This commit introduces an extensive "Advanced Performance Tuning Guide" to optimize IPC subnet performance, detailing configuration changes and expected impacts on consensus timeouts, block production, and network performance. Additionally, a new script, `apply-advanced-tuning.sh`, is added to automate the application of these optimizations to existing nodes without reinitialization.

Changes include:
- Created `ADVANCED-TUNING-GUIDE.md` with detailed tuning parameters and expected performance improvements.
- Added `apply-advanced-tuning.sh` script for seamless configuration updates across validators.
- Updated `ipc-subnet-config.yml` with optimized settings for faster block production and parent finality.
- Introduced `OPTIMIZATION-SUMMARY.md` and `PERFORMANCE-OPTIMIZATION-RESULTS.md` to document performance improvements and configurations.
- Enhanced `TUNING-QUICK-REF.md` for quick access to tuning actions and parameters.

These enhancements significantly improve the performance and reliability of the IPC subnet, making it competitive with leading blockchain networks.
This commit introduces a comprehensive solution to address the broadcasting error encountered by validators due to incorrect address configuration. The changes include:

- Added `BOTTOMUP-CHECKPOINT-FIX.md` to document the problem, root cause, and the necessary fix for validator configurations.
- Created `fix-bottomup-checkpoint.sh` script to automate the process of disabling bottom-up checkpointing for federated subnets and updating validator configurations.
- Updated `lib/config.sh` to set the default validator key kind to "ethereum" for EVM-based subnets, preventing future issues.

These enhancements ensure that bottom-up checkpointing is operational and that validators are correctly configured for EVM compatibility, improving overall subnet reliability.
This commit adds a comprehensive live monitoring dashboard to the IPC subnet manager, enabling real-time tracking of various metrics and error categorization. Key changes include:

- Created `lib/dashboard.sh` for core dashboard functionality, including metrics collection and UI rendering.
- Added `cmd_dashboard()` function to `ipc-subnet-manager.sh` for command integration.
- Developed multiple documentation files detailing dashboard features, implementation, and quick reference guides.
- Enhanced error handling and formatting in the dashboard display for improved user experience.

These enhancements significantly improve the monitoring capabilities of the IPC subnet manager, providing users with a unified view of subnet health and activity.
This commit introduces a new `BottomUpSettings` struct to manage bottom-up checkpointing configurations, including an option to enable or disable the feature. Key changes include:

- Added `BottomUpSettings` struct with a default enabled state.
- Updated `IpcSettings` to include a configuration for bottom-up checkpointing.
- Enhanced `BottomUpManager` to accept a flag indicating whether bottom-up checkpointing is enabled.
- Implemented logic to conditionally execute bottom-up checkpointing based on the new settings.

These enhancements provide greater flexibility in managing checkpointing behavior within the IPC subnet, improving overall system reliability.
…t management

This commit introduces a comprehensive "Consensus Recovery Guide" and a "Diagnostic Tools Summary" to assist users in diagnosing and recovering from consensus issues within IPC subnets. Key changes include:

- Added `CONSENSUS-RECOVERY-GUIDE.md` detailing steps for diagnosing and resolving consensus problems, including commands for checking consensus and voting status.
- Introduced `DIAGNOSTIC-TOOLS-SUMMARY.md` outlining new commands like `consensus-status` and `voting-status`, enhancing the ability to monitor validator health and participation.
- Updated `ipc-subnet-manager.sh` to integrate new diagnostic commands.
- Enhanced `lib/health.sh` with functions to display consensus and voting statuses, improving operational visibility.

These enhancements significantly improve the operational capabilities of the IPC subnet manager, enabling targeted recovery actions without data loss and fostering better understanding of consensus dynamics.
…sting

This commit introduces several new scripts to enhance the IPC subnet manager's functionality. Key changes include:

- Added `enable-gateway-ports.sh` to enable GatewayPorts on remote VMs for SSH reverse tunneling.
- Introduced `setup-anvil-tunnels.sh` to establish SSH tunnels from local Anvil to remote validator nodes, allowing access to Anvil running on localhost.
- Created `test-anvil-connection.sh` to verify Anvil connectivity from remote VMs through the established SSH tunnels.
- Updated `ipc-subnet-config.yml` with new configuration settings for improved local and remote RPC endpoints.

These enhancements significantly improve the operational capabilities of the IPC subnet manager, facilitating better connectivity and management of validator nodes.
This commit introduces a new script, `debug-relayer-error.sh`, designed to assist in diagnosing issues related to checkpoint submission failures in the IPC subnet manager. Key features include:

- A series of connectivity checks to ensure the Anvil RPC is accessible.
- Validation of the existence of the Gateway and Subnet Actor contracts.
- Checks for the last bottom-up checkpoint height and subnet activity status.
- Recommendations for common issues encountered during relayer operations.

Additionally, new documentation files, including `FIXES-SUMMARY.md`, `IPC-CONFIG-ORDER-FIX.md`, and `RELAYER-UPDATE-SUMMARY.md`, have been added to summarize recent fixes and updates related to relayer connectivity and configuration management.

These enhancements significantly improve the operational capabilities of the IPC subnet manager, providing users with tools to effectively troubleshoot and resolve relayer-related issues.
This commit introduces a new documentation file, `INSTALL-SYSTEMD-FIX.md`, detailing fixes for common issues encountered during the installation of systemd services in the IPC subnet manager. Key changes include:

- Resolved installation issues where services were only installed on the first validator due to arithmetic expansion errors.
- Ensured the relayer service is installed correctly when requested.
- Added initialization for the `SCRIPT_DIR` variable in service generation functions to prevent template file access issues.
- Included steps to unmask services on affected validators before installation.

Additionally, improvements were made to the `ipc-subnet-manager.sh` and `lib/health.sh` scripts to enhance error handling and logging during the installation process.

These enhancements significantly improve the reliability and usability of the IPC subnet manager's systemd service installation process.
This commit updates the `ipc-subnet-config.yml` with new subnet IDs and contract addresses for improved configuration accuracy. Additionally, it introduces a `--debug` option in the `ipc-subnet-manager.sh` script to enable verbose logging during initialization and error handling, enhancing the debugging process. A new `RELAYER-AND-RESOLVER-FIX.md` documentation file is added, detailing fixes for relayer configuration issues and invalid resolver paths, ensuring better operational reliability.
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