Skip to content

Commit e2404b9

Browse files
committed
Update to latest iroh
- rand update - .initialized().await removal
1 parent c8d5ae5 commit e2404b9

File tree

17 files changed

+107
-95
lines changed

17 files changed

+107
-95
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ tokio = { version = "1.43.0", features = ["full"] }
2727
tokio-util = { version = "0.7.13", features = ["full"] }
2828
tracing = "0.1.41"
2929
iroh-io = "0.6.1"
30-
rand = "0.8.5"
30+
rand = "0.9.2"
3131
hex = "0.4.3"
3232
serde = "1.0.217"
3333
postcard = { version = "1.1.1", features = ["experimental-derive", "use-std"] }

README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Here is a basic example of how to set up `iroh-blobs` with `iroh`:
3434

3535
```rust,no_run
3636
use iroh::{protocol::Router, Endpoint};
37-
use iroh_blobs::{store::mem::MemStore, BlobsProtocol};
37+
use iroh_blobs::{store::mem::MemStore, BlobsProtocol, ticket::BlobTicket};
3838
3939
#[tokio::main]
4040
async fn main() -> anyhow::Result<()> {
@@ -44,17 +44,18 @@ async fn main() -> anyhow::Result<()> {
4444
4545
// create a protocol handler using an in-memory blob store.
4646
let store = MemStore::new();
47-
let blobs = BlobsProtocol::new(&store, None);
47+
let tag = store.add_slice(b"Hello world").await?;
48+
49+
let _ = endpoint.online().await;
50+
let addr = endpoint.node_addr();
51+
let ticket = BlobTicket::new(addr, tag.hash, tag.format);
4852
4953
// build the router
54+
let blobs = BlobsProtocol::new(&store, None);
5055
let router = Router::builder(endpoint)
51-
.accept(iroh_blobs::ALPN, blobs.clone())
56+
.accept(iroh_blobs::ALPN, blobs)
5257
.spawn();
5358
54-
let tag = blobs.add_slice(b"Hello world").await?;
55-
let _ = endpoint.online().await;
56-
let addr = endpoint.node_addr().initialized().await;
57-
let ticket = BlobTicket::new(addr, tag.hash, tag.format);
5859
println!("We are now serving {}", ticket);
5960
6061
// wait for control-c

examples/common/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@ pub fn get_or_generate_secret_key() -> Result<SecretKey> {
99
use std::{env, str::FromStr};
1010

1111
use anyhow::Context;
12-
use rand::thread_rng;
1312
if let Ok(secret) = env::var("IROH_SECRET") {
1413
// Parse the secret key from string
1514
SecretKey::from_str(&secret).context("Invalid secret key format")
1615
} else {
1716
// Generate a new random key
18-
let secret_key = SecretKey::generate(&mut thread_rng());
17+
let secret_key = SecretKey::generate(&mut rand::rng());
1918
println!(
2019
"Generated new secret key: {}",
2120
hex::encode(secret_key.to_bytes())

examples/limit.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use std::{
2121
use anyhow::Result;
2222
use clap::Parser;
2323
use common::setup_logging;
24-
use iroh::{protocol::Router, NodeAddr, NodeId, SecretKey, Watcher};
24+
use iroh::{protocol::Router, NodeAddr, NodeId, SecretKey};
2525
use iroh_blobs::{
2626
provider::events::{
2727
AbortReason, ConnectMode, EventMask, EventSender, ProviderMessage, RequestMode,
@@ -31,7 +31,7 @@ use iroh_blobs::{
3131
ticket::BlobTicket,
3232
BlobFormat, BlobsProtocol, Hash,
3333
};
34-
use rand::thread_rng;
34+
use rand::rng;
3535

3636
use crate::common::get_or_generate_secret_key;
3737

@@ -255,7 +255,7 @@ async fn main() -> Result<()> {
255255
let mut allowed_nodes = allowed_nodes.into_iter().collect::<HashSet<_>>();
256256
if secrets > 0 {
257257
println!("Generating {secrets} new secret keys for allowed nodes:");
258-
let mut rand = thread_rng();
258+
let mut rand = rng();
259259
for _ in 0..secrets {
260260
let secret = SecretKey::generate(&mut rand);
261261
let public = secret.public();
@@ -357,8 +357,8 @@ async fn setup(store: MemStore, events: EventSender) -> Result<(Router, NodeAddr
357357
.secret_key(secret)
358358
.bind()
359359
.await?;
360-
let _ = endpoint.home_relay().initialized().await;
361-
let addr = endpoint.node_addr().initialized().await;
360+
endpoint.online().await;
361+
let addr = endpoint.node_addr();
362362
let blobs = BlobsProtocol::new(&store, Some(events));
363363
let router = Router::builder(endpoint)
364364
.accept(iroh_blobs::ALPN, blobs)

examples/mdns-discovery.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ async fn accept(path: &Path) -> Result<()> {
8787
}
8888

8989
async fn connect(node_id: PublicKey, hash: Hash, out: Option<PathBuf>) -> Result<()> {
90-
let key = SecretKey::generate(rand::rngs::OsRng);
90+
let key = SecretKey::generate(&mut rand::rng());
9191
// todo: disable discovery publishing once https://github.com/n0-computer/iroh/issues/3401 is implemented
9292
let discovery = MdnsDiscovery::builder();
9393

examples/random_store.rs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::{env, path::PathBuf, str::FromStr};
22

33
use anyhow::{Context, Result};
44
use clap::{Parser, Subcommand};
5-
use iroh::{SecretKey, Watcher};
5+
use iroh::{discovery::static_provider::StaticProvider, SecretKey};
66
use iroh_base::ticket::NodeTicket;
77
use iroh_blobs::{
88
api::downloader::Shuffled,
@@ -93,7 +93,7 @@ pub fn get_or_generate_secret_key() -> Result<SecretKey> {
9393
SecretKey::from_str(&secret).context("Invalid secret key format")
9494
} else {
9595
// Generate a new random key
96-
let secret_key = SecretKey::generate(&mut rand::thread_rng());
96+
let secret_key = SecretKey::generate(&mut rand::rng());
9797
let secret_key_str = hex::encode(secret_key.to_bytes());
9898
println!("Generated new random secret key");
9999
println!("To reuse this key, set the IROH_SECRET={secret_key_str}");
@@ -204,20 +204,20 @@ async fn provide(args: ProvideArgs) -> anyhow::Result<()> {
204204
println!("Using store at: {}", path.display());
205205
let mut rng = match args.common.seed {
206206
Some(seed) => StdRng::seed_from_u64(seed),
207-
None => StdRng::from_entropy(),
207+
None => StdRng::from_rng(&mut rand::rng()),
208208
};
209209
let blobs = create_random_blobs(
210210
&store,
211211
args.num_blobs,
212-
|_, rand| rand.gen_range(1..=args.blob_size),
212+
|_, rand| rand.random_range(1..=args.blob_size),
213213
&mut rng,
214214
)
215215
.await?;
216216
let hs = add_hash_sequences(
217217
&store,
218218
&blobs,
219219
args.hash_seqs,
220-
|_, rand| rand.gen_range(1..=args.hash_seq_size),
220+
|_, rand| rand.random_range(1..=args.hash_seq_size),
221221
&mut rng,
222222
)
223223
.await?;
@@ -242,7 +242,7 @@ async fn provide(args: ProvideArgs) -> anyhow::Result<()> {
242242
let router = iroh::protocol::Router::builder(endpoint.clone())
243243
.accept(iroh_blobs::ALPN, blobs)
244244
.spawn();
245-
let addr = router.endpoint().node_addr().initialized().await;
245+
let addr = router.endpoint().node_addr();
246246
let ticket = NodeTicket::from(addr.clone());
247247
println!("Node address: {addr:?}");
248248
println!("ticket:\n{ticket}");
@@ -265,10 +265,14 @@ async fn request(args: RequestArgs) -> anyhow::Result<()> {
265265
.unwrap_or_else(|| tempdir.as_ref().unwrap().path().to_path_buf());
266266
let store = FsStore::load(&path).await?;
267267
println!("Using store at: {}", path.display());
268-
let endpoint = iroh::Endpoint::builder().bind().await?;
268+
let sp = StaticProvider::new();
269+
let endpoint = iroh::Endpoint::builder()
270+
.discovery(sp.clone())
271+
.bind()
272+
.await?;
269273
let downloader = store.downloader(&endpoint);
270274
for ticket in &args.nodes {
271-
endpoint.add_node_addr(ticket.node_addr().clone())?;
275+
sp.add_node_info(ticket.node_addr().clone());
272276
}
273277
let nodes = args
274278
.nodes

examples/transfer-collection.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
use std::collections::HashMap;
99

1010
use anyhow::{Context, Result};
11-
use iroh::{
12-
discovery::static_provider::StaticProvider, protocol::Router, Endpoint, NodeAddr, Watcher,
13-
};
11+
use iroh::{discovery::static_provider::StaticProvider, protocol::Router, Endpoint, NodeAddr};
1412
use iroh_blobs::{
1513
api::{downloader::Shuffled, Store, TempTag},
1614
format::collection::Collection,
@@ -54,7 +52,8 @@ impl Node {
5452
// get address of this node. Has the side effect of waiting for the node
5553
// to be online & ready to accept connections
5654
async fn node_addr(&self) -> Result<NodeAddr> {
57-
let addr = self.router.endpoint().node_addr().initialized().await;
55+
self.router.endpoint().online().await;
56+
let addr = self.router.endpoint().node_addr();
5857
Ok(addr)
5958
}
6059

proptest-regressions/store/fs/util/entity_manager.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
# It is recommended to check this file in to source control so that
66
# everyone who runs the test benefits from these saved cases.
77
cc 0f2ebc49ab2f84e112f08407bb94654fbcb1f19050a4a8a6196383557696438a # shrinks to input = _TestCountersManagerProptestFsArgs { entries: [(15313427648878534792, 264348813928009031854006459208395772047), (1642534478798447378, 15989109311941500072752977306696275871), (8755041673862065815, 172763711808688570294350362332402629716), (4993597758667891804, 114145440157220458287429360639759690928), (15031383154962489250, 63217081714858286463391060323168548783), (17668469631267503333, 11878544422669770587175118199598836678), (10507570291819955314, 126584081645379643144412921692654648228), (3979008599365278329, 283717221942996985486273080647433218905), (8316838360288996639, 334043288511621783152802090833905919408), (15673798930962474157, 77551315511802713260542200115027244708), (12058791254144360414, 56638044274259821850511200885092637649), (8191628769638031337, 314181956273420400069887649110740549194), (6290369460137232066, 255779791286732775990301011955519176773), (11919824746661852269, 319400891587146831511371932480749645441), (12491631698789073154, 271279849791970841069522263758329847554), (53891048909263304, 12061234604041487609497959407391945555), (9486366498650667097, 311383186592430597410801882015456718030), (15696332331789302593, 306911490707714340526403119780178604150), (8699088947997536151, 312272624973367009520183311568498652066), (1144772544750976199, 200591877747619565555594857038887015), (5907208586200645081, 299942008952473970881666769409865744975), (3384528743842518913, 26230956866762934113564101494944411446), (13877357832690956494, 229457597607752760006918374695475345151), (2965687966026226090, 306489188264741716662410004273408761623), (13624286905717143613, 232801392956394366686194314010536008033), (3622356130274722018, 162030840677521022192355139208505458492), (17807768575470996347, 264107246314713159406963697924105744409), (5103434150074147746, 331686166459964582006209321975587627262), (5962771466034321974, 300961804728115777587520888809168362574), (2930645694242691907, 127752709774252686733969795258447263979), (16197574560597474644, 245410120683069493317132088266217906749), (12478835478062365617, 103838791113879912161511798836229961653), (5503595333662805357, 92368472243854403026472376408708548349), (18122734335129614364, 288955542597300001147753560885976966029), (12688080215989274550, 85237436689682348751672119832134138932), (4148468277722853958, 297778117327421209654837771300216669574), (8749445804640085302, 79595866493078234154562014325793780126), (12442730869682574563, 196176786402808588883611974143577417817), (6110644747049355904, 26592587989877021920275416199052685135), (5851164380497779369, 158876888501825038083692899057819261957), (9497384378514985275, 15279835675313542048650599472403150097), (10661092311826161857, 250089949043892591422587928179995867509), (10046856000675345423, 231369150063141386398059701278066296663)] }
8+
cc 76888f93675aca856046821142e0f8dd6171ecbca2b2fb2612e2ccf8fb642b67 # shrinks to input = _TestCountersManagerProptestFsArgs { entries: [(4306300120905349883, 44028232064888275756989554345798606606), (13419562989696853297, 297225061196384743010175600480992461777), (4600545388725048575, 319024777944692442173521074338932622027), (11924469201417769946, 290126334103578499810346516670302802842), (2150076364877215359, 213957508179788124392023233632127334025), (2513497990495955776, 7425952384271563468605443743299630055), (14784519504379667574, 209102176380410663068514976101053847121), (3589018664409806533, 143539073128281654988615675279132949539), (12163255676316221910, 68261431317828245529088264283730310447), (15953238975034584216, 120566915371382433441278003421157478859), (6293912069208757821, 54376221216199661139416453798278484358), (18408187014091379100, 160227239986709222921681152272167766516), (18224691851384849998, 230951397761410506492316028434133464542), (17218108759165771012, 230831401271946284847544140042531898300), (15156861699203125197, 274419864858876512298091294679889505416), (13197866550741263112, 317569618673855709115791823801131083319), (5457536710317675425, 264100465594513117047187960359952352601), (6419381816113193473, 97830434597410923324208428511886405696), (5509774606527762921, 51377792339839665748346223023626770993), (3302884055341784375, 260024947302198645578544387819129813215), (7918740211035003255, 281378863798916751001154282897883115117), (2107923747770684554, 4222310695795814822585776810386837522), (1988849030739458584, 97044202427348897203209230721452399078), (17000851872752693509, 154967569583821344066124364203881263442), (7204118357407989275, 293489743217018103289756063378018736213), (8379490247240411923, 91291993991616380545421710143276496062), (6067846780114877285, 117378294706679402333724324394932467070), (6559069473214523762, 330533491611532325905048043451453362184), (1066716766275783661, 14900329515024496203681878322771717089), (3969544049792556621, 299925942970250984690757497097936404520), (1871651009149288279, 269532663769476813929854896620535419927), (9885923542173402939, 332347180744841318697161540487151553089), (8743551960605987234, 82895354018256482956918848969653357161), (18444906840677790884, 140951189435890586485485914583535891710), (13186290687428042898, 156781959554744750775008814037900689629), (11253344694094324994, 173003087909699540403477415680185472166), (15359595929118467798, 334133929399407497923349560480857143925), (450753775453578376, 185062409187456936422223327885008555109), (5812669297982828223, 304450764862712727874277633964000192257), (5446431204912329700, 63591795618582560687940570634859474113), (12639950240321649272, 229465965587199764990249271930115998317), (8666241046976392242, 127169189810538544860066577390902103071), (15875344269296451901, 59314152116324788008302123296358029667), (17554612189790211905, 271354287586940637417955997246049015908), (2654666284440384247, 236192749343056755001648024964710799784), (3653085434641832523, 222611620216912476618464093834705618103), (2117280733558696133, 160273208193736809842040581629127362879), (15052687776534295171, 145937384428000340885721647247111254565), (14037243134892329831, 48648195516567212103580801887048711483), (9467080097152043608, 266945396762492281384357764614500138375), (2706297963598729254, 301505662334146630272416432816290497813), (7293916663622670946, 238683745638275436602208159421396156156), (9244966065396610028, 33307016963739390689548576588029894837), (1752320522681001931, 67331614351445449534791948958610485134), (13095820849418318043, 167220720368084276476264354546008346754), (2689852485877961108, 295988764749889891843145129746265206397), (16677044930197861079, 238123490797857333537723337779861037465), (1921976638111110551, 198905043115016585827638257647548833710), (78362912300221566, 97081461393166374265589962390002181072), (3959569947932321574, 224306094090967444142819090846108416832), (11193248764198058671, 209017727259932159026175830711818202266), (6959892815010617835, 209133472960436703368896187256879102139), (10121904169365490638, 120711360828413383714152810706442997143), (15460955954420808897, 303801388017089859688481259123309944609)] }

0 commit comments

Comments
 (0)