Skip to content
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

feat: update to v3.1.1 celestia-app, v0.20.4 celestia-node, celestia-types 0.9.0, celestia-rpc 0.8.0 #2

Merged
merged 5 commits into from
Jan 8, 2025

Conversation

jcstein
Copy link
Contributor

@jcstein jcstein commented Dec 5, 2024

Todo:

  • get around force-no-bbr not working when running just celestia-up. the validator fails to start
  • fix light node fail to start
  • then test this out with the new celestia-rpc and celestia-types versions with tictactoe
  • make sure template code is correct for new version

Summary by CodeRabbit

  • New Features

    • Enhanced configuration for bridge and light nodes with new environment variables.
    • Introduced support for managing trusted peers dynamically.
    • Updated blob creation process to include application versioning.
  • Bug Fixes

    • Improved handling of peer connections and synchronization for light nodes.
  • Documentation

    • Clarified comments regarding configuration directories and shared data management.
  • Chores

    • Updated dependency versions for celestia-rpc and celestia-types across multiple packages.

Copy link

coderabbitai bot commented Dec 5, 2024

Walkthrough

This pull request introduces updates across various components of the Celestia project, focusing on upgrading Docker configurations, shell scripts, and Rust dependencies. Key modifications include updating the Alpine base images and Celestia node/application binaries to newer versions. Additionally, the Docker Compose file has been modified for improved service configuration, and shell scripts have been enhanced for dynamic peer management. Rust dependencies have also been updated to ensure compatibility with the latest features, particularly regarding blob versioning.

Changes

File Change Summary
ci/Dockerfile.bridge Updated Alpine base image from 3.19.1 to 3.21.0; updated Celestia node binaries from v0.15.0 to v0.20.4.
ci/Dockerfile.lightnode Updated Alpine base image from 3.19.1 to 3.21.0; updated Celestia node binaries from v0.15.0 to v0.20.4.
ci/Dockerfile.validator Updated Alpine base image from 3.19.1 to 3.21.0; updated Celestia app binary from v2.0.0 to v3.1.1.
ci/docker-compose.yml Added SKIP_AUTH and CONTAINER_NAME variables; updated BRIDGE_COUNT to 2; renamed genesis volume to shared.
ci/run-bridge.sh Introduced CONTAINER_NAME and SHARED_DIR variables; added append_trusted_peers function for peer management.
ci/run-lightnode.sh Added BRIDGE_COUNT variable; updated paths for configuration; added add_trusted_peers function.
ci/run-validator.sh Updated GENESIS_HASH_FILE path to $SHARED_DIR; modified transaction indexing configuration.
examples/tictactoe/Cargo.toml Updated celestia-rpc from 0.4.0 to 0.8.0; updated celestia-types from 0.4.0 to 0.9.0.
src/templates/Cargo.toml Updated celestia-rpc from 0.4.0 to 0.8.0; updated celestia-types from 0.4.0 to 0.9.0.
examples/tictactoe/src/node.rs
src/templates/node.rs
Added AppVersion import; updated Blob::new to include AppVersion::V3.

Sequence Diagram

sequenceDiagram
    participant Docker as Docker Compose
    participant Bridge as Bridge Node
    participant Light as Light Node
    participant Validator as Validator Node

    Docker->>Bridge: Start with SKIP_AUTH=true
    Docker->>Light: Configure with BRIDGE_COUNT=2
    Bridge-->>Light: Share Trusted Peers
    Light->>Validator: Request Genesis Hash
    Validator-->>Light: Provide Genesis Hash
    Light->>Bridge: Establish Connection
Loading

Poem

🐰 Hop, hop, through Docker's domain,
Celestia's nodes dance a new refrain,
Versions bump, configs align,
Peers connect, the network's design,
A rabbit's update, smooth and bright! 🌟


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f29e7c0 and 18743af.

