Skip to content

Conversation

@lidel
Copy link
Member

@lidel lidel commented Aug 31, 2025

Warning

This wip experimentation, not ready for review yet.

This PR aims to address problem from #34 and also..

  • to unblock fix(gateway): prevent blocked CIDs in CAR responses ipfs/boxo#1019:
    • implement BlockedBlockstore wrapper for blockstore operations
    • implement BlockedExchange with SessionExchange support
    • add BlockedFetcher for session-level blocking
    • optimize BlockService to delegate checks to wrapped components
    • add compile-time type assertions for all interfaces

I'm mainly depending on e2e tests in Kubo (go test -v ./test/cli -run "TestContentBlocking") in PR that integrates this PR and ipfs/boxo#1019

- implement BlockedBlockstore wrapper for blockstore operations
- implement BlockedExchange with SessionExchange support
- add BlockedFetcher for session-level blocking
- optimize BlockService to delegate checks to wrapped components
- add compile-time type assertions for all interfaces

fixes #34
lidel added a commit to ipfs/boxo that referenced this pull request Aug 31, 2025
- use blockservice.NewSession for automatic session reuse
- properly enforce denylist checks via wrapped blockstore/exchange
- improve performance with request-level session batching

requires ipfs-shipyard/nopfs#50
fixes #458
fixes ipfs/kubo#10361
lidel added a commit to ipfs/kubo that referenced this pull request Aug 31, 2025
- nopfs: SessionExchange support and optimized blocking checks
  ipfs-shipyard/nopfs#50
- boxo: restored session usage in CAR streaming with proper blocking
  ipfs/boxo#1019

fixes #10361
- test blockstore, exchange, and blockservice wrappers
- add test helpers and mocks
plugin is now built into kubo v0.24.0+
- include ipfs/ tests in CI workflow
- update to go 1.24 for compatibility
@lidel lidel force-pushed the fix-blockservice-getters branch from c8da810 to 16ea529 Compare September 1, 2025 02:22
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