Skip to content

Conversation

@cryptoAtwill
Copy link
Contributor

@cryptoAtwill cryptoAtwill commented Dec 18, 2025

Note

Externalizes the Objects HTTP API into a new ipc-decentralized-storage gateway (with Iroh-backed upload/download) and adds a React Dropbox UI, while removing the Objects CLI from the core app and making minor interpreter/node tweaks.

  • Storage/Gateway:
    • Introduces ipc-decentralized-storage crate with an Iroh-backed objects service (upload/download, range, metrics) and gateway binary.
    • Extends gateway to start Iroh and the Objects HTTP API; adds config flags for listen addr, max size, Iroh paths.
    • Adds objects_service glue and CORS to node RPC; new /v1/blobs/{hash}/content and related routes.
  • Core App:
    • Removes Objects CLI/Settings from fendermint/app (no objects subcommand or settings).
  • Interpreter:
    • Stops filtering mempool messages by base fee in prepare_messages_for_block (commented out call).
  • UI:
    • Adds ipc-dropbox React app (wallet connect, credit purchase, bucket management, upload/download via gateway/node APIs).
  • Docs:
    • Adds RECALL_BUCKET.md guide; removes prior migration/status docs.

Written by Cursor Bugbot for commit 1dd60a7. This will update automatically on new commits. Configure here.

@cryptoAtwill cryptoAtwill requested a review from a team as a code owner December 18, 2025 14:11
@cryptoAtwill cryptoAtwill merged commit 7101c07 into recall-migration Dec 18, 2025
2 of 4 checks passed
@cryptoAtwill cryptoAtwill deleted the recall-remove-vote-tally branch December 18, 2025 14:11
.collect::<Vec<_>>();

let signed_msgs =
select_messages_above_base_fee(signed_msgs, state.block_gas_tracker().base_fee());
Copy link

Choose a reason for hiding this comment

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

Bug: Base fee filtering disabled via commented-out code

The call to select_messages_above_base_fee has been commented out instead of properly removed. This disables the mechanism that filters out transactions with gas fee caps below the base fee. With this code commented out, all transactions regardless of their gas price will be accepted into blocks, potentially allowing underpriced transactions and network spam. The function is still imported (line 23) and defined in selectors.rs, suggesting this commenting out was unintentional. The PR title "Recall remove vote tally" doesn't mention disabling base fee filtering, indicating this may be debug code that was accidentally committed.

Fix in Cursor Fix in Web

.context("failed to start Iroh node")?;

let node_addr = iroh_node.endpoint().node_addr().await?;
tracing::info!("Iroh node started: {}", node_addr.node_id);
Copy link

Choose a reason for hiding this comment

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

Bug: Iroh node initialized even when objects service disabled

The Iroh node is initialized unconditionally on lines 171-178, before the if args.enable_objects check on line 181. This means when enable_objects is set to false, the gateway still requires --iroh-path to be provided, starts an Iroh node (binding network ports and creating data directories), and logs that it started - but then never uses it. The Iroh initialization should be moved inside the if args.enable_objects block to avoid wasting resources and requiring unnecessary arguments when the objects service is disabled.

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