blog: iroh 1.0.3 and noq 1.1.0 release#504
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
divagant-martian
left a comment
There was a problem hiding this comment.
Love the content, hate the first paragraph. I do understand why it's hard to write so no shade on that. I suck at talking to people so sorry to leave such a red review when I myself wouldn't be able to do it this good
|
|
||
| Welcome to a new release of `iroh`, a modular networking stack in Rust, for building direct connections between devices. | ||
|
|
||
| After [last release's security fix](/blog/iroh-1-0-2), we're happy to be back to the good kind of boring. We've shipped iroh 1.0.3 together with [noq 1.1.0](https://github.com/n0-computer/noq/releases/tag/noq-v1.1.0) to give you a cleaner, smoother connection experience, without breaking any APIs. |
There was a problem hiding this comment.
Sorry to give critique without a concrete counterproposal - I'll come back to this tomorrow hopefully with one - but I'm not a fan of this paragraph. Perhaps I'm just not the right audience for it and it's quite fine for our users, but let me explain where my issue with it lies.
The overall tone: It feels apologetic and defensive. From this paragraph I wouldn't really know what the release is about, the "back to the good kind of boring" to me sounds like we are back in business after a shitshow that exposed users passwords or something quite serious, but it wasn't like that, we just dealt with it and it's fine. This will happen again, probably more than a couple of times. The part about "without breaking APIs" also isn't exactly encouraging: this is a minor/patch release and we are announcing we are doing the bare minimum in the semver contract with our users.
I would expect this paragraph to focus on why this release is one worth adopting, but writing this down I see it's hard to make it sound exciting and having a narrative. I think we could say the projects are settling into a stable maintenance cadence after 1.0 (and the previous security fix if you wish to acknowledge it explicitly), with incremental improvements to reliability (a bunch of bugs fixed between the previous minor now release and this one), developer experience (docs, logs, ci feedback, contributing), and overall ecosystem quality (like Adding pkarr resolver to n0 presets in iroh, for example)
I'll try to come back later with perhaps a more grounded suggestion
|
|
||
| ## Connections hold up better under real-world conditions | ||
|
|
||
| This release closes up a handful of corner cases in noq: path validation is timed more correctly when a new path opens, stray packets from paths that have already been abandoned are no longer allowed to cause confusion, and a connection-accounting bug that could undercount active connections is fixed. Packet coalescing during the handshake is also more correct now, which matters most on networks that don't behave nicely. |
There was a problem hiding this comment.
| This release closes up a handful of corner cases in noq: path validation is timed more correctly when a new path opens, stray packets from paths that have already been abandoned are no longer allowed to cause confusion, and a connection-accounting bug that could undercount active connections is fixed. Packet coalescing during the handshake is also more correct now, which matters most on networks that don't behave nicely. | |
| This release closes up a handful of corner cases in noq: path validation is timed more consistently when a new path opens, better handling of received data referring to abandoned paths, and a connection-accounting bug that could undercount active connections is fixed. Packet coalescing during the handshake is also more correct now, which matters most on networks that don't behave nicely. |
The change from correctness to consistency is one that I think more appropriately describes the change, but if it leaves the reader confused just ignore it
|
|
||
| ## Know when a connection is trustworthy | ||
|
|
||
| noq adds a new `Connection::authenticated` method that succeeds as soon as an 0-RTT connection is proven to not be a replay attack (and always succeeds immediately in a 1-RTT connection). We still have `Connection::handshake_confirmed`, which waits longer for the client to confirm the client-side authentication. Read more [here](https://docs.rs/noq/latest/noq/struct.Connection.html#method.authenticated) |
There was a problem hiding this comment.
I'm on the fence about explicitly coming from the great work done in quinn. On one hand, the commit was cherry-picked and Benjamin is noted as main author, on the other.. the commit is not here, and I'm not sure it's worth doing that every time. Is it enough to link the commit with his name, is something like
noq brings from the work of our friends at quinn instead of noq adds less "appropriating"?
There was a problem hiding this comment.
Given this blog post is about iroh 1.0.3, I'd consider perhaps not mentioning this at all as long as this API hasn't made it into iroh itself. There are very few people using noq directly.
matheus23
left a comment
There was a problem hiding this comment.
I kind of agree with @divagant-martian's assessment of comparing this patch release with the last. I think we can just say we're back with another patch release.
But it's also not a big deal and overall the blog LGTM.
IMO in the future I'm not sure if we even want to announce patch releases on our blog anymore. I don't think that's really common. A discord announcement might be enough tbqh.
|
|
||
| ## Better defaults out of the box | ||
|
|
||
| The `n0` preset now includes a pkarr resolver. This means that we now, by default, have a fallback if our normal DNS resolver fails. |
There was a problem hiding this comment.
| The `n0` preset now includes a pkarr resolver. This means that we now, by default, have a fallback if our normal DNS resolver fails. | |
| The `n0` preset now includes an HTTPS-based pkarr resolver. This means that we now, by default, have a fallback if our normal DNS-based resolver fails. |
|
|
||
| ## Connections hold up better under real-world conditions | ||
|
|
||
| This release closes up a handful of corner cases in noq: path validation is timed more correctly when a new path opens, stray packets from paths that have already been abandoned are no longer allowed to cause confusion, and a connection-accounting bug that could undercount active connections is fixed. Packet coalescing during the handshake is also more correct now, which matters most on networks that don't behave nicely. |
There was a problem hiding this comment.
Actually, it might make sense to mention the error messages that you'd used to see and say they're fixed.
So that'd be:
panicked at noq-1.0.1/src/endpoint.rs:648:17: attempt to subtract with overflowpanicked at noq-proto-1.0.1/src/connection/packet_builder.rs:159:9: assertion failed: max_size >= min_size
For the other bugfix, I unfortunately don't know what a bad trace would look like...
No description provided.