📒 Files selected for processing (1)
  • ci/Dockerfile.validator (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • ci/Dockerfile.validator

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@jcstein
Copy link
Contributor Author

jcstein commented Dec 16, 2024

Used deltadevsde/prism#176 as a reference 🫡

@jcstein
Copy link
Contributor Author

jcstein commented Dec 16, 2024

I now see the LN failing to start not being able to find trusted peers:

2024-12-16 16:11:26 2024-12-16T21:11:26.650Z    INFO    node    nodebuilder/init.go:31  Initializing Light Node Store over '/root'
2024-12-16 16:11:26 2024-12-16T21:11:26.655Z    INFO    node    nodebuilder/init.go:64  Saved config    {"path": "/root/config.toml"}
2024-12-16 16:11:26 2024-12-16T21:11:26.656Z    INFO    node    nodebuilder/init.go:66  Accessing keyring...
2024-12-16 16:11:26 2024-12-16T21:11:26.663Z    WARN    node    nodebuilder/init.go:196 Detected plaintext keyring backend. For elevated security properties, consider using the `file` keyring backend.
2024-12-16 16:11:26 2024-12-16T21:11:26.664Z    INFO    node    nodebuilder/init.go:211 NO KEY FOUND IN STORE, GENERATING NEW KEY...    {"path": "/root/keys"}
2024-12-16 16:11:26 2024-12-16T21:11:26.773Z    INFO    node    nodebuilder/init.go:216 NEW KEY GENERATED...
2024-12-16 16:11:26 2024-12-16T21:11:26.773Z    INFO    node    nodebuilder/init.go:73  Node Store initialized
2024-12-16 16:11:26 
2024-12-16 16:11:26 NAME: my_celes_key
2024-12-16 16:11:26 ADDRESS: celestia1xw8q7d955mkcdvdyyv6hmguq7yvpmjg5pm0dat
2024-12-16 16:11:26 MNEMONIC (save this somewhere safe!!!): 
2024-12-16 16:11:26 [redacted]
2024-12-16 16:11:26 
2024-12-16 16:11:26 Waiting for the validator node to start
2024-12-16 16:11:36 Validator is ready
2024-12-16 16:11:38 using directory:  /root/keys
2024-12-16 16:11:39 Trusting a genesis: "11A5766BB20DDADA0B29194D18162E5D95B23A617CFA779A9A8849C10E3E3F45"
2024-12-16 16:11:39 Saving jwt token to /credentials/light-0.jwt
2024-12-16 16:11:50 Configuration finished. Running a light node...
2024-12-16 16:11:50 2024-12-16T21:11:50.868Z    WARN    rpc     rpc/flags.go:56 RPC authentication is disabled
2024-12-16 16:11:50 2024-12-16T21:11:50.878Z    INFO    node    nodebuilder/module.go:27        Accessing keyring...
2024-12-16 16:11:50 2024-12-16T21:11:50.921Z    INFO    badger4 v4@v4.3.0/levels.go:171 All 0 tables opened in 0s
2024-12-16 16:11:50 
2024-12-16 16:11:50 2024-12-16T21:11:50.922Z    INFO    badger4 v4@v4.3.0/discard.go:66 Discard stats nextEmptySlot: 0
2024-12-16 16:11:50 
2024-12-16 16:11:50 2024-12-16T21:11:50.922Z    INFO    badger4 v4@v4.3.0/db.go:369     Set nextTxnTs to 0
2024-12-16 16:11:50 2024-12-16T21:11:50.931Z    INFO    module/p2p      p2p/tls.go:54   using a default ws transport
2024-12-16 16:11:50 2024-12-16T21:11:50.985Z    INFO    pidstore        pidstore/pidstore.go:84 Persisted peers successfully    {"amount": 0}
2024-12-16 16:11:50 2024-12-16T21:11:50.986Z    INFO    module/header   header/config.go:66     No trusted peers in config, initializing with default bootstrappers as trusted peers
2024-12-16 16:11:50 2024-12-16T21:11:50.996Z    INFO    header/p2p      p2p/exchange.go:99      client: starting client {"protocol ID": "/private/header-ex/v0.0.3"}
2024-12-16 16:11:50 2024-12-16T21:11:50.997Z    INFO    pidstore        pidstore/pidstore.go:67 Loaded peers from disk  {"amount": 0}
2024-12-16 16:11:50 2024-12-16T21:11:50.998Z    INFO    pidstore        pidstore/pidstore.go:84 Persisted peers successfully    {"amount": 0}
2024-12-16 16:11:51 2024-12-16T21:11:51.003Z    INFO    basichost       basic/natmgr.go:112     DiscoverNAT error:no NAT found
2024-12-16 16:11:51 2024-12-16T21:11:51.005Z    INFO    badger4 v4@v4.3.0/db.go:547     Lifetime L0 stalled for: 0s
2024-12-16 16:11:51 
2024-12-16 16:11:51 2024-12-16T21:11:51.017Z    INFO    badger4 v4@v4.3.0/db.go:626
2024-12-16 16:11:51 Level 0 [ ]: NumTables: 00. Size: 0 B of 0 B. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 16 MiB
2024-12-16 16:11:51 Level 1 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
2024-12-16 16:11:51 Level 2 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
2024-12-16 16:11:51 Level 3 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
2024-12-16 16:11:51 Level 4 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
2024-12-16 16:11:51 Level 5 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
2024-12-16 16:11:51 Level 6 [B]: NumTables: 01. Size: 1.1 KiB of 10 MiB. Score: 0.00->0.00 StaleData: 90 B Target FileSize: 2.0 MiB
2024-12-16 16:11:51 Level Done
2024-12-16 16:11:51 
2024-12-16 16:11:51 Error: node: failed to start: no trusted peers

@jcstein
Copy link
Contributor Author

jcstein commented Dec 16, 2024

got LN working, now having issue when running tictactoe with bridge node funding(?)

@jcstein
Copy link
Contributor Author

jcstein commented Dec 17, 2024

./target/debug/tictactoe serve
 ERROR tictactoe::node > posting batch: ErrorObject { code: ServerError(1), message: "querying account bridge-0: rpc error: code = NotFound desc = account celestia1p524wf638rfd4k72mflekq2d5gmmv7tkfdxmaa not found", data: None }

@jcstein jcstein marked this pull request as ready for review December 17, 2024 19:55
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🔭 Outside diff range comments (2)
ci/run-lightnode.sh (2)

Line range hint 69-73: Security: Remove hardcoded password

The function uses a hardcoded password "password" which is a security risk, even in a test environment.

Consider using an environment variable:

-  echo "password" | cel-key import "$NODE_NAME" "$NODE_KEY_FILE" \
+  echo "${KEYRING_PASSWORD:-password}" | cel-key import "$NODE_NAME" "$NODE_KEY_FILE" \

Line range hint 112-113: Replace arbitrary sleep with proper readiness check

Using sleep 10 is a brittle way to wait for validator setup. Consider implementing a proper readiness check.

Consider implementing a function to check validator readiness:

wait_for_validator() {
  local max_attempts=30
  local attempt=1
  while [ $attempt -le $max_attempts ]; do
    if curl -s validator:26657/status >/dev/null 2>&1; then
      echo "Validator is ready"
      return 0
    fi
    echo "Waiting for validator... attempt $attempt/$max_attempts"
    sleep 1
    attempt=$((attempt + 1))
  done
  echo "Validator failed to become ready"
  return 1
}

Then replace the sleep:

-  # give validator some time to set up
-  sleep 10
+  # ensure validator is ready
+  wait_for_validator
🧹 Nitpick comments (6)
ci/run-lightnode.sh (2)

32-64: Consider making the timeout configurable

The wait_for_provision function has good timeout handling, but the 30-second timeout is hardcoded. In some environments or under heavy load, this might not be sufficient.

Consider making it configurable:

-timeout=30
+BRIDGE_TIMEOUT="${BRIDGE_TIMEOUT:-30}"  # Allow override via environment
+timeout=$BRIDGE_TIMEOUT

86-91: Improve variable declarations per shellcheck recommendations

The current variable declarations could mask return values. Let's separate declarations and assignments.

-  local trusted_peers="$(cat "$TRUSTED_PEERS_FILE")"
-  local formatted_peers=$(echo "$trusted_peers" | sed 's/\([^,]*\)/"\1"/g')
+  local trusted_peers
+  local formatted_peers
+  trusted_peers="$(cat "$TRUSTED_PEERS_FILE")"
+  formatted_peers=$(echo "$trusted_peers" | sed 's/\([^,]*\)/"\1"/g')
🧰 Tools
🪛 Shellcheck (0.10.0)

[warning] 87-87: Declare and assign separately to avoid masking return values.

(SC2155)


[warning] 88-88: Declare and assign separately to avoid masking return values.

(SC2155)

examples/tictactoe/src/node.rs (2)

6-6: Consider extracting common blob handling logic

The blob creation and versioning logic is identical between src/templates/node.rs and examples/tictactoe/src/node.rs. Consider extracting this common functionality into a shared utility module to promote DRY principles and ensure consistent version handling across the codebase.

Example shared utility module:

// src/utils/blob.rs
use celestia_types::{Blob, AppVersion, nmt::Namespace};

pub fn create_versioned_blob(namespace: Namespace, data: Vec<u8>) -> Result<Blob> {
    Blob::new(namespace, data, AppVersion::V3)
}

Also applies to: 97-107


Line range hint 23-24: Consider addressing TODOs during this upgrade

There are two TODO items that might be relevant to the current upgrade:

  1. Backwards sync with trusted state (related to block pruning)
  2. Migration to Lumina for transaction posting

Given the reported issues with light node startup and batch posting, addressing the Lumina migration TODO might help resolve these problems.

Would you like me to help create implementation proposals for either of these TODOs?

Also applies to: 29-31

src/templates/Cargo.toml (2)

Line range hint 9-9: Standardize reqwest version across templates

There's a minor version inconsistency in reqwest:

  • tictactoe: 0.12.7
  • shard-template: 0.12.9

Consider standardizing the versions to ensure consistent behavior across templates.

- reqwest = { version = "0.12.9", features = ["json"] }
+ reqwest = { version = "0.12.7", features = ["json"] }

Also applies to: 13-14


13-14: Consider using workspace dependencies

Since both templates share identical celestia dependencies, consider using a workspace-level dependency management to ensure version consistency and simplify future updates.

This could be implemented by:

  1. Creating a workspace Cargo.toml at the root
  2. Moving shared dependencies to the workspace
  3. Referencing workspace dependencies in individual projects
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6b4ec61 and f29e7c0.

⛔ Files ignored due to path filters (1)
  • examples/tictactoe/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (11)
  • ci/Dockerfile.bridge (1 hunks)
  • ci/Dockerfile.lightnode (1 hunks)
  • ci/Dockerfile.validator (1 hunks)
  • ci/docker-compose.yml (5 hunks)
  • ci/run-bridge.sh (3 hunks)
  • ci/run-lightnode.sh (3 hunks)
  • ci/run-validator.sh (3 hunks)
  • examples/tictactoe/Cargo.toml (1 hunks)
  • examples/tictactoe/src/node.rs (3 hunks)
  • src/templates/Cargo.toml (1 hunks)
  • src/templates/node.rs (3 hunks)
✅ Files skipped from review due to trivial changes (3)
  • ci/Dockerfile.lightnode
  • ci/Dockerfile.bridge
  • ci/Dockerfile.validator
🧰 Additional context used
🪛 Shellcheck (0.10.0)
ci/run-lightnode.sh

[warning] 87-87: Declare and assign separately to avoid masking return values.

(SC2155)


[warning] 88-88: Declare and assign separately to avoid masking return values.

(SC2155)

🔇 Additional comments (9)
ci/run-lightnode.sh (1)

14-14: Verify the impact of configuration directory changes

The configuration directory has been simplified and new shared paths have been introduced. Please ensure:

  1. The change from .celestia-light-$P2P_NETWORK to $CELESTIA_HOME doesn't break existing setups
  2. The /shared directory is properly mounted in the container

Also applies to: 20-23

✅ Verification successful

Let me gather more information about the configuration directory changes and volume mounts.


Let me check the actual usage of these directories in the scripts to understand the complete picture.


Configuration directory changes are properly handled

The changes to the configuration directory are safe because:

  1. $CELESTIA_HOME is correctly set to /root in all Dockerfiles
  2. The /shared directory is properly mounted in all services via Docker volumes
  3. The script uses the directories consistently:
    • $CONFIG_DIR for node configuration
    • /shared for inter-node communication
    • /credentials for node keys and JWT tokens

All paths are properly mounted and accessible within the containers, and the change from .celestia-light-$P2P_NETWORK to $CELESTIA_HOME is handled correctly in the containerized environment.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if these changes align with docker-compose configuration
rg -A 5 'CELESTIA_HOME|/shared' | grep -E 'volumes:|CELESTIA_HOME'

Length of output: 395


Script:

#!/bin/bash
# Check docker-compose volume configurations and environment variables
cat ci/docker-compose.yml

Length of output: 2579


Script:

#!/bin/bash
# Check how CONFIG_DIR and shared directories are used in the scripts
cat ci/run-lightnode.sh

Length of output: 3623

src/templates/node.rs (3)

6-6: LGTM: Import change aligns with celestia-types upgrade

The addition of AppVersion import is consistent with the upgrade to celestia-types 0.9.0.


139-143: LGTM: Improved code formatting

The reformatting of BlobClient::blob_get_all improves readability without affecting functionality.


97-107: Verify compatibility with existing batches

The addition of AppVersion::V3 is required for the celestia-app v3.0.2 upgrade. However, we should verify that this change maintains compatibility with existing batches in the system.

✅ Verification successful

Based on the gathered information, I can now provide the final response:

AppVersion::V3 change is safe to proceed

The version change is safe because:

  • The Batch deserialization logic in both template and example code is version-agnostic, using bincode serialization without version checks
  • The version is only used during blob creation for celestia-app compatibility
  • Existing batches can still be deserialized as the TryFrom implementation for Batch focuses on the blob data content, not the version
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if there are any existing batches in the system that might be affected by the version change

# Search for Batch implementations to verify version handling
ast-grep --pattern 'impl $_ for Batch {
  $$$
}'

# Search for Batch deserialization code
rg -A 5 'try_from.*Blob.*Batch'

Length of output: 1819


Script:

#!/bin/bash
# Let's check for AppVersion usage in Blob and related deserialization code
rg -A 5 "AppVersion"

# Check Blob implementation and version handling
ast-grep --pattern 'impl $_ for Blob {
  $$$
}'

# Search for any version-related validation or checks
rg -A 5 "version.*check|validate.*version"

Length of output: 4040


Script:

#!/bin/bash
# Let's check the Blob struct definition and its version handling
ast-grep --pattern 'struct Blob {
  $$$
}'

# Check if there are any version-specific deserialization or conversion logic
rg -A 10 'impl.*TryFrom.*Blob'

# Look for any version-related constants or enums
rg -A 5 'enum.*Version|const.*VERSION'

Length of output: 1594

examples/tictactoe/Cargo.toml (1)

Line range hint 9-9: Verify dependency compatibility matrix

Please ensure compatibility between:

  1. reqwest 0.12.7 and the updated celestia-rpc 0.8.0
  2. The git dependencies (prism-common, keystore-rs) and the new celestia component versions

Let's check for potential version conflicts:

Also applies to: 13-14

✅ Verification successful

Dependencies are compatible and correctly aligned

The verification shows that:

  • celestia-rpc 0.8.0 and celestia-types 0.9.0 are correctly paired in both the Cargo.toml files and Cargo.lock
  • celestia-rpc 0.8.0 explicitly depends on celestia-types 0.9.0 in its own dependencies
  • The git dependencies (prism-common, keystore-rs) are using compatible versions of celestia components
  • No version conflicts are detected in the dependency tree
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for version requirements in dependencies

