Skip to content

Conversation

@snowmead
Copy link
Contributor

@snowmead snowmead commented Dec 18, 2025

Implements automatic retry for BSP confirm storing when proof errors occur due to concurrent operations (e.g., file deletions modifying the forest) and transient errors.

  • Update BSP upload task to:
    • Pre-filter storage requests using the new runtime API before proof generation
    • Handle ForestProofVerificationFailed and FailedToApplyDelta errors by re-queuing file
  • Add query_pending_bsp_confirm_storage_requests runtime API to filter file keys that still need confirmation (excludes already confirmed, non-volunteer, or non-existent storage requests)
  • Add integration test verifying retry behaviour when a concurrent delete causes proof failure

Implements automatic retry for BSP confirm storing when proof errors occur
due to concurrent operations (e.g., file deletions modifying the forest) and transient errors.

- Add `query_pending_bsp_confirm_storage_requests` runtime API to filter
  file keys that still need confirmation (excludes already confirmed,
  non-volunteer, or non-existent storage requests)
- Implement handler in blockchain-service for the new query command
- Update BSP upload task to:
  - Pre-filter storage requests using the new runtime API before proof
    generation
  - Handle `ForestProofVerificationFailed` and `FailedToApplyDelta` errors
    by re-queuing file keys for automatic retry
- Add integration test verifying retry behavior when a concurrent delete
  causes proof failure
@snowmead snowmead added B5-clientnoteworthy Changes should be mentioned client-related release notes B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes D2-noauditneeded🙈 PR doesn't need to be audited not-breaking Does not need to be mentioned in breaking changes labels Dec 18, 2025
snowmead and others added 4 commits December 19, 2025 08:13
# Conflicts:
#	client/blockchain-service/src/handler.rs
#	client/src/tasks/bsp_upload_file.rs
Removes unused import that was introduced during merge conflict resolution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B5-clientnoteworthy Changes should be mentioned client-related release notes B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes D2-noauditneeded🙈 PR doesn't need to be audited not-breaking Does not need to be mentioned in breaking changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants