mycelium: 0.4.5 -> 0.5.0

Changed
 - Connection identifier is now included in the error log if we can't forward a
 - seqno request.
 - Garbage collection time for source entries has been increased from 5 to 30 minutes
 - for now.
 - The router implementation has been changed to use regular locks instead of an
 - always readable concurrency primitive for all but the actual routing table. This
 - should reduce the memory consumption a bit.
 - Public key and shared secret for a destination are now saved on the router, instead
 - of maintaining a separate mapping for them. This slightly reduces memory consumption
 - of the router, and ensures stale data is properly cleaned up when all routes to
 - a subnet are removed.
 - Hello packets now set the interval in which the next Hello will be sent properly
 - in centiseconds.
 - IHU packets now set the interval properly in centiseconds.
 - IHU packets now set an RX cost. For now this is the link cost, in the future
 - this will be set properly.
 - Route expiration time is now calculated from the interval received in updates.
 - Ip address derivation from public keys now uses the blake3 hash algorithm.

Fixed
 - Don't try to forward seqno requests to a peer if we know its connection is dead.
This commit is contained in:
Florian Klink 2024-04-04 12:43:55 +03:00
parent 23ff7d9dc4
commit 1fb00f1396
3 changed files with 21 additions and 46 deletions

View File

@ -1,6 +1,6 @@
import ../make-test-python.nix ({ lib, ... }: let
peer1-ip = "531:c350:28c1:dfde:ea6d:77d1:a60b:7209";
peer2-ip = "49f:3942:3a55:d100:4c78:c558:c4f:695b";
peer1-ip = "538:f40f:1c51:9bd9:9569:d3f6:d0a1:b2df";
peer2-ip = "5b6:6776:fee0:c1f3:db00:b6a8:d013:d38f";
in
{
name = "mycelium";

View File

@ -146,9 +146,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "axum"
version = "0.7.4"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
dependencies = [
"async-trait",
"axum-core",
@ -170,7 +170,7 @@ dependencies = [
"serde_json",
"serde_path_to_error",
"serde_urlencoded",
"sync_wrapper",
"sync_wrapper 1.0.0",
"tokio",
"tower",
"tower-layer",
@ -192,7 +192,7 @@ dependencies = [
"mime",
"pin-project-lite",
"rustversion",
"sync_wrapper",
"sync_wrapper 0.1.2",
"tower-layer",
"tower-service",
]
@ -236,15 +236,6 @@ version = "2.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
[[package]]
name = "blake2"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
dependencies = [
"digest",
]
[[package]]
name = "blake3"
version = "1.5.1"
@ -258,15 +249,6 @@ dependencies = [
"constant_time_eq",
]
[[package]]
name = "block-buffer"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
"generic-array",
]
[[package]]
name = "bumpalo"
version = "3.14.0"
@ -469,17 +451,6 @@ dependencies = [
"powerfmt",
]
[[package]]
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"crypto-common",
"subtle",
]
[[package]]
name = "encoding_rs"
version = "0.8.33"
@ -520,9 +491,9 @@ dependencies = [
[[package]]
name = "etherparse"
version = "0.14.2"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24890603eb4b43aa788f02261ce21714449033e3e2ab93692f0ab18480c3c9b1"
checksum = "095ab548cf452be5813424558a18af88f0a620d0f4a3d8793aa09311a3b6fa5f"
dependencies = [
"arrayvec",
]
@ -1074,16 +1045,14 @@ dependencies = [
[[package]]
name = "mycelium"
version = "0.4.5"
version = "0.5.0"
dependencies = [
"aes-gcm",
"axum",
"base64 0.22.0",
"blake2",
"blake3",
"bytes",
"clap",
"digest",
"etherparse",
"faster-hex",
"futures",
@ -1699,9 +1668,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.114"
version = "1.0.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
dependencies = [
"itoa",
"ryu",
@ -1834,6 +1803,12 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
[[package]]
name = "sync_wrapper"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "384595c11a4e2969895cad5a8c4029115f5ab956a9e5ef4de79d11a426e5f20c"
[[package]]
name = "system-configuration"
version = "0.5.1"
@ -1929,9 +1904,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.36.0"
version = "1.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
dependencies = [
"backtrace",
"bytes",

View File

@ -7,13 +7,13 @@
rustPlatform.buildRustPackage rec {
pname = "mycelium";
version = "0.4.5";
version = "0.5.0";
src = fetchFromGitHub {
owner = "threefoldtech";
repo = "mycelium";
rev = "v${version}";
hash = "sha256-AJA1yd7P9zHOIdSOR2bAHgL5NyoyqzgNIEs8ObgD4Mo=";
hash = "sha256-K82LHVXbSMIJQlQ/qUpdCBVlAEZWyMMG2eUt2FzNwRE=";
};
cargoLock = {