Skip to content

Commit c49d3e7

Browse files
authored
Merge pull request #896 from hyperware-ai/release-candidate
v1.8.2-rc
2 parents 27b93ce + 6eebdc0 commit c49d3e7

5 files changed

Lines changed: 205 additions & 132 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "hyperdrive_lib"
33
authors = ["Sybil Technologies AG"]
4-
version = "1.8.1"
4+
version = "1.8.2"
55
edition = "2021"
66
description = "A general-purpose sovereign cloud computing platform"
77
homepage = "https://hyperware.ai"

hyperdrive/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "hyperdrive"
33
authors = ["Sybil Technologies AG"]
4-
version = "1.8.1"
4+
version = "1.8.2"
55
edition = "2021"
66
description = "A general-purpose sovereign cloud computing platform"
77
homepage = "https://hyperware.ai"

hyperdrive/src/main.rs

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,22 +1151,34 @@ async fn login_with_password(
11511151
},
11521152
};
11531153

1154-
let provider = Arc::new(register::connect_to_provider_from_config(&eth_provider_config).await);
1155-
1156-
register::assign_routing(
1157-
&mut our,
1158-
provider,
1159-
match ws_networking.0 {
1160-
Some(listener) => (listener.local_addr().unwrap().port(), ws_networking.1),
1161-
None => (0, ws_networking.1),
1162-
},
1163-
match tcp_networking.0 {
1164-
Some(listener) => (listener.local_addr().unwrap().port(), tcp_networking.1),
1165-
None => (0, tcp_networking.1),
1166-
},
1167-
)
1168-
.await
1169-
.expect("information used to boot does not match information onchain");
1154+
let providers = register::connect_to_providers(&eth_provider_config).await;
1155+
1156+
let ws_port = match ws_networking.0 {
1157+
Some(listener) => (listener.local_addr().unwrap().port(), ws_networking.1),
1158+
None => (0, ws_networking.1),
1159+
};
1160+
let tcp_port = match tcp_networking.0 {
1161+
Some(listener) => (listener.local_addr().unwrap().port(), tcp_networking.1),
1162+
None => (0, tcp_networking.1),
1163+
};
1164+
1165+
// Try each provider until one succeeds
1166+
let mut last_error = None;
1167+
for provider in providers.iter() {
1168+
match register::assign_routing(&mut our, provider, ws_port, tcp_port).await {
1169+
Ok(()) => {
1170+
last_error = None;
1171+
break;
1172+
}
1173+
Err(e) => {
1174+
last_error = Some(e);
1175+
continue;
1176+
}
1177+
}
1178+
}
1179+
if let Some(e) = last_error {
1180+
panic!("information used to boot does not match information onchain: {e}");
1181+
}
11701182

11711183
tokio::fs::write(home_directory_path.join(".keys"), &disk_keyfile)
11721184
.await

0 commit comments

Comments
 (0)