# Look for version specifications in cargo files
rg -g "Cargo.toml" "celestia-(rpc|types)" 

# Check for potential version conflicts in cargo lock
fd -g "Cargo.lock" --exec cat {} | grep -A 5 -B 5 "celestia-"

Length of output: 5145

ci/docker-compose.yml (3)

70-72: Verify bridge count configuration

The BRIDGE_COUNT=2 in the light node configuration must match the actual number of bridge nodes defined in the compose file.

✅ Verification successful

Bridge count configuration is correctly set

The verification confirms that the BRIDGE_COUNT=2 matches exactly with the number of bridge services (2) defined in the docker-compose file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Count bridge services and compare with BRIDGE_COUNT
actual_bridges=$(rg "^  bridge-" ci/docker-compose.yml | wc -l)
configured_count=$(rg "BRIDGE_COUNT=" ci/docker-compose.yml | head -n1 | cut -d'=' -f2)
echo "Actual bridges: $actual_bridges"
echo "Configured count: $configured_count"

Length of output: 252


14-14: Verify volume mount consistency across services

The new shared volume is mounted consistently across all services, which is good. However, consider adding volume mount options to prevent potential permission issues.

Consider adding mount options for better security:

volumes:
  - credentials:/credentials
-  - shared:/shared
+  - shared:/shared:rw,z

