Releases: n0-computer/iroh
Releases · n0-computer/iroh
v0.30.0
⚠️ Breaking Changes
-
iroh-base- removed
iroh_base::SharedSecretiroh_base::DecryptionError,iroh::DecryptionErroriroh_base::SecretKey::sharediroh_base::SecretKey::generate_with_rng, usegeneratedirectlyiroh_base::SecretKey::to_opensshiroh_base::SecretKey::from_opensshiroh_base::base32iroh_base::node_addr::AddrInfoiroh_base::node_addr::AddrInfoOptionsiroh_base::relay_map, useiroh_relay::relay_map
- changed
iroh_base::node_addr::NodeAddr->iroh_base::NodeAddriroh_base::relay_url::RelayUrl->iroh_base::RelayUrliroh_base::SecretKey::generatenow takes an rnganyhow::Erroris replaced with explicit errors forRelayUrl::from_stranyhow::Erroris replaced with explicit errors forSharedSecret::openiroh_base::PUBLIC_KEY_LENGTHis moved from a top level constant toiroh_base::PublicKey::LENGTH- keys are now formatted using
hexlowercase by default - keys still parse base32 encoded, for better backwards compatibility
- introduce
ticketfeature foriroh_base, to useiroh_base::ticket iroh_base::keyexports moved toiroh_base:iroh_base::{KeyParsingError, NodeId, PublicKey, SecretKey, SharedSecret, Signature, PUBLIC_KEY_LENGTH}
- removed
-
iroh-net-report- changed
net_report::Client::get_report_channelnow takes anopts: net_report::Optionsnet_report::Clientwill no longer bindUdpSockets when one is not provided for both STUN over IPv4 or STUN over IPv6.iroh_net_report::Client::get_reporttakes new parameterquic_config: net_report::QuicConfigiroh_net_report::Client::get_report_channeltakes new parameterquic_config: net_report::QuicConfig
- added
net_report::Client::get_report_with_options
- changed
iroh-relay
- changed
iroh_relay::HttpClientBuilder::address_family_selectorsignature changedserveris not a default feature iniroh-relayanymore
ClientErrorhas a number of unused variants removed.
iroh
- MSRV changed to 1.81
- removed
iroh::protocol::Router::get_protocoliroh::protocol::RouterBuilder::get_protocoliroh::protocol::ProtocolMap::get_typediroh::protocol::IntoArcAnyiroh::dialer::Dialerandiroh::dialeriroh::tlsiroh::Endpoint::connect_by_node_id, useiroh::Endpoint::connectwith aNodeIdinstead.iroh::hash::{BlobFormat, Hash, HashAndFormat}, useiroh_blobs::{BlobFormat, Hash, HashAndFormat}iroh::ticket::BlobTicket, useiroh_blobs::ticket::BlobTicketiroh::endpoint::Bytes, usebytes::Bytesiroh::Endpoint::watch_home_relay
To migrate, useendpoint.home_relay().initialized().await?instead ofendpoint.watch_home_relay().next().awaitand useendpoint.home_relay().stream()instead ofendpoint.watch_home_relay().next().await.DirectAddrsStreamandConnTypeStream, useiroh::watchable::WatcherStreamfor as named types instead.
- changed
iroh::endpoint::NodeAddrmoved toiroh::NodeAddriroh::Endpoint::conn_type_streamis renamed toiroh::Endpoint::conn_typeand returnsResult<Watcher<ConnectionType>>instead ofResult<ConnectionTypeStream>
To migrate, useendpoint.conn_type()?.stream()instead ofendpoint.conn_type_stream()?.iroh::Endpoint::home_relaynow returnsWatcher<Option<RelayUrl>>instead ofOption<RelayUrl>.
To migrate, useendpoint.home_relay().get()?instead ofendpoint.home_relay().iroh::protocol::ProtocolHandler::acceptnow takes&selfinstead ofArc<Self>iroh::protocol::ProtocolHandler::shutdownnow takes&selfinstead ofArc<Self>iroh::protocol::RouterBuilder::acceptnow takesT: ProtocolHandlerinstead ofArc<dyn ProtocolHandler>iroh::protocol::ProtocolMapis now private- struct
iroh::config::Confighas a new fieldzone_store - struct
iroh::metrics::Metricshas a new fieldstore_packets_expired
⛰️ Features
- (iroh) [breaking] Remove get_protocol and the plumbing required for it (#3009) - (1323c9a)
- (iroh) Remove
Arcrequirements fromProtocolHandler(#3010) - (8dfbc35) - (iroh, iroh-relay) [breaking] Remove
Endpoint::connect_by_node_idand add#[doc(cfg(...))]annotations (#3015) - (95bcb62) - (iroh-dns-server) [breaking] Eviction of stale zonestore entries (#2997) - (74884f1)
- (iroh-net) Add a Watchable struct for use in the Endpoint API (#2806) - (1a79a19)
- (iroh-net-report) [breaking] Add QUIC address discovery probes (#3028) - (cf0f8cc)
- (iroh-relay) [breaking] Use explicit key cache (#3053) - (d4f72fa)
- (net-report) [breaking] Add
net_report::Optionsto specify which probes you want to run (#3032) - (ac74c53) - (relay) Reloading certificate resolver (#2999) - (c37895b)
- Implement
RelayDatagramsQueue(#2998) - (b76500d) - [breaking] Reduce default feature dependents (#3005) - (321d8ff)
- [breaking] Bump MSRV to 1.81 (#3033) - (6e009a8)
- [breaking] Update to iroh-metrics@0.30.0 and portmapper@0.3.0 (#3054) - (dcd0b40)
🐛 Bug Fixes
- (iroh) Poll all AsyncUdpSocket sources fairly (#2996) - (26c5248)
- (iroh, iroh-relay) [breaking] Bypass magicsock::Actor for datagrams from the relay (#2986) - (0d06320)
- (iroh-dns-server) Remove accidental blocking from store (#2985) - (647b2fd)
🚜 Refactor
- (iroh) Remove with_cancel, use run_until_cancelled (#3000) - (f75a04b)
- (iroh) Remove unused rate limiter (#3007) - (b2b070f)
- (iroh) Rename the relay-is-ready-to-send waker (#3014) - (79bf3c3)
- (iroh) [breaking] Remove dialer::Dialer (#3022) - (6a62c80)
- (iroh) [breaking] Make iroh::tls private (#3018) - (0fe7e8b)
- (iroh) [breaking] Improve reexport structure (#3023) - (d9fb470)
- (iroh) Add send queue between relay actor and relays (#3026) - (af5a8c2)
- (iroh) Rename ConnectedRelayActor to ActiveRelayActor (#3027) - (80bc8a3)
- (iroh) Newtype the packet sent over relay servers (#3030) - (e7503c0)
- (iroh) Remove genawaiter usage from dht discovery (#3048) - (738c773)
- (iroh) Remove ActiveRelayMessage::GetClient ([...
v0.29.0
⚠️ Breaking Changes
-
net-toolsnow has it's own repo, which includesportmapperandnetwatch -
iroh
-
changed
iroh-netgot renamed toirohiroh-routermoved intoirohiroh-router::ProtocolHandleris nowiroh::protocol::ProtocolHandleriroh-router::ProtocolMapis nowiroh::protocol::ProtocolMapiroh-router::Routeris nowiroh::protocol::Routeriroh-router::RouterBuilderis nowiroh::protocol::RouterBuilderiroh-net'sNetcheckMetricsare now calledNetReportMetricsiroh::Endpoint::closetakes no arguments now, it defaults to using code0and an empty messageiroh::Endpoint::closenow takes&selfrather thanself. This can, in some situations, mean an existing (clone of an) endpoint might be dropped too early as a temporary variable.iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>)=>iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>, quic: bool)- Events are emitted on different tracing targets:
iroh::eventsinstead ofevents.net. iroh::node::Builderhas no more generic parameters anymoreiroh::node::Nodehas no more generic parameters anymoreiroh::protocol::Router::shutdowntakes&selfinstead ofselfRouterBuilder::accepttakesimpl AsRef<[u8]>. Existing code should still work!Node::accepttakesimpl AsRef<[u8]>. Existing code should still work!
-
removed
iroh::cli, look atiroh-blobs,iroh-docs, andiroh-doctorfor cli examplesiroh::node, useiroh-node-utiliroh::metrics, useiroh-metricsiroh::blobsuseiroh-blobscrateiroh::docsuseiroh-docscrateiroh::gossipuseiroh-gossipcrateiroh::clientiroh::util- the ability to run
irohitself in a docker container, as there is no binary anymore iroh::client::blobsuseiroh_blobs::rpc::client. a memory client is available on Blobsiroh::client::tagsuseiroh_blobs::rpc::client. a memory client is available on Blobsiroh::client::gossipuseiroh_gossip::rpc::client. a memory client is available on Gossipiroh::client::docsuseiroh_docs::rpc::client. a memory client is available on Docsiroh::client::authorsuseiroh_docs::rpc::client. a memory clientis available on Docsiroh::node::MemNode, useNodedirectlyiroh::node::FsNode, useNodedirectlyiroh::node::Node::local_pool_handleiroh::node::builder::DocsStorageiroh::node::builder::Builder::enable_gc_policyiroh::node::builder::Builder::enable_docsiroh::node::builder::Builder::register_cb_doneiroh::node::builder::ProtocolBuilder::local_pool_handleiroh::node::builder::GcPolicyiroh::util::progressiroh::util::path::IrohPaths::BaoStoreDiriroh::util::path::IrohPaths::DocsDatabaseiroh::util::path::IrohPaths::Consoleiroh::util::path::IrohPaths::DefaultAuthorutil::fs/PathContent, useiroh_blobs::util::fs::PathContentutil::fs/path_content_info, useiroh_blobs::util::fs::path_content_infoutil::fs/key_to_path, useiroh_blobs::util::fs::key_to_pathutil::fs/path_to_key, useiroh_blobs::util::fs::path_to_keyutil::fs/canonicalized_path_to_string, useiroh_blobs::util::fs::canonicalized_path_to_stringutil::io::*, useiroh_blobs::util::ioutil::progress::ProgressEmitterutil::progress::ProgressAsyncReaderutil::progress::Progressutil::progress::ProgressReaderutil::progress::ProgressReaderUpdate
-
added
- added
iroh::Endpoint::is_closed
- added
-
-
iroh-node-util- module
iroh::client::netis now a reexport ofiroh_node_util::rpc::client::net - module
iroh::client::nodeis now a reexport ofiroh_node_util::rpc::client::node - module
iroh-cli::commands::netmoved toiroh-node-util::cli::net - logic in
iroh-cli::commands::rpcmoved toiroh-node-util::cli::node - module
iroh_cli::logginghas moved toiroh-node-utilto make it available for other people building nodes iroh_config_root,iroh_data_rootandiroh_cache_rootiniroh-clihave been replaced with genericconfig_root,data_rootandcache_rootiniroh-node-util::configload_secret_keymoved toiroh_node_utilsto preserve it
- module
-
iroh-relay
-
changed
The URLs served by the relay changed:/relay/probehas moved to/ping/derp/probehas been removed.
Unless you were manually using those URLs you will not notice these changes, nothing in the iroh codebase ever used the changed URLs.RelayMapnow can be created with an iterator ofArcs directly.iroh-relaynow usesNodeGoneinstead ofPeerGonein some enums- If not configured there is now a default rate limit for incoming data from client connections: 4KiB/s steady-stream and 16MiB burst capacity.
-
removed
iroh_net::relayis removed.RelayUrl,RelayMode,RelayNodeandRelayMapare moved to the top (iroh_net). All other members of this module are now moved to the new crateiroh-relay- field
confighas been removed from variantiroh_relay::server::CertConfig::LetsEncrypt - variant
iroh_relay::server::CertConfig::Manualno longer has fieldprivate_key
-
added
iroh_base::relay_map::RelayNodenow has fieldquicthat takes aOption<iroh_base::relay_map::QuicConfig>iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>)=>iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>, quic: bool), whenquicistrue, it will start a quic server for QUIC address discovery, that has self signed tls certs for testing.iroh_relay::server::ServerConfighas new fieldquicthat takes a `Option<iroh_relay::server::QuicConfig>iroh_relay::server::TlsConfig.quic_bind_addris a new field that takes aSocketAddriroh_relay::server::TlsConfig.server_configis a new field that takes arustls::ServerConfig- variant
iroh_relay::server::CertConfig::LetsEncrypthas a new fieldstatethat takes atokio_rustls_acme::AcmeState<EC, EA>
-
⛰️ Features
- (iroh) Make all important iroh_base types available (#2975) - (73c9b75)
- (iroh) Improve Router shutdown (#2978) - (fbcaaa5)
- (iroh) Improve shutdown interactions (#2980) - (e461cca)
- (iroh-base, iroh-net-report) [breaking] Intro net-report as a crate (#2921) - (a5e9283)
- (iroh-net) Implement the https probe (#2903) - (91d44dc)
- (iroh-net) Allow the underlying UdpSockets to be rebound (#2946) - (cc9e4e6)
- (iroh-relay) Rate-limit client connections (#2961) - (c999770)
- (iroh-relay) [breaking] Add a QUIC server for QUIC address discovery to the iroh relay. (#2965) - (b2cb0ca)
- [breaking] Add iroh-relay crate (#2873) - (59b5bf9)
- Simple iroh (#2968) - (32f1fcd)
- Update to iroh-metrics@0.29.0 (#2992) - (078d1a6)
- Extract iroh-node-util (#2993) - (92d9864)
🐛 Bug Fixes
- (ci) Try to reuse msys2 dep (#2956) - (4e58b1f)
- (iroh) Remove iroh dev self dep (#2974) - (7057d72)
- (iroh-dns-server) Actually use async fs in load_secret_key (#2943) - (7c19da4)
- (iroh-net) Do not return a port for reqwest DNS resolver (#2906) - (81c8ff7)
- (iroh-net) Make sure the rtt-actor is shutdown correctly (#2914) - (c96b032)
- (iroh-net) Fix ...
v0.28.1
🛑 deprecations
iroh-blobs,iroh-docs,iroh-gossipwill not longer be re-exported in iroh and must be added as their own crates by v0.29.0Node::clientis deprecated and will be removed in v0.29.0- the iroh CLI is deprecated and will be removed in v0.29.0
⚠️ Breaking Change
-
iroh-net- removed
- the
secret_keyproperty of theiroh-relayconfig iroh_net::relay::server::ServerActorTask::secret_keyiroh_net::relay::server::ServerActorTask::public_keyiroh_net::relay::server::ServerActorTask::meta_cert- field
secret_keyiniroh_net::relay::server::RelayConfig iroh_net::portmapperis moved to its own crate:portmapperiroh_net::nethas been split and added to thenetwatchcrate
- the
- changed
iroh_net::relay::server::ServerActorTask::newnow takes no argumentsMagicsockMetricsis now#[non_exhaustive]. This allows us to add more metrics without breaking backwards compatibility in the future. The struct is not meant to be constructed outside ofiroh-netanyways.
- removed
-
iroh-base- removed
iroh_base::rpc::RpcErroriroh_base::rpc::RpcResult
- removed
-
iroh- changed
iroh::node::ProtocolHandler->iroh::router::ProtocolHandler
- changed
🐛 Bug Fixes
- Switch to correctly patched quic-rpc and iroh-quinn - (d925da4)
📚 Documentation
- Fixup changelog - (5066102)
⚙️ Miscellaneous Tasks
- Release - (134a93b)
v0.28.0
⛰️ Features
- (iroh-dns-server) [breaking] Make http rate limit configurable (#2772) - (fe684c2)
- (iroh-net) Add StaticDiscovery to provide static info to endpoints (#2825) - (c9d1ba7)
- (iroh-net) More Quinn re-exports (#2838) - (9495c21)
- (iroh-net) Send HTTP/1.1
HOSTheader on requests to relay (#2881) - (4bfa58e) - [breaking] Introduce iroh-router crate (#2832) - (8f75005)
- Collect metrics for direct connections & add opt-in push metrics (#2805) - (86b494a)
🐛 Bug Fixes
- (ci) Better error reporting on netsim fails (#2886) - (e1aab51)
- (iroh-net) When switching to a direct path reset the mtu (#2835) - (93f7900)
- (iroh-relay) Respect
enable_stunsetting iniroh-relay::Config(#2879) - (2507e62) - (metrics) Allow external crates to encode their metrics (#2885) - (362076e)
- (portmapper) Enforce timeouts for upnp (#2877) - (00a3f88)
🚜 Refactor
- (iroh) Move protocol relevant impls into node/protocols (#2831) - (67df1c1)
- (iroh) Move ProtocolHandler impl to iroh-gossip (#2849) - (6c6827d)
- (iroh) Move blobs protocol to iroh-blobs (#2853) - (30f3e03)
- (iroh) [breaking] Remove gossip rpc types (#2834) - (a55529b)
- (iroh-net) Portmapper and network monitor are crates (#2855) - (fad3e24)
- Move iroh-gossip to external repo (#2826) - (e659405)
- Move iroh-docs to external repo (#2830) - (3e17210)
- Remove iroh-blobs and use crates.io dependency (#2829) - (d29537d)
- [breaking] Remove iroh_base::rpc (#2840) - (bfba7a4)
- Move ProtocolHandler docs to iroh-docs (#2859) - (61acd96)
📚 Documentation
🧪 Testing
- (iroh-net) Give this a longer timeout (#2857) - (ed13453)
- (iroh-net) Make dht_discovery_smoke test less flaky (#2884) - (ce8d94d)
- (netwatch) Simplify dev-deps - (029830f)
⚙️ Miscellaneous Tasks
- (ci) Identify which repository the flakes are reported for (#2824) - (b2e587d)
- (iroh-net) Fixup portmapper version - (37f620d)
- Add iroh-router to crates list (#2850) - (2d17636)
- Release - (860b90f)
- Release - (8bae5c3)
- Release - (d6c39c9)
- Release - (2073bf4)
- Upgrade 0.28 iroh-net - (13da047)
- Release - (5751521)
- Release - (5437dbb)
- Upgrade 0.28 iroh-router - (297b874)
- Update 0.28 iroh-docs, iroh-gossip, iroh-blobs - (7e80a92)
- Release - (fa926be)
- Release - (4c58bd8)
v0.27.0
⚠️ Breaking Changes
iroh-net- deprecated
iroh-net: Endpoint::connect_by_node_idis deprecated (to be removed next release)
- removed
TEST_DNS_NODE_ORIGIN
- changed
- defaults to using prod relays unless
IROH_FORCE_STAGING_RELAYSis set to a non empty value iroh_net::Endpoint::direct_addressesnow returns a stream yielding Items ofBTreeSet<DirectAddr>instead ofVec<DirectAddr>iroh-net: Endpoint::connectnow takes animpl Into<NodeAddr>instead of aNodeAddrNodeTicket::newno longer returnsResultbut always succeeds (as it already did). This matches it'sFrom<NodeAddr>impl which also never fails.
- defaults to using prod relays unless
- deprecated
⛰️ Features
- (iroh-net) Export the Ticket trait (#2765) - (e9f98a6)
- (iroh-net) [breaking] Allow using a NodeId directly in connect. (#2774) - (bd5e4fa)
- (iroh-net) Log the crate version number (#2746) - (12f74e2)
- (iroh-net) Add helper fn to enable n0 discovery publishing and resolving (#2775) - (ed903ae)
🐛 Bug Fixes
- (cfg) [breaking] Make sure we use correct relays (#2778) - (844b146)
- (ci) Add cleanup workflow to retain
generated-docs-previewfor only the last 25 PRs (#2758) - (8420674) - (ci) Netsim commenting fixes (#2766) - (97be9e3)
- (ci) Netsim does not interact with PR comments on forks (#2777) - (9902b2d)
- (ci) Make sure logs get uploaded on netsim failure (#2807) - (1436389)
- (deps) Update postcard to get rid of yanked critical-section (#2810) - (62e4bd4)
- (iroh-net) Keep the relay connection alive on read errors (#2782) - (383f1f9)
- (iroh-net) Emit the call-me-maybe.sent event in all cases (#2792) - (43f5fed)
- (iroh-net) Use
try_sendrather thansendso we dont block the local swarm discovery service (#2794) - (2d04306) - (iroh-net) [breaking] DiscoveredDirectAddrs need to update the timestamp (#2808) - (85bd8b7)
🚜 Refactor
- (iroh-base) [breaking] No Result for creating new NodeTicket (#2771) - (f536789)
- (iroh-net) Log the pkarr relay when publishing (#2770) - (d514859)
- (iroh-net) Add tracing span context to spawned tasks (#2769) - (66549bf)
- (iroh-net) Keep connection name, remove connection count (#2779) - (6b1186f)
- (iroh-net) Optimise present nodes in ActiveRelay (#2781) - (c7ac982)
- (iroh-net) Failing to bind is not a Warning log (#2815) - (f08011a)
- (iroh-net) Attach Relay URL to a connecting client span (#2817) - (a0ce00e)
- (iroh-net) No portmapper is not a warning (#2816) - (f32f3f9)
- (iroh-net) Debug logging should not be per packet set (#2818) - (c82ada5)
- Display the socket addr and relay for a
ConnectionType::Mixed(#2793) - (c349c43)
📚 Documentation
- ()* Document cargo features in docs (#2761) - (4d41a69)
- (iroh) Enable iroh_docsrs feature (#2780) - (234a856)
- (iroh-base) Clarify AddrInfoOptions a little (#2813) - (a36970a)
- (iroh-net) Add examples to discovery (#2786) - (ab3afef)
- (iroh-net) Add examples to the module docs (#2785) - (39d4bd9)
- (iroh-net) Some more example tweaking (#2811) - (af8c474)
- (iroh-net) Document cfg(test) items as well (#2819) - (a03a08e)
- (relay) Fix typos in map.rs (#2773) - (73ca58a)
🧪 Testing
⚙️ Miscellaneous Tasks
- (iroh-net) Upgrade igd-next, remove hyper 0.14 (#2804) - (5e40fe1)
- Format imports using rustfmt (#2812) - (8808a36)
- Increase version numbers and update (#2821) - (71b5903)
Deps
v0.26.0
⚠️ Breaking Changes
- changed
client::Blobs::read_atandread_at_to_bytesnow take
ReadAtLeninstead ofOption<usize>- by default
node::Node::memory&persistenthave docs disabled
- removed
node::Builder::disable_docs
- added
node::Builder::enable_docs
iroh-net- struct
DirectAddrInfonow has fieldsources, which is aHashMapofendpoint::SourcetoDuration. TheSourceis how we heard about the remote, and theDurationis how long ago we heard about it. We keep only the shortestDuration.
- struct
iroh-blobs- changed
util::local_pool::LocalPoolwill now install the tracing subscriber of the thread creating the pool, into each thread managed by the pool. Practically this should not break any code already managing their tracing subscribers either manually inside tasks or by setting a global subscriber before creating the pool. But if you really liked the behaviour of swallowing the logs on doing this it's a breaking change
- changed
⛰️ Features
- (iroh) Disable docs by default (#2748) - (eb4c4a6)
- (iroh) [breaking] Make blobs::read_at more flexible (#2756) - (33dc559)
- (iroh) Allow setting a custom
quinn::TransportConfig(#2760) - (253f4f1) - (iroh-cli) Improve ergonomics of
iroh gossip subscribeCLI cmd (#2751) - (90fd6f0) - Set derive_more to 1.0.0 (no beta!) (#2736) - (2d863a9)
🐛 Bug Fixes
- (ci) Make netsim work on forks (#2757) - (0953263)
- (examples) Make
collection-provide,hello-world-provideandrpcwork again (#2749) - (25c8305) - (iroh-blobs) Preserve tracing subscriber in the LocalPool (#2735) - (5dd8bd3)
- (iroh-blobs) Remove debugging logs & more cleanup (#2690) - (857e513)
- (iroh-net) Clear the recent pong time when pong is lost (#2743) - (8fb92f3)
🚜 Refactor
- (ci) Redo netsim CI (#2737) - (443139d)
- (iroh-net) Various logging improvements (#2744) - (2262fd5)
- (iroh-net) Remove PathState::recent_pong() (#2745) - (cafdc08)
📚 Documentation
v0.25.0
⚠️ Breaking Changes
-
iroh-gossip- removed
Gossip::update_direct_addressesUpdating the direct addresses is now handled byGossipautomatically.
- removed
-
iroh-net- removed
netcheck::Client::receive_stun_packetiroh_net::util
- added
iroh_net::endpoint::Builder::bind_addr_v4iroh_net::endpoint::Builder::bind_addr_v6
- changed
iroh_net::endpoint::Endpoint::bindnow takes no argumentsnetcheck::Clientis not longerClone.
- removed
-
iroh-blobs- removed
Store::gc_sweepStore::gc_markStore::gc_start
- added
Store::gc_runwhich starts the full gc schedule
- removed
-
iroh- removed
node::ProtocolBuilder::downloadernode::ProtocolBuilder::blobs_dbnode::Builder::bind_port
- added
node::Builder::bind_addr_v4node::Builder::bind_addr_v6node::Builder::bind_random_port
- removed
⛰️ Features
- (iroh-base) Implement
From&IntobetweenNodeAddrandNodeTicket(#2717) - (8a4bb09) - Allow to bind to a specific address (#2694) - (2e5188a)
🐛 Bug Fixes
- (ci) Fix docker builds on release & release rebuilds (#2712) - (21d75c7)
- (iroh) Handle out of bounds requests for blobs read_at (#2729) - (28cf153)
- (iroh-blobs) Unconditionally delete blobs (#2692) - (567577d)
- (iroh-net) Fix a hot-loop when the probes time out (#2699) - (874030a)
- Put
--with-relayfeature in iroh-net bench behindlocal-relayfeature flag (#2700) - (b8c0513)
🚜 Refactor
- (iroh) Remove custom impl of
SharedAbortingJoinHandle(#2715) - (098b11f) - (iroh-gossip) Make use of Endpoint::direct_addresses in iroh_gossip::net (#2731) - (9583729)
- (iroh-net) [breaking] Make netcheck::Client !Clone (#2716) - (ce2cfee)
- [breaking] Migrate to tokio's AbortOnDropHandle (#2701) - (35e9873)
📚 Documentation
- (iroh-cli) Add docs to entrypoint (#2697) - (c6e2f05)
- (iroh-cli) Udpate
doctorcommand documentation (#2710) - (93b400a) - (iroh-cli) Update
authorscommand documentation (#2702) - (2c199a0) - (iroh-cli) Update
consolecommand documentation (#2705) - (4964ee3) - (iroh-cli) Update
netcommand documentation (#2707) - (8c321a2) - (iroh-cli) Update
startcommand documentation (#2708) - (2636be8) - (iroh-cli) Update
rpccommand documentation (#2711) - (518d439) - (iroh-cli) Update
gossipcommand documentation (#2706) - (bdaeba1) - (iroh-cli) Update
tagscommand documentation (#2709) - (7510a59) - (iroh-cli) Update
blobscommand documentation (#2704) - (76b1473) - (iroh-cli) Update
docscommand documentation (#2703) - (7b6c974) - (iroh-cli) Fix typo (#2718) - (d2ecbdb)
⚙️ Miscellaneous Tasks
v0.24.0
⚠️ Breaking Changes
iroh-net- swarm discovery will no longer send consecutive repeated values
iroh::net::endpoint::Endpoint::acceptnow returnsIncominginstead ofConnecting. This allows rejecting incoming connections earlier, notify the initiating side to retry later and more. To get backConnecting, simply useIncoming::accept(). If all you did withConnectingbefore was to.awaitit, you can do the same withIncoming, too, and get back aConnection.- Removed
iroh::net::endpoint::Builder::concurrent_connections. The amount of concurrent connections is now controlled by either callingIncoming::acceptorIncoming::refuseafterEndpoint::accept.
⛰️ Features
- (bench) Add
--with-relayoption to allow testing relay throughput (#2664) - (5c09013) - (bench) Add
--metricsoption printing iroh-net library metrics (#2668) - (4f83c43) - (iroh-net) [breaking] Upgrade to Quinn 0.11 and Rustls 0.23 (#2595) - (34ec5e2)
🐛 Bug Fixes
- (iroh-blobs) Demote
warn!totrace!logs (#2689) - (6181455) - (iroh-blobs) Turn
println!intotracing::debug!(#2686) - (5bbcb60) - (iroh-blobs) Timeout based on correct
max_write_durationoption (#2688) - (2347565) - (iroh-net) Document the keylog environment variable correctly (#2655) - (c70caaf)
- (iroh-net) Magic sock
recv_data_ipv4andrecv_data_ipv6metrics numbers (#2667) - (cb1650a) - (iroh-net) Also check the last packet in
MagicSock::poll_recv(#2650) - (54ca9c9) - (iroh-net) Reduce noise in swarm discovery due to republish (#2685) - (fd56763)
- Docker CI performance & release builds (#2659) - (d567231)
🚜 Refactor
🧪 Testing
⚙️ Miscellaneous Tasks
Deps
v0.23.0
Read All about this release on our blog post!
⚠️ Breaking Changes
iroh- No more
derefofiroh::net::Clienttoiroh::client::node::Node iroh::client::node->iroh::client::netiroh::client::node::Node::shutdown->iroh::client::Client::shutdowniroh::client::blobs::BlobStatushas a new caseNotFoundiroh::client::blobs::BlobStatus::Partial: sizeis now aBaoBlobSizeinstead of au64V0andV1of theiroh_blobsstore are deprecated. Ensure data that is imported asiroh_blobs::store::fs::Store::import_flat_storeis migrated before future versions, which won't support this.client::node::Client::connection_info->client::node::Client::remote_infoclient::node::Client::connections->client::node::Client::remote_info_iter
- No more
iroh-cli--metrics-portflag on the iroh cli is now--metrics-addr, eg: specify127.0.0.1:9090instead of9090node connection-info->node remote-infonode connections->node remote-list
iroh-blobs- Modifies
Eventenum:- removes
CustomGetRequestReceived - adds
TransferProgress
- removes
send_blobnow takes anEventSender- trait
EventSenderhas been renamedCustomEventSender - the concrete (boxed) event sender is now called just
EventSender FlumeProgressSenderis nowAsyncChannelProgressSenderiroh_blobs::store::fs::Store::import_flat_storeis deprecated. Ensure all data is migrated before future versions, which won't support this.iroh_blobs::store::fs::FlatStorePathsis deprecated. Ensure all data is migrated before future versions, which won't support this.iroh-blobs::provider::transfer_collectionhas been removed.
- Modifies
iroh-netLocalSwarmDiscoveryis not longerUnwindSafeendpoint::ConnectionInfo->endpoint::RemoteInfoendpoint::ConnectionInfo::idis removed since it's internal information.endpoint::ConnectionInfo::last_alive_relayis deprecated. Use.relay_url.last_aliveendpoint::Endpoint::connection_info->endpoint::Endpoint::remote_infoendpoint::Endpoint::connection_infos->endpoint::Endpoint::remote_info_iter
⛰️ Features
- (ci) Notify discord of successfull flaky runs (#2623) - (94cee34)
- (iroh) [breaking] Blob batch PR, attempt 3 (#2545) - (9a55122)
- (iroh-blobs) Add outboard creation progress to the mem store (#2625) - (47c8528)
- (iroh-net) Upgrade to new
swarm-discoveryapi (#2605) - (a9c96a9) - (iroh-net) Add PkarrNodeDiscovery to iroh-net (#2628) - (9facd5a)
- (iroh-net) Allow customizing republish delay for the pkarr publisher (#2637) - (134dbee)
- Allow custom blob providing event handling (#2583) - (bcc87a2)
🐛 Bug Fixes
- (ci) Report flaky outupt only on success and failure (#2627) - (8b6245e)
- (iroh-blobs) Do not skip empty partial blobs in migration (#2604) - (1c86dac)
- (iroh-cli)
cli_provide_addressesto use the correctiroh statuscommand (#2649) - (717b3cd) - (iroh-gossip) Clarify docs and semantics of gossip joined event (#2597) - (5d98a5c)
- (tests) For DNS discovery only use a local DNS server (#2598) - (5eee643)
🚜 Refactor
- (iroh) [breaking] Convert node to net module (#2642) - (6354e04)
- (iroh,iroh-net) [breaking] Prefer
remotetoconnectionin api (#2610) - (9d06888) - (iroh-blobs) Use oneshot channel from oneshot crate (#2624) - (2e01d47)
- (iroh-blobs) [breaking] Expand docs (#2638) - (217ac06)
- (iroh-blobs, iroh) [breaking] Deprecate flat stores (#2629) - (168fa5b)
- (iroh-bytes) [breaking] Remove flume dependency (#2622) - (e9c5088)
- (iroh-cli) [breaking] Metrics-addr cli arg, metrics off by default (#2631) - (4df1c91)
- (iroh-net) [breaking] Remove async channel (#2620) - (74a527b)
- (iroh-net) [breaking] Rename the local-swarm-discovery feature to discovery-local-network (#2634) - (d1578ee)
- (iroh-net) Move all timeouts into one file (#2641) - (bb808b4)
- (iroh-net,iroh) Rename to remote_info_iter, fixup some docs (#2645) - (b17bf1d)
- Normalize feature names (#2633) - (d02c21f)
📚 Documentation
- (iroh-cli) Fix help text for incomplete blobs (#2615) - (ceb94da)
- Also list
iroh-gossipas a re-export (#2606) - (3b7881c)
🧪 Testing
- (iroh) Reduce entry amount in
sync_gossip_bulk(#2608) - (a2d2ec6) - (iroh) Re-enable some flaky tests to see if they are still flaky (#2458) - (b8f2b3f)
- (iroh-cli) Replace
cli_provide_one_file_largewith a faster test (#2607) - (7494566)
⚙️ Miscellaneous Tasks
- (ci) Use nextests groups to isolate some tests (#2617) - (a5072c3)
- Fix deps issues (#2643) - (83f6fcc)
Ref
v0.22.0 - Clean up on aisle five
⚠️ Breaking Changes
-
iroh-gossipiroh_gossip::dispatcheris removed with everything that was in it. Use the new API fromiroh_gossip::net::Gossipinstead (see below).iroh_gossip::net::Gossipmethods changed:- changed:
joinnow returns aGossipTopic - removed:
broadcast,broadcast_neighbors,subscribe,subscribe_all,quit.- for
subscribeusejoininstead, which returns aGossipTopic - for
broadcastandbroadcast_neighborsuse the respective methods onGossipTopic. quitis obsolete now, the topic will be quitted once allGossipTopichandles are dropped.subscribe_allis no longer available
- for
- changed:
iroh_gossip::net::JoinTopicFutis removed (it is now obsolete)
-
iroh-net- Refactored the module structure for users of the
iroh-relayfeature in iroh-net- moved
iroh_net::relay::iroh_relay::*toiroh_net::relay::server::*iroh_net::relay::ClientConnHandlertoiroh_net::relay::server::ClientConnHandleriroh_net::relay::Metricstoiroh_net::relay::server::Metricsiroh_net::relay::MaybeTlsStreamServertoiroh_net::relay::server::MaybeTlsStreamServeriroh_net::relay::http::Clienttoiroh_net::relay::HttpClientiroh_net::relay::http::ClientBuildertoiroh_net::relay::HttpClientBuilderiroh_net::relay::http::ClientReceivertoiroh_net::relay::HttpClientReceiveriroh_net::relay::http::ClientErrortoiroh_net::relay::HttpClientErroriroh_net::relay::http::TlsConfigtoiroh_net::relay::server::TlsConfig
- removed
iroh_net::relay::http::ServerHandle. The server can now be aborted via itstask_handle()function or by dropping it. - renamed
iroh_net::relay::RelayClienttoiroh_net::relay::RelayConn - renamed and moved
iroh_net::relay::Servertoiroh_net::relay::server::ServerActorTask - unexposed
iroh_net::relay::http::{Server, ServerBuilder}. Useiroh_net::relay::server::Serverinstead.
- moved
- Properly feature-gate the iroh server implementation behind
#[cfg(feature = "iroh-relay")]by feature-gating the wholeiroh_net::relay::servermodule.
- Refactored the module structure for users of the
-
iroh- Unknown fields in the configuration file will now cause an error.
- Configuring the GC Policy in the configuration file has changed.
- Example:
[gc_policy] enabled = true interval = 1234
⛰️ Features
- (iroh) Improve documentation and canonicalize docs in
iroh::client(#2553) - (d937234) - Override to staging relays (#2551) - (ed4420b)
🐛 Bug Fixes
- (iroh) Do not set low max streams in builder (#2593) - (215cd1d)
- (iroh-blobs) Use async_channel instead of flume for local_pool (#2533) - (9052905)
- (iroh-blobs) Do not hit the network when downloading blobs which are complete (#2586) - (0784403)
- (iroh-cli) [breaking] Improve cli and configuration file (#2532) - (0fc3794)
- (iroh-gossip) Connection loop misuses
tokio::select!leading to read errors (#2572) - (32bb0f3) - (iroh-net) Fix a compiler error with newer
derive_moreversions (#2578) - (3f3fec5) - (iroh-net) Make a single direct address in NodeAddr instant (#2580) - (f5b3918)
- Docker image builds (#2530) - (5c60a52)
- Disable docs preview on forks (#2558) - (741b42f)
- Force CI to use staging relays (#2560) - (ffeb1a9)
- Pin derive_more to avoid sudden breakages (#2584) - (1ba033c)
🚜 Refactor
- (iroh) Remove flume from iroh gossip (#2542) - (2964569)
- (iroh) Remove flume from iroh-cli and iroh (#2543) - (347d45c)
- (iroh-docs) Replace flume with async_channel in docs (#2540) - (e7a7552)
- (iroh-net) Replace flume in iroh-net with async_channel (#2539) - (22314a1)
- (iroh-net) Move more server code behind
iroh-relayfeature flag (#2566) - (1dda2f7) - (iroh-net) [breaking] Improve server modules structure & rename structs (#2568) - (29d2e82)
- (iroh-net) Switch to (now stable)
IpAddr::to_canonical(#2569) - (7fdd6cb)
📚 Documentation
- (iroh) Add documentations and examples for the
iroh::node::Client(#2582) - (55836fa) - (iroh-cli) Point to the configuration refernce from each iroh subcommand (#2571) - (8e4e586)
- Fix typos discovered by codespell (#2534) - (8435a45)
- Update description in cargo.toml - (7259ab5)
🧪 Testing
- (iroh-blobs) Comment out ignored test (that is not a flaky test) (#2559) - (15f36b3)
- (iroh-cli) Update to new api (#2549) - (f97c1c0)
- (iroh-cli) Remove flaky mark from 5 tests and improve logs (#2562) - (14fccee)
- (iroh-cli) Reduce flakyness of cli_provide_file_resume (#2563) - (f085e63)
- (iroh-cli) Make cli resumption tests not flaky (#2564) - (9e6b1e0)
- (iroh-net) Increase timeout for local swarm discovery test (#2574) - (605a85d)
⚙️ Miscellaneous Tasks
- (iroh-net) Remove need for relay info in best_addr (#2579) - (d662bfc)
- Fix clippy warnings (#2550) - (73de21b)
- Generate docs for each PR (#2547) - (0812333)