Resources Required:
- 1 Delivery engineer (50% of work)
- 1 Status engineer (50% of work)
Status replaces go-waku with Logos Delivery, consumed through the Messaging API. The old nwaku relay integration has been removed and liblogosdelivery builds for mobile. The remaining plan:
- Prepare the network — move Status to a shape the Messaging API can serve
- Build and link —
libsdsandliblogosdeliverybuilt through Nimble and linked intostatus-goandstatus-appon every platform - Close the Messaging API gaps — every feature
status-gorelies on is implemented in Logos Delivery or explicitly dropped - Replace go-waku — switch
status-goto Logos Delivery behind its transport, then delete go-waku
Related milestones
- Integrate nwaku in Status Desktop relay mode only — superseded by this milestone
- Messaging API — Beta — prerequisite (includes edge mode for mobile, Subscribe API)
Risks
| Risk | (Accept, Own, Mitigation) |
|---|---|
| Go bindings for C libraries | status-go needs Go bindings for Logos Delivery C-bindings. Extra development work. |
| Messaging API gaps | status-go relies on features the Messaging API lacks. Tracked and resolved in the Messaging API gaps deliverable. |
| Cross-platform builds | Nimble builds must work on all desktop and mobile platforms and in every CI. nim-sds trials the integration first. |
| DST blocked on discovery | DST testing of Logos Delivery in Status is blocked by a discovery issue. Needs resolution before meaningful benchmarking. |
Deliverables
Remove existing nwaku integration
Owner: Delivery Team + Status Core
- Remove nwaku CI jobs from
status-go(no more duplicated jobs) - Remove existing nwaku relay integration code from
status-go - Status continues with go-waku only until Messaging API is ready
Support mobile platforms in logos-delivery
Owner: Delivery Team
- Ensure
logos-deliverycan be compiled for Android and iOS - Corresponding
nimbletargets are created, similar to SDS
Done when: CI jobs build liblogosdelivery for Android and iOS.
Prepare the network for the Messaging API
- Move the Status network to a single shard
- Stop using the WakuMessage
versionfield - Add a
status.prodpreset to Logos Delivery
Done when: Status sends and listens on shard 32 only, and Logos Delivery can join the Status network with its preset.
Build and link Logos Delivery in status-go and status-app
- Build
libsdsandliblogosdeliverythrough Nimble - Link both into
status-goandstatus-appon every platform and in every CI nim-sdsis already part of the build, so it trials the Nimble integration first
Done when: status-go and status-app build with both libraries on Linux, macOS, Windows, Android and iOS, and all their CI jobs are green.
Messaging API: close the gaps Status needs
Close the gaps between what status-go uses today and what the Messaging API offers, so the adapter needs no workarounds:
- Node info (ENR, listen addresses, peer ID, version)
- Store peer auto-selection
- Send retry owned by Logos Delivery
- Missing-message gap detection
- Send priority: keep or drop
- OS connectivity hint: keep or drop
sendreturns the message hash the envelope monitor needs- Pause/Resume for mobile backgrounding
Done when: every item is implemented in Logos Delivery or explicitly dropped.
Replace go-waku with Logos Delivery in status-go
- Replace go-waku with Logos Delivery behind the
status-gotransport - Both backends compile; the choice is runtime config, not a build tag
- Delete go-waku once the switch is done
- Depends on the build and Messaging API gaps deliverables for the cutover; the seam and adapter can start earlier
Done when: status-go runs on Logos Delivery by default, the Go and functional suites pass on it, and go-waku is gone from go.mod.