Also applies to: 35-35, 56-56, 77-77


26-30: Enhance container naming configuration

The CONTAINER_NAME environment variable is correctly set to match the service name, which is crucial for peer discovery. However, consider adding validation to ensure these values stay in sync.

Consider adding a validation script in the entrypoint to verify that CONTAINER_NAME matches the actual container name:

environment:
  - CONTAINER_NAME=bridge-0
+ entrypoint: >
+   /bin/sh -c '
+   [ "$$(hostname)" = "$$CONTAINER_NAME" ] || 
+   (echo "Container name mismatch" && exit 1) &&
+   /your/original/entrypoint'

Also applies to: 49-51

ci/run-validator.sh (1)

194-195: Verify transaction indexing configuration

The change to enable transaction indexing with indexer = "kv" is good, but ensure sufficient disk space is available as this can significantly increase storage requirements.

Consider adding monitoring for disk usage when transaction indexing is enabled. Also, document the storage requirements in the README.

ci/run-lightnode.sh Show resolved Hide resolved
examples/tictactoe/Cargo.toml Show resolved Hide resolved
ci/run-bridge.sh Show resolved Hide resolved
ci/run-bridge.sh Show resolved Hide resolved
ci/run-validator.sh Show resolved Hide resolved
ci/run-validator.sh Show resolved Hide resolved
@jcstein jcstein changed the title feat: update to v3.0.2 celestia-app, v0.20.4 celestia-node, celestia-types 0.9.0, celestia-rpc 0.8.0 feat: update to v3.1.1 celestia-app, v0.20.4 celestia-node, celestia-types 0.9.0, celestia-rpc 0.8.0 Dec 18, 2024
@jcstein
Copy link
Contributor Author

jcstein commented Dec 18, 2024

Screenshot 2024-12-17 at 20 02 07

then scaffolding a new rollup, making a blank tx type that takes a string results in data posted when transactions are made to the testing rollup

Copy link
Contributor

@distractedm1nd distractedm1nd left a comment

Choose a reason for hiding this comment

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

Excellent, thanks Josh!

@distractedm1nd distractedm1nd merged commit a941d98 into deltadevsde:main Jan 8, 2025
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