Implement Fiber DA spec compatibility (FiberFetcher)
- Dominant language
- Go
- Stars
- 4
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
Implement `FiberFetcher` as a `DataFetcher` backend that conforms to the [Fiber DA spec](https://github.com/celestiaorg/fibre-da-spec). This enables apex to fetch namespace data directly from the Fiber network instead of going through celestia-node, reducing latency and removing the celestia-node dependency for production deployments.
## Context
The architecture already defines a pluggable `DataFetcher` interface (`pkg/fetch/fetcher.go`). The `FiberFetcher` implementation (`pkg/fetch/fiber.go`) is planned for Phase 4. This issue tracks aligning that implementation with the upstream Fiber DA spec as it stabilizes.
## Requirements
- Implement `FiberFetcher` satisfying the `DataFetcher` interface:
- `GetHeader(ctx, height)`
- `GetBlobs(ctx, height, namespace)`
- `GetNetworkHead(ctx)`
- `SubscribeHeaders(ctx)`
- `Close()`
- Conform to the data types and wire format defined in [fibre-da-spec](https://github.com/celestiaorg/fibre-da-spec)
- Add config support for `type = "fiber"` in `[data_source]`
- Integration tests against a local Fiber node (or mock)
## Blocked on
- Fiber DA spec reaching a stable/tagged version
- Fiber network availability for testing
## References
- Spec: https://github.com/celestiaorg/fibre-da-spec
- Design doc: `test_plan.md` — Phase 4, `DataFetcher` interface
ref https://github.com/celestiaorg/celestia-node/issues/4777
Contributor guide
Assessment
This issue has not been assessed yet.