Conversation
| axum_msgs.len(), | ||
| ); | ||
| Ok(()) | ||
| } |
There was a problem hiding this comment.
it's a bit hard to test streaming websocket endpoints for parity conceptually, since there may be subtle timing differences between them (neither returns deterministic data)
to make this test a bit more resilient, we wait for 10 messages from each and just check that the streams had at least 2 in common
|
Unable to build without Cargo.lock file. This means that after this change 3rd party projects may have For the first failing build see: https://github.com/EspressoSystems/espresso-network/actions/runs/25563643402 To reproduce locally run This PR can still be merged. |
| std::thread::Builder::new() | ||
| .stack_size(32 * 1024 * 1024) | ||
| .spawn(move || { | ||
| tokio::runtime::Builder::new_multi_thread() | ||
| .enable_all() | ||
| .build() | ||
| .unwrap() | ||
| .block_on(async move { | ||
| const EPOCH_HEIGHT: u64 = 10; | ||
| const NUM_NODES: usize = 5; |
There was a problem hiding this comment.
it took a lot of experimentation to get this test to not hit a stack overflow. to me this seems innocuous so I didn't try to dig much further to figure out exactly where the line was
|
Claude finished @ss-es's task in 3m 42s —— View job Code Review: Migrate query-service availability endpoints
SummaryThis PR migrates the remaining query-service availability endpoints from tide-disco to Axum, adding a new Key FindingMissing range limit enforcement on Minor Notes
What looks good
|
Nextest failures (1) in this run
See the step summary for flaky tests and slowest tests. |
| parking_lot = { workspace = true } | ||
| rand = "0.10.0" | ||
|
|
||
| # optional: |
| from: usize, | ||
| namespace: u32, | ||
| ) -> anyhow::Result<futures::stream::BoxStream<'static, Self::NamespaceProofQueryData>> { | ||
| use espresso_types::{NamespaceId, NamespaceProofQueryData, NsProof}; |
| type BlockSummary = | ||
| hotshot_query_service::availability::BlockSummaryQueryData<espresso_types::SeqTypes>; | ||
| type Limits = hotshot_query_service::availability::Limits; | ||
| type Cert2 = hotshot_new_protocol::message::Certificate2<espresso_types::SeqTypes>; |
There was a problem hiding this comment.
import some of these types for readability?
| async-trait = { workspace = true } | ||
|
|
||
| # Testing dependencies | ||
| bitvec = { workspace = true, optional = true } |
There was a problem hiding this comment.
accidental cargo sort without -g?
|
@ss-es I think my main concern is that we should do some equivalence checks for common errors where they are informative, like range limits / not found. To ensure we are returning reasonable errors from Axum for clients. At least for errors that they probably care about. |
Migrates remaining query-service availability endpoints to
axum.Notably, this PR does not include new v2 endpoints for any of these. I will add those in a separate PR.
There are tests in
crates/espresso/node/src/api.rsthat should ensure parity between the axum and tide APIs for all endpoints.