Skip to content

[DNM] Hypercore e2e experimental branch#1117

Draft
ismellike wants to merge 12 commits intomainfrom
hypercore-e2e
Draft

[DNM] Hypercore e2e experimental branch#1117
ismellike wants to merge 12 commits intomainfrom
hypercore-e2e

Conversation

@ismellike
Copy link
Copy Markdown
Collaborator

@ismellike ismellike commented Feb 13, 2026

This is a branch for experimental hypercore e2e testing.

Works locally, but CI has been buggy. Maybe fixes here finally pass?

ismellike and others added 8 commits February 10, 2026 14:07
The wait_for_evm_trigger_streams_to_finalize() function called
finalized() which required hypercore feeds to be Connected. This ran
during update_services() before the test client was created, so the
hypercore feed had no peer to connect to and the check could never
pass — causing a 30s timeout panic.

Split finalized() into chains_finalized() and hypercore_finalized() so
the EVM stream wait only checks chain readiness. Hypercore readiness is
already checked separately later via wait_for_hypercore_streams_to_finalize().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The sequential per-instance stream readiness checks (30s each × 3
instances) burned through the timeout budget before DHT discovery
could complete. Now all instance checks and the mesh readiness check
run in parallel with a shared 60s timeout.

Also moved feed key verification before the connectivity waits to
fail fast on misconfiguration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The hyperswarm DHT only executes announce/lookup once after bootstrapping.
If one peer's lookup fires before the other has announced, they never
discover each other. Fix by periodically re-issuing announce+lookup via
SwarmHandle while no peers are connected, with proper cleanup on both
the WAVS server and test client sides.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ismellike
Copy link
Copy Markdown
Collaborator Author

this actually passes now more than not (still occasional failures), so will debug/tweak from here for consistency now

@cyborgshead
Copy link
Copy Markdown

@ismellike Very important decision about p2p for WAVS. I don't know much about hyper stack, but Iroh is popular and good successor of IPFS. They also have CRDT append-log support with automerge

guys from prime intellect also chosen iroh for their p2p stack - prime iroh

@dakom
Copy link
Copy Markdown
Collaborator

dakom commented Feb 23, 2026

@cyborgshead - I'm having trouble understanding your comment.

Our core p2p stack is straight libp2p. We only use hyper stack for the hypercore triggers, which are optional and only relevant for services using that specific feature, i.e. to integrate with hypercore.

Suggesting to replace hypercore with something else - on a PR that's about integrating with hypercore specifically, does not make sense to me. Can you please explain?

This feature also has nothing to do with IPFS, CRDT, or other low-level primitives that aren't hypercore-specific

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.

3 participants