From c95f783153f8454088c7b41f5d63b9b133776dc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Moreau?= <cem.moreau@gmail.com>
Date: Tue, 11 Mar 2025 13:35:14 +0100
Subject: [PATCH] Resolve "Add RPC method to list peers"
 (nodes/rust/duniter-v2s!316)

* fix: Docker config + documentation

* Revert "review: test code, not dead code"

This reverts commit 922df964187d8aeb5ed60787247b4ff1b9dcab65.

* review: test code, not dead code

* review: iodiomatic usage of stream

* review: add --public-endpoints option

* review: spawn_handle + BoundedVec

* fix: metadata.scale

* fix: warnings

* fix: node was no more starting

* clippy (again)

* clippy

* feat(#97): add RPC endpoint + gossip protocol for peerings
---
 Cargo.lock                                    | 2134 +++++++++--------
 Cargo.toml                                    |    5 +
 docker/README.md                              |    3 +
 docker/docker-entrypoint                      |   15 +
 node/Cargo.toml                               |   13 +-
 node/src/cli.rs                               |   32 +
 node/src/command.rs                           |    5 +-
 node/src/endpoint_gossip/handler.rs           |  267 +++
 node/src/endpoint_gossip/mod.rs               |  106 +
 node/src/endpoint_gossip/rpc/api.rs           |   38 +
 node/src/endpoint_gossip/rpc/data.rs          |    9 +
 node/src/endpoint_gossip/rpc/mod.rs           |   43 +
 node/src/endpoint_gossip/rpc/state.rs         |   77 +
 node/src/endpoint_gossip/rpc/tests.rs         |   64 +
 node/src/endpoint_gossip/tests.rs             |  350 +++
 node/src/endpoint_gossip/types/mod.rs         |    1 +
 .../types/validation_result.rs                |   39 +
 node/src/lib.rs                               |    1 +
 node/src/main.rs                              |    1 +
 node/src/rpc.rs                               |   17 +-
 node/src/service.rs                           |  232 +-
 21 files changed, 2368 insertions(+), 1084 deletions(-)
 create mode 100644 node/src/endpoint_gossip/handler.rs
 create mode 100644 node/src/endpoint_gossip/mod.rs
 create mode 100644 node/src/endpoint_gossip/rpc/api.rs
 create mode 100644 node/src/endpoint_gossip/rpc/data.rs
 create mode 100644 node/src/endpoint_gossip/rpc/mod.rs
 create mode 100644 node/src/endpoint_gossip/rpc/state.rs
 create mode 100644 node/src/endpoint_gossip/rpc/tests.rs
 create mode 100644 node/src/endpoint_gossip/tests.rs
 create mode 100644 node/src/endpoint_gossip/types/mod.rs
 create mode 100644 node/src/endpoint_gossip/types/validation_result.rs

diff --git a/Cargo.lock b/Cargo.lock
index 6c9ecc52c..be8a37afd 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -95,9 +95,9 @@ dependencies = [
 
 [[package]]
 name = "allocator-api2"
-version = "0.2.21"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
+checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9"
 
 [[package]]
 name = "alloy-primitives"
@@ -121,9 +121,9 @@ dependencies = [
 
 [[package]]
 name = "alloy-rlp"
-version = "0.3.11"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6"
+checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f"
 dependencies = [
  "arrayvec 0.7.6",
  "bytes",
@@ -141,7 +141,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
  "syn-solidity",
  "tiny-keccak",
 ]
@@ -214,20 +214,19 @@ dependencies = [
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.7"
+version = "3.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e"
+checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
 dependencies = [
  "anstyle",
- "once_cell",
  "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.95"
+version = "1.0.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
+checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
 
 [[package]]
 name = "approx"
@@ -249,7 +248,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -357,7 +356,7 @@ dependencies = [
  "ark-std 0.5.0",
  "educe",
  "fnv",
- "hashbrown 0.15.2",
+ "hashbrown 0.15.1",
  "itertools 0.13.0",
  "num-bigint",
  "num-integer",
@@ -500,7 +499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60"
 dependencies = [
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -538,7 +537,7 @@ dependencies = [
  "num-traits 0.2.19",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -579,7 +578,7 @@ dependencies = [
  "ark-std 0.5.0",
  "educe",
  "fnv",
- "hashbrown 0.15.2",
+ "hashbrown 0.15.1",
 ]
 
 [[package]]
@@ -665,7 +664,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -739,6 +738,12 @@ version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
 
+[[package]]
+name = "ascii"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e"
+
 [[package]]
 name = "asn1-rs"
 version = "0.5.2"
@@ -791,7 +796,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
  "synstructure 0.13.1",
 ]
 
@@ -814,7 +819,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -826,7 +831,7 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 [[package]]
 name = "asset-test-utils"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-pallet-parachain-system",
  "cumulus-pallet-xcmp-queue",
@@ -855,7 +860,7 @@ dependencies = [
 [[package]]
 name = "assets-common"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "frame-support",
@@ -935,7 +940,7 @@ dependencies = [
  "futures-lite",
  "parking",
  "polling",
- "rustix 0.38.43",
+ "rustix 0.38.40",
  "slab",
  "tracing",
  "windows-sys 0.59.0",
@@ -947,7 +952,7 @@ version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
 dependencies = [
- "event-listener 5.4.0",
+ "event-listener 5.3.1",
  "event-listener-strategy",
  "pin-project-lite",
 ]
@@ -976,9 +981,9 @@ dependencies = [
  "async-task",
  "blocking",
  "cfg-if",
- "event-listener 5.4.0",
+ "event-listener 5.3.1",
  "futures-lite",
- "rustix 0.38.43",
+ "rustix 0.38.40",
  "tracing",
 ]
 
@@ -994,7 +999,7 @@ dependencies = [
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.43",
+ "rustix 0.38.40",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.59.0",
@@ -1008,13 +1013,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
-version = "0.1.85"
+version = "0.1.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056"
+checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1055,13 +1060,13 @@ dependencies = [
 
 [[package]]
 name = "auto_impl"
-version = "1.2.1"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73"
+checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1080,7 +1085,7 @@ dependencies = [
  "cfg-if",
  "libc",
  "miniz_oxide",
- "object 0.36.7",
+ "object 0.36.5",
  "rustc-demangle",
  "windows-targets 0.52.6",
 ]
@@ -1160,7 +1165,7 @@ dependencies = [
 [[package]]
 name = "binary-merkle-tree"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "hash-db",
  "log",
@@ -1178,15 +1183,16 @@ dependencies = [
 
 [[package]]
 name = "bip32"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b"
+checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69"
 dependencies = [
  "bs58",
  "hmac 0.12.1",
  "k256",
  "rand_core",
  "ripemd",
+ "secp256k1 0.27.0",
  "sha2 0.10.8",
  "subtle 2.6.1",
  "zeroize",
@@ -1242,9 +1248,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.8.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
 
 [[package]]
 name = "bitvec"
@@ -1314,9 +1320,9 @@ dependencies = [
 
 [[package]]
 name = "blake3"
-version = "1.5.5"
+version = "1.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e"
+checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7"
 dependencies = [
  "arrayref",
  "arrayvec 0.7.6",
@@ -1380,7 +1386,7 @@ dependencies = [
 [[package]]
 name = "bp-header-chain"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-runtime",
  "finality-grandpa",
@@ -1397,7 +1403,7 @@ dependencies = [
 [[package]]
 name = "bp-messages"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-runtime",
@@ -1413,7 +1419,7 @@ dependencies = [
 [[package]]
 name = "bp-parachains"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-polkadot-core",
@@ -1430,7 +1436,7 @@ dependencies = [
 [[package]]
 name = "bp-polkadot"
 version = "0.5.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-polkadot-core",
@@ -1443,7 +1449,7 @@ dependencies = [
 [[package]]
 name = "bp-polkadot-core"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-messages",
  "bp-runtime",
@@ -1460,7 +1466,7 @@ dependencies = [
 [[package]]
 name = "bp-relayers"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-messages",
@@ -1478,7 +1484,7 @@ dependencies = [
 [[package]]
 name = "bp-runtime"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1501,7 +1507,7 @@ dependencies = [
 [[package]]
 name = "bp-test-utils"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-parachains",
@@ -1521,7 +1527,7 @@ dependencies = [
 [[package]]
 name = "bp-xcm-bridge-hub"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-messages",
  "bp-runtime",
@@ -1538,7 +1544,7 @@ dependencies = [
 [[package]]
 name = "bp-xcm-bridge-hub-router"
 version = "0.6.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -1550,7 +1556,7 @@ dependencies = [
 [[package]]
 name = "bridge-hub-common"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "frame-support",
@@ -1567,7 +1573,7 @@ dependencies = [
 [[package]]
 name = "bridge-hub-test-utils"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "asset-test-utils",
  "bp-header-chain",
@@ -1610,7 +1616,7 @@ dependencies = [
 [[package]]
 name = "bridge-runtime-common"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-messages",
@@ -1651,9 +1657,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.11.3"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0"
+checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22"
 dependencies = [
  "memchr",
  "serde",
@@ -1694,9 +1700,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
 
 [[package]]
 name = "bytemuck"
-version = "1.21.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3"
+checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d"
 
 [[package]]
 name = "byteorder"
@@ -1706,9 +1712,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.9.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b"
+checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da"
 
 [[package]]
 name = "c2-chacha"
@@ -1731,9 +1737,9 @@ dependencies = [
 
 [[package]]
 name = "cargo-platform"
-version = "0.1.9"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
+checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
 dependencies = [
  "serde",
 ]
@@ -1746,7 +1752,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a"
 dependencies = [
  "camino",
  "cargo-platform",
- "semver 1.0.25",
+ "semver 1.0.23",
  "serde",
  "serde_json",
  "thiserror 1.0.69",
@@ -1754,9 +1760,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.2.10"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229"
+checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47"
 dependencies = [
  "jobserver",
  "libc",
@@ -1832,9 +1838,9 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.39"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -1892,9 +1898,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.27"
+version = "4.5.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796"
+checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1902,9 +1908,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.27"
+version = "4.5.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7"
+checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec"
 dependencies = [
  "anstream",
  "anstyle",
@@ -1915,36 +1921,36 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.5.42"
+version = "4.5.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33a7e468e750fa4b6be660e8b5651ad47372e8fb114030b594c2d75d48c5ffd0"
+checksum = "d9647a559c112175f17cf724dc72d3645680a883c58481332779192b0d8e7a01"
 dependencies = [
  "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.5.24"
+version = "4.5.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c"
+checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
 dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.7.4"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
+checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7"
 
 [[package]]
 name = "cmake"
-version = "0.1.52"
+version = "0.1.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c682c223677e0e5b6b7f63a64b9351844c3f1b1678a68b7ee617e30fb082620e"
+checksum = "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a"
 dependencies = [
  "cc",
 ]
@@ -1976,6 +1982,19 @@ version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
 
+[[package]]
+name = "combine"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680"
+dependencies = [
+ "ascii",
+ "byteorder",
+ "either",
+ "memchr",
+ "unreachable",
+]
+
 [[package]]
 name = "combine"
 version = "4.6.7"
@@ -1988,9 +2007,9 @@ dependencies = [
 
 [[package]]
 name = "comfy-table"
-version = "7.1.3"
+version = "7.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f165e7b643266ea80cb858aed492ad9280e3e05ce24d4a99d7d7b889b6a4d9"
+checksum = "e0d05af1e006a2407bedef5af410552494ce5be9090444dbbcb57258c1af3d56"
 dependencies = [
  "strum 0.26.3",
  "strum_macros 0.26.4",
@@ -2069,22 +2088,22 @@ dependencies = [
 
 [[package]]
 name = "console"
-version = "0.15.10"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode",
+ "lazy_static",
  "libc",
- "once_cell",
- "unicode-width 0.2.0",
- "windows-sys 0.59.0",
+ "unicode-width 0.1.14",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "const-hex"
-version = "1.14.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c"
+checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -2207,9 +2226,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.16"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3"
+checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6"
 dependencies = [
  "libc",
 ]
@@ -2323,18 +2342,18 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.14"
+version = "0.5.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.6"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
  "crossbeam-epoch",
  "crossbeam-utils",
@@ -2351,18 +2370,18 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.3.12"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.21"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crunchy"
@@ -2474,7 +2493,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.96",
+ "syn 2.0.87",
  "synthez",
 ]
 
@@ -2495,7 +2514,7 @@ dependencies = [
 [[package]]
 name = "cumulus-client-parachain-inherent"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "cumulus-primitives-core",
@@ -2517,7 +2536,7 @@ dependencies = [
 [[package]]
 name = "cumulus-pallet-aura-ext"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-pallet-parachain-system",
  "frame-support",
@@ -2534,7 +2553,7 @@ dependencies = [
 [[package]]
 name = "cumulus-pallet-dmp-queue"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "frame-benchmarking",
@@ -2551,7 +2570,7 @@ dependencies = [
 [[package]]
 name = "cumulus-pallet-parachain-system"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bytes",
  "cumulus-pallet-parachain-system-proc-macro",
@@ -2587,18 +2606,18 @@ dependencies = [
 [[package]]
 name = "cumulus-pallet-parachain-system-proc-macro"
 version = "0.6.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "cumulus-pallet-session-benchmarking"
 version = "9.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -2611,7 +2630,7 @@ dependencies = [
 [[package]]
 name = "cumulus-pallet-solo-to-para"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-pallet-parachain-system",
  "frame-support",
@@ -2626,7 +2645,7 @@ dependencies = [
 [[package]]
 name = "cumulus-pallet-xcm"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "frame-support",
@@ -2641,7 +2660,7 @@ dependencies = [
 [[package]]
 name = "cumulus-pallet-xcmp-queue"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bounded-collections",
  "bp-xcm-bridge-hub-router",
@@ -2666,7 +2685,7 @@ dependencies = [
 [[package]]
 name = "cumulus-ping"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-pallet-xcm",
  "cumulus-primitives-core",
@@ -2681,7 +2700,7 @@ dependencies = [
 [[package]]
 name = "cumulus-primitives-aura"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-api",
  "sp-consensus-aura",
@@ -2690,7 +2709,7 @@ dependencies = [
 [[package]]
 name = "cumulus-primitives-core"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "polkadot-core-primitives",
@@ -2706,7 +2725,7 @@ dependencies = [
 [[package]]
 name = "cumulus-primitives-parachain-inherent"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "cumulus-primitives-core",
@@ -2720,7 +2739,7 @@ dependencies = [
 [[package]]
 name = "cumulus-primitives-proof-size-hostfunction"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-externalities 0.25.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
  "sp-runtime-interface 24.0.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
@@ -2730,7 +2749,7 @@ dependencies = [
 [[package]]
 name = "cumulus-primitives-storage-weight-reclaim"
 version = "1.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "cumulus-primitives-proof-size-hostfunction",
@@ -2747,7 +2766,7 @@ dependencies = [
 [[package]]
 name = "cumulus-primitives-timestamp"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "sp-inherents",
@@ -2757,7 +2776,7 @@ dependencies = [
 [[package]]
 name = "cumulus-primitives-utility"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "frame-support",
@@ -2774,7 +2793,7 @@ dependencies = [
 [[package]]
 name = "cumulus-relay-chain-interface"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "cumulus-primitives-core",
@@ -2793,7 +2812,7 @@ dependencies = [
 [[package]]
 name = "cumulus-test-relay-sproof-builder"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "parity-scale-codec",
@@ -2827,66 +2846,51 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "cxx"
-version = "1.0.137"
+version = "1.0.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc894913dccfed0f84106062c284fa021c3ba70cb1d78797d6f5165d4492e45"
+checksum = "23c042a0ba58aaff55299632834d1ea53ceff73d62373f62c9ae60890ad1b942"
 dependencies = [
  "cc",
- "cxxbridge-cmd",
  "cxxbridge-flags",
  "cxxbridge-macro",
- "foldhash",
  "link-cplusplus",
 ]
 
 [[package]]
 name = "cxx-build"
-version = "1.0.137"
+version = "1.0.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "503b2bfb6b3e8ce7f95d865a67419451832083d3186958290cee6c53e39dfcfe"
+checksum = "45dc1c88d0fdac57518a9b1f6c4f4fb2aca8f3c30c0d03d7d8518b47ca0bcea6"
 dependencies = [
  "cc",
  "codespan-reporting",
  "proc-macro2",
  "quote",
  "scratch",
- "syn 2.0.96",
-]
-
-[[package]]
-name = "cxxbridge-cmd"
-version = "1.0.137"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0d2cb64a95b4b5a381971482235c4db2e0208302a962acdbe314db03cbbe2fb"
-dependencies = [
- "clap",
- "codespan-reporting",
- "proc-macro2",
- "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.137"
+version = "1.0.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f797b0206463c9c2a68ed605ab28892cca784f1ef066050f4942e3de26ad885"
+checksum = "aa7ed7d30b289e2592cc55bc2ccd89803a63c913e008e6eb59f06cddf45bb52f"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.137"
+version = "1.0.130"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e79010a2093848e65a3e0f7062d3f02fb2ef27f866416dfe436fccfa73d3bb59"
+checksum = "0b8c465d22de46b851c04630a5fc749a26005b263632ed2e0d9cc81518ead78d"
 dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -2934,7 +2938,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim 0.11.1",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -2956,7 +2960,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
  "darling_core 0.20.10",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -2974,15 +2978,15 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.7.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
 
 [[package]]
 name = "data-encoding-macro"
-version = "0.1.16"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b16d9d0d88a5273d830dac8b78ceb217ffc9b1d5404e5597a3542515329405b"
+checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639"
 dependencies = [
  "data-encoding",
  "data-encoding-macro-internal",
@@ -2990,12 +2994,12 @@ dependencies = [
 
 [[package]]
 name = "data-encoding-macro-internal"
-version = "0.1.14"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1145d32e826a7748b69ee8fc62d3e6355ff7f1051df53141e7048162fc90481b"
+checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f"
 dependencies = [
  "data-encoding",
- "syn 2.0.96",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -3078,7 +3082,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3089,7 +3093,7 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3102,7 +3106,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustc_version 0.4.1",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3122,7 +3126,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
  "unicode-xid",
 ]
 
@@ -3212,7 +3216,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3272,7 +3276,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.96",
+ "syn 2.0.87",
  "termcolor",
  "toml 0.8.19",
  "walkdir",
@@ -3325,13 +3329,17 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
 name = "duniter"
 version = "0.8.0"
 dependencies = [
+ "array-bytes",
+ "async-channel 2.3.1",
  "async-io",
+ "async-trait",
  "bs58",
  "clap",
  "clap_complete",
  "common-runtime",
  "dc-distance",
  "distance-oracle",
+ "env_logger 0.10.2",
  "frame-benchmarking",
  "frame-benchmarking-cli",
  "frame-metadata-hash-extension",
@@ -3352,6 +3360,8 @@ dependencies = [
  "pallet-transaction-payment-rpc",
  "pallet-transaction-payment-rpc-runtime-api",
  "pallet-treasury",
+ "parity-scale-codec",
+ "parking_lot 0.12.3",
  "sc-basic-authorship",
  "sc-chain-spec",
  "sc-cli",
@@ -3366,6 +3376,8 @@ dependencies = [
  "sc-executor",
  "sc-keystore",
  "sc-network",
+ "sc-network-sync",
+ "sc-network-test",
  "sc-offchain",
  "sc-rpc",
  "sc-rpc-api",
@@ -3373,6 +3385,7 @@ dependencies = [
  "sc-telemetry",
  "sc-transaction-pool",
  "sc-transaction-pool-api",
+ "sc-utils",
  "serde",
  "serde_json",
  "serde_yaml",
@@ -3412,7 +3425,7 @@ dependencies = [
  "ctrlc",
  "cucumber",
  "distance-oracle",
- "env_logger 0.11.6",
+ "env_logger 0.11.5",
  "hex",
  "notify",
  "notify-debouncer-mini",
@@ -3534,7 +3547,7 @@ dependencies = [
  "enum-ordinalize",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3565,9 +3578,9 @@ dependencies = [
 
 [[package]]
 name = "encode_unicode"
-version = "1.0.0"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
 
 [[package]]
 name = "enum-as-inner"
@@ -3590,7 +3603,7 @@ dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3610,27 +3623,27 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "enumflags2"
-version = "0.7.11"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147"
+checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
 dependencies = [
  "enumflags2_derive",
 ]
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.11"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79"
+checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3641,14 +3654,14 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "env_filter"
-version = "0.1.3"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0"
+checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab"
 dependencies = [
  "log",
 ]
@@ -3668,9 +3681,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.11.6"
+version = "0.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0"
+checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d"
 dependencies = [
  "env_filter",
  "log",
@@ -3690,12 +3703,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.10"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
- "windows-sys 0.59.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3780,9 +3793,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "5.4.0"
+version = "5.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -3791,11 +3804,11 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.5.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
- "event-listener 5.4.0",
+ "event-listener 5.3.1",
  "pin-project-lite",
 ]
 
@@ -3820,7 +3833,7 @@ dependencies = [
  "prettyplease",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -3848,9 +3861,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.3.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
+checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4"
 
 [[package]]
 name = "fastrlp"
@@ -3863,17 +3876,6 @@ dependencies = [
  "bytes",
 ]
 
-[[package]]
-name = "fastrlp"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4"
-dependencies = [
- "arrayvec 0.7.6",
- "auto_impl",
- "bytes",
-]
-
 [[package]]
 name = "fatality"
 version = "0.1.1"
@@ -3891,11 +3893,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303"
 dependencies = [
  "expander",
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -4041,14 +4043,14 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "foldhash"
-version = "0.1.4"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f"
+checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2"
 
 [[package]]
 name = "fork-tree"
 version = "12.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -4081,7 +4083,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
 [[package]]
 name = "frame-benchmarking"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-support-procedural",
@@ -4105,7 +4107,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "32.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "Inflector",
  "array-bytes",
@@ -4167,7 +4169,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-pallet-pov"
 version = "18.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4195,18 +4197,18 @@ dependencies = [
 [[package]]
 name = "frame-election-provider-solution-type"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "frame-election-provider-support"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-election-provider-solution-type",
  "frame-support",
@@ -4222,7 +4224,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "aquamarine",
  "frame-support",
@@ -4287,7 +4289,7 @@ dependencies = [
 [[package]]
 name = "frame-metadata-hash-extension"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "const-hex",
@@ -4303,7 +4305,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "aquamarine",
  "array-bytes",
@@ -4346,7 +4348,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "23.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "Inflector",
  "cfg-expr",
@@ -4360,35 +4362,35 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "frame-support-procedural-tools"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "frame-system"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cfg-if",
  "docify",
@@ -4408,7 +4410,7 @@ dependencies = [
 [[package]]
 name = "frame-system-benchmarking"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4422,7 +4424,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "parity-scale-codec",
@@ -4432,7 +4434,7 @@ dependencies = [
 [[package]]
 name = "frame-try-runtime"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -4541,9 +4543,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
 
 [[package]]
 name = "futures-lite"
-version = "2.6.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532"
+checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1"
 dependencies = [
  "fastrand",
  "futures-core",
@@ -4560,7 +4562,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -4850,7 +4852,7 @@ dependencies = [
  "quote",
  "serde",
  "serde_json",
- "syn 2.0.96",
+ "syn 2.0.87",
  "textwrap",
  "thiserror 1.0.69",
  "typed-builder",
@@ -4904,14 +4906,14 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "glob"
-version = "0.3.2"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
@@ -4943,7 +4945,7 @@ version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "ignore",
  "walkdir",
 ]
@@ -4958,7 +4960,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "gloo-utils",
- "http 1.2.0",
+ "http 1.1.0",
  "js-sys",
  "pin-project",
  "serde",
@@ -5025,11 +5027,11 @@ dependencies = [
 
 [[package]]
 name = "graphql-parser"
-version = "0.4.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a818c0d883d7c0801df27be910917750932be279c7bc82dc541b8769425f409"
+checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474"
 dependencies = [
- "combine",
+ "combine 3.8.1",
  "thiserror 1.0.69",
 ]
 
@@ -5170,7 +5172,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http 0.2.12",
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -5179,17 +5181,17 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.4.7"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e"
+checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205"
 dependencies = [
  "atomic-waker",
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
- "http 1.2.0",
- "indexmap 2.7.1",
+ "http 1.1.0",
+ "indexmap 2.6.0",
  "slab",
  "tokio",
  "tokio-util",
@@ -5253,9 +5255,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.15.2"
+version = "0.15.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
+checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3"
 dependencies = [
  "allocator-api2",
  "equivalent",
@@ -5315,9 +5317,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
 
 [[package]]
 name = "hickory-proto"
-version = "0.24.2"
+version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447afdcdb8afb9d0a852af6dc65d9b285ce720ed7a59e42a8bf2e931c67bc1b5"
+checksum = "2ad3d6d98c648ed628df039541a5577bee1a7c83e9e16fe3dbedeea4cdfeb971"
 dependencies = [
  "async-trait",
  "cfg-if",
@@ -5339,9 +5341,9 @@ dependencies = [
 
 [[package]]
 name = "hickory-resolver"
-version = "0.24.2"
+version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4"
+checksum = "dcf287bde7b776e85d7188e6e5db7cf410a2f9531fe82817eb87feed034c8d14"
 dependencies = [
  "cfg-if",
  "futures-util",
@@ -5421,9 +5423,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "1.2.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -5448,7 +5450,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
 dependencies = [
  "bytes",
- "http 1.2.0",
+ "http 1.1.0",
 ]
 
 [[package]]
@@ -5459,7 +5461,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
 dependencies = [
  "bytes",
  "futures-util",
- "http 1.2.0",
+ "http 1.1.0",
  "http-body 1.0.1",
  "pin-project-lite",
 ]
@@ -5484,9 +5486,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.32"
+version = "0.14.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7"
+checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -5499,7 +5501,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "tokio",
  "tower-service",
  "tracing",
@@ -5508,15 +5510,15 @@ dependencies = [
 
 [[package]]
 name = "hyper"
-version = "1.5.2"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0"
+checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "h2 0.4.7",
- "http 1.2.0",
+ "h2 0.4.6",
+ "http 1.1.0",
  "http-body 1.0.1",
  "httparse",
  "httpdate",
@@ -5535,7 +5537,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
  "http 0.2.12",
- "hyper 0.14.32",
+ "hyper 0.14.31",
  "log",
  "rustls 0.21.12",
  "rustls-native-certs 0.6.3",
@@ -5545,22 +5547,22 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.27.5"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2"
+checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
 dependencies = [
  "futures-util",
- "http 1.2.0",
- "hyper 1.5.2",
+ "http 1.1.0",
+ "hyper 1.5.0",
  "hyper-util",
  "log",
- "rustls 0.23.21",
+ "rustls 0.23.16",
  "rustls-native-certs 0.8.1",
  "rustls-pki-types",
  "tokio",
- "tokio-rustls 0.26.1",
+ "tokio-rustls 0.26.0",
  "tower-service",
- "webpki-roots 0.26.7",
+ "webpki-roots 0.26.6",
 ]
 
 [[package]]
@@ -5572,11 +5574,11 @@ dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "http 1.2.0",
+ "http 1.1.0",
  "http-body 1.0.1",
- "hyper 1.5.2",
+ "hyper 1.5.0",
  "pin-project-lite",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "tokio",
  "tower-service",
  "tracing",
@@ -5720,7 +5722,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -5783,9 +5785,9 @@ dependencies = [
 
 [[package]]
 name = "if-watch"
-version = "3.2.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38"
+checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e"
 dependencies = [
  "async-io",
  "core-foundation 0.9.4",
@@ -5794,10 +5796,6 @@ dependencies = [
  "if-addrs",
  "ipnet",
  "log",
- "netlink-packet-core",
- "netlink-packet-route",
- "netlink-proto",
- "netlink-sys",
  "rtnetlink",
  "system-configuration",
  "tokio",
@@ -5815,7 +5813,7 @@ dependencies = [
  "bytes",
  "futures 0.3.31",
  "http 0.2.12",
- "hyper 0.14.32",
+ "hyper 0.14.31",
  "log",
  "rand",
  "tokio",
@@ -5897,13 +5895,13 @@ dependencies = [
 
 [[package]]
 name = "impl-trait-for-tuples"
-version = "0.2.3"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9"
+checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -5938,12 +5936,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.7.1"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652"
+checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
 dependencies = [
  "equivalent",
- "hashbrown 0.15.2",
+ "hashbrown 0.15.1",
 ]
 
 [[package]]
@@ -6007,12 +6005,9 @@ dependencies = [
 
 [[package]]
 name = "inventory"
-version = "0.3.17"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b31349d02fe60f80bbbab1a9402364cad7460626d6030494b08ac4a2075bf81"
-dependencies = [
- "rustversion",
-]
+checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
 
 [[package]]
 name = "io-lifetimes"
@@ -6037,7 +6032,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "widestring",
  "windows-sys 0.48.0",
  "winreg",
@@ -6045,9 +6040,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.11.0"
+version = "2.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
+checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708"
 
 [[package]]
 name = "is-terminal"
@@ -6104,9 +6099,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.14"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jni"
@@ -6115,7 +6110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec"
 dependencies = [
  "cesu8",
- "combine",
+ "combine 4.6.7",
  "jni-sys",
  "log",
  "thiserror 1.0.69",
@@ -6139,11 +6134,10 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.77"
+version = "0.3.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
+checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9"
 dependencies = [
- "once_cell",
  "wasm-bindgen",
 ]
 
@@ -6178,7 +6172,7 @@ checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843"
 dependencies = [
  "jsonrpsee-client-transport 0.24.7",
  "jsonrpsee-core 0.24.7",
- "jsonrpsee-http-client 0.24.7",
+ "jsonrpsee-http-client 0.24.8",
  "jsonrpsee-proc-macros",
  "jsonrpsee-server",
  "jsonrpsee-types 0.24.7",
@@ -6217,16 +6211,16 @@ checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432"
 dependencies = [
  "base64 0.22.1",
  "futures-util",
- "http 1.2.0",
+ "http 1.1.0",
  "jsonrpsee-core 0.23.2",
  "pin-project",
- "rustls 0.23.21",
+ "rustls 0.23.16",
  "rustls-pki-types",
  "rustls-platform-verifier",
- "soketto 0.8.1",
+ "soketto 0.8.0",
  "thiserror 1.0.69",
  "tokio",
- "tokio-rustls 0.26.1",
+ "tokio-rustls 0.26.0",
  "tokio-util",
  "tracing",
  "url",
@@ -6242,16 +6236,16 @@ dependencies = [
  "futures-channel",
  "futures-util",
  "gloo-net",
- "http 1.2.0",
+ "http 1.1.0",
  "jsonrpsee-core 0.24.7",
  "pin-project",
- "rustls 0.23.21",
+ "rustls 0.23.16",
  "rustls-pki-types",
  "rustls-platform-verifier",
- "soketto 0.8.1",
+ "soketto 0.8.0",
  "thiserror 1.0.69",
  "tokio",
- "tokio-rustls 0.26.1",
+ "tokio-rustls 0.26.0",
  "tokio-util",
  "tracing",
  "url",
@@ -6268,7 +6262,7 @@ dependencies = [
  "beef",
  "futures-timer",
  "futures-util",
- "hyper 0.14.32",
+ "hyper 0.14.31",
  "jsonrpsee-types 0.22.5",
  "pin-project",
  "rustc-hash 1.1.0",
@@ -6312,14 +6306,14 @@ dependencies = [
  "bytes",
  "futures-timer",
  "futures-util",
- "http 1.2.0",
+ "http 1.1.0",
  "http-body 1.0.1",
  "http-body-util",
  "jsonrpsee-types 0.24.7",
  "parking_lot 0.12.3",
  "pin-project",
  "rand",
- "rustc-hash 2.1.0",
+ "rustc-hash 2.0.0",
  "serde",
  "serde_json",
  "thiserror 1.0.69",
@@ -6336,7 +6330,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5"
 dependencies = [
  "async-trait",
- "hyper 0.14.32",
+ "hyper 0.14.31",
  "hyper-rustls 0.24.2",
  "jsonrpsee-core 0.22.5",
  "jsonrpsee-types 0.22.5",
@@ -6344,32 +6338,32 @@ dependencies = [
  "serde_json",
  "thiserror 1.0.69",
  "tokio",
- "tower 0.4.13",
+ "tower",
  "tracing",
  "url",
 ]
 
 [[package]]
 name = "jsonrpsee-http-client"
-version = "0.24.7"
+version = "0.24.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b"
+checksum = "87c24e981ad17798bbca852b0738bfb7b94816ed687bd0d5da60bfa35fa0fdc3"
 dependencies = [
  "async-trait",
  "base64 0.22.1",
  "http-body 1.0.1",
- "hyper 1.5.2",
- "hyper-rustls 0.27.5",
+ "hyper 1.5.0",
+ "hyper-rustls 0.27.3",
  "hyper-util",
  "jsonrpsee-core 0.24.7",
  "jsonrpsee-types 0.24.7",
- "rustls 0.23.21",
+ "rustls 0.23.16",
  "rustls-platform-verifier",
  "serde",
  "serde_json",
  "thiserror 1.0.69",
  "tokio",
- "tower 0.4.13",
+ "tower",
  "tracing",
  "url",
 ]
@@ -6384,7 +6378,7 @@ dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -6394,10 +6388,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c"
 dependencies = [
  "futures-util",
- "http 1.2.0",
+ "http 1.1.0",
  "http-body 1.0.1",
  "http-body-util",
- "hyper 1.5.2",
+ "hyper 1.5.0",
  "hyper-util",
  "jsonrpsee-core 0.24.7",
  "jsonrpsee-types 0.24.7",
@@ -6405,12 +6399,12 @@ dependencies = [
  "route-recognizer",
  "serde",
  "serde_json",
- "soketto 0.8.1",
+ "soketto 0.8.0",
  "thiserror 1.0.69",
  "tokio",
  "tokio-stream",
  "tokio-util",
- "tower 0.4.13",
+ "tower",
  "tracing",
 ]
 
@@ -6434,7 +6428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af"
 dependencies = [
  "beef",
- "http 1.2.0",
+ "http 1.1.0",
  "serde",
  "serde_json",
  "thiserror 1.0.69",
@@ -6446,7 +6440,7 @@ version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1"
 dependencies = [
- "http 1.2.0",
+ "http 1.1.0",
  "serde",
  "serde_json",
  "thiserror 1.0.69",
@@ -6454,9 +6448,9 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-wasm-client"
-version = "0.24.7"
+version = "0.24.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a01cd500915d24ab28ca17527e23901ef1be6d659a2322451e1045532516c25"
+checksum = "42e41af42ca39657313748174d02766e5287d3a57356f16756dbd8065b933977"
 dependencies = [
  "jsonrpsee-client-transport 0.24.7",
  "jsonrpsee-core 0.24.7",
@@ -6469,7 +6463,7 @@ version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c28759775f5cb2f1ea9667672d3fe2b0e701d1f4b7b67954e60afe7fd058b5e"
 dependencies = [
- "http 1.2.0",
+ "http 1.1.0",
  "jsonrpsee-client-transport 0.23.2",
  "jsonrpsee-core 0.23.2",
  "jsonrpsee-types 0.23.2",
@@ -6482,7 +6476,7 @@ version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d"
 dependencies = [
- "http 1.2.0",
+ "http 1.1.0",
  "jsonrpsee-client-transport 0.24.7",
  "jsonrpsee-core 0.24.7",
  "jsonrpsee-types 0.24.7",
@@ -6579,9 +6573,9 @@ dependencies = [
 
 [[package]]
 name = "lazy-regex"
-version = "3.4.1"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60c7310b93682b36b98fa7ea4de998d3463ccbebd94d935d6b48ba5b6ffa7126"
+checksum = "8d8e41c97e6bc7ecb552016274b99fbb5d035e8de288c582d9b933af6677bfda"
 dependencies = [
  "lazy-regex-proc_macros",
  "once_cell",
@@ -6590,14 +6584,14 @@ dependencies = [
 
 [[package]]
 name = "lazy-regex-proc_macros"
-version = "3.4.1"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ba01db5ef81e17eb10a5e0f2109d1b3a3e29bac3070fdbd7d156bf7dbd206a1"
+checksum = "76e1d8b05d672c53cb9c7b920bbba8783845ae4f0b076e02a3db1d02c81b4163"
 dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -6608,9 +6602,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
 
 [[package]]
 name = "libc"
-version = "0.2.169"
+version = "0.2.162"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
+checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398"
 
 [[package]]
 name = "libm"
@@ -6693,7 +6687,7 @@ dependencies = [
  "libp2p-identity",
  "log",
  "multiaddr 0.18.2",
- "multihash 0.19.3",
+ "multihash 0.19.2",
  "multistream-select",
  "once_cell",
  "parking_lot 0.12.3",
@@ -6748,14 +6742,14 @@ dependencies = [
 
 [[package]]
 name = "libp2p-identity"
-version = "0.2.10"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d"
+checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8"
 dependencies = [
  "bs58",
  "ed25519-dalek",
  "hkdf",
- "multihash 0.19.3",
+ "multihash 0.19.2",
  "quick-protobuf",
  "rand",
  "sha2 0.10.8",
@@ -6808,7 +6802,7 @@ dependencies = [
  "log",
  "rand",
  "smallvec",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "tokio",
  "trust-dns-proto 0.22.0",
  "void",
@@ -6844,7 +6838,7 @@ dependencies = [
  "libp2p-identity",
  "log",
  "multiaddr 0.18.2",
- "multihash 0.19.3",
+ "multihash 0.19.2",
  "once_cell",
  "quick-protobuf",
  "rand",
@@ -6893,7 +6887,7 @@ dependencies = [
  "rand",
  "ring 0.16.20",
  "rustls 0.21.12",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "thiserror 1.0.69",
  "tokio",
 ]
@@ -6949,7 +6943,7 @@ dependencies = [
  "proc-macro-warning 0.4.2",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -6965,7 +6959,7 @@ dependencies = [
  "libp2p-core",
  "libp2p-identity",
  "log",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "tokio",
 ]
 
@@ -7033,7 +7027,7 @@ dependencies = [
  "parking_lot 0.12.3",
  "pin-project-lite",
  "rw-stream-sink",
- "soketto 0.8.1",
+ "soketto 0.8.0",
  "thiserror 1.0.69",
  "url",
  "webpki-roots 0.25.4",
@@ -7058,9 +7052,9 @@ version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "libc",
- "redox_syscall 0.5.8",
+ "redox_syscall 0.5.7",
 ]
 
 [[package]]
@@ -7113,9 +7107,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.21"
+version = "1.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa"
+checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472"
 dependencies = [
  "cc",
  "cmake",
@@ -7141,9 +7135,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linked_hash_set"
-version = "0.1.5"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2"
+checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588"
 dependencies = [
  "linked-hash-map",
 ]
@@ -7165,9 +7159,9 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.15"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "lioness"
@@ -7183,9 +7177,9 @@ dependencies = [
 
 [[package]]
 name = "litemap"
-version = "0.7.4"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
+checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
 
 [[package]]
 name = "litep2p"
@@ -7202,7 +7196,7 @@ dependencies = [
  "futures-timer",
  "hex-literal",
  "hickory-resolver",
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
  "libc",
  "mockall 0.13.1",
  "multiaddr 0.17.1",
@@ -7222,7 +7216,7 @@ dependencies = [
  "simple-dns",
  "smallvec",
  "snow",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "static_assertions",
  "thiserror 1.0.69",
  "tokio",
@@ -7251,9 +7245,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.25"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 
 [[package]]
 name = "lru"
@@ -7261,7 +7255,7 @@ version = "0.12.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
 dependencies = [
- "hashbrown 0.15.2",
+ "hashbrown 0.15.1",
 ]
 
 [[package]]
@@ -7275,9 +7269,9 @@ dependencies = [
 
 [[package]]
 name = "lz4"
-version = "1.28.1"
+version = "1.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4"
+checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725"
 dependencies = [
  "lz4-sys",
 ]
@@ -7310,7 +7304,7 @@ dependencies = [
  "macro_magic_core",
  "macro_magic_macros",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7324,7 +7318,7 @@ dependencies = [
  "macro_magic_core_macros",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7335,7 +7329,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7346,7 +7340,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869"
 dependencies = [
  "macro_magic_core",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7398,7 +7392,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64"
 dependencies = [
- "rustix 0.38.43",
+ "rustix 0.38.40",
 ]
 
 [[package]]
@@ -7477,9 +7471,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.8.3"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
 dependencies = [
  "adler2",
 ]
@@ -7498,10 +7492,11 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "1.0.3"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
 dependencies = [
+ "hermit-abi 0.3.9",
  "libc",
  "wasi",
  "windows-sys 0.52.0",
@@ -7557,7 +7552,7 @@ dependencies = [
  "downcast",
  "fragile",
  "mockall_derive 0.13.1",
- "predicates 3.1.3",
+ "predicates 3.1.2",
  "predicates-tree",
 ]
 
@@ -7582,7 +7577,7 @@ dependencies = [
  "cfg-if",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -7621,7 +7616,7 @@ dependencies = [
  "data-encoding",
  "libp2p-identity",
  "multibase",
- "multihash 0.19.3",
+ "multihash 0.19.2",
  "percent-encoding",
  "serde",
  "static_assertions",
@@ -7676,9 +7671,9 @@ dependencies = [
 
 [[package]]
 name = "multihash"
-version = "0.19.3"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d"
+checksum = "cc41f430805af9d1cf4adae4ed2149c759b877b01d909a1f40256188d09345d2"
 dependencies = [
  "core2",
  "unsigned-varint 0.8.0",
@@ -7700,9 +7695,9 @@ dependencies = [
 
 [[package]]
 name = "multimap"
-version = "0.10.0"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
+checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
 
 [[package]]
 name = "multistream-select"
@@ -7750,20 +7745,21 @@ checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
 
 [[package]]
 name = "netlink-packet-core"
-version = "0.7.0"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4"
+checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297"
 dependencies = [
  "anyhow",
  "byteorder",
+ "libc",
  "netlink-packet-utils",
 ]
 
 [[package]]
 name = "netlink-packet-route"
-version = "0.17.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66"
+checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab"
 dependencies = [
  "anyhow",
  "bitflags 1.3.2",
@@ -7787,23 +7783,24 @@ dependencies = [
 
 [[package]]
 name = "netlink-proto"
-version = "0.11.4"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2741a6c259755922e3ed29ebce3b299cc2160c4acae94b465b5938ab02c2bbe"
+checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6"
 dependencies = [
  "bytes",
  "futures 0.3.31",
  "log",
  "netlink-packet-core",
  "netlink-sys",
- "thiserror 2.0.11",
+ "thiserror 1.0.69",
+ "tokio",
 ]
 
 [[package]]
 name = "netlink-sys"
-version = "0.8.7"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23"
+checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307"
 dependencies = [
  "bytes",
  "futures 0.3.31",
@@ -7826,9 +7823,9 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.4"
+version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
@@ -7841,7 +7838,7 @@ version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "cfg-if",
  "cfg_aliases 0.2.1",
  "libc",
@@ -7862,7 +7859,7 @@ checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65"
 [[package]]
 name = "node-primitives"
 version = "2.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-core",
  "sp-runtime",
@@ -7925,7 +7922,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -7991,7 +7988,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -8076,9 +8073,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.36.7"
+version = "0.36.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
+checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e"
 dependencies = [
  "memchr",
 ]
@@ -8155,7 +8152,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f7b1d40dd8f367db3c65bec8d3dd47d4a604ee8874480738f93191bddab4e0e0"
 dependencies = [
  "expander",
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
  "itertools 0.11.0",
  "petgraph",
  "proc-macro-crate 3.2.0",
@@ -8173,7 +8170,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 [[package]]
 name = "pallet-alliance"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8192,7 +8189,7 @@ dependencies = [
 [[package]]
 name = "pallet-asset-conversion"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8210,7 +8207,7 @@ dependencies = [
 [[package]]
 name = "pallet-asset-conversion-ops"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8228,7 +8225,7 @@ dependencies = [
 [[package]]
 name = "pallet-asset-conversion-tx-payment"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8243,7 +8240,7 @@ dependencies = [
 [[package]]
 name = "pallet-asset-rate"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8257,7 +8254,7 @@ dependencies = [
 [[package]]
 name = "pallet-asset-tx-payment"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8274,7 +8271,7 @@ dependencies = [
 [[package]]
 name = "pallet-assets"
 version = "29.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8290,7 +8287,7 @@ dependencies = [
 [[package]]
 name = "pallet-assets-freezer"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8305,7 +8302,7 @@ dependencies = [
 [[package]]
 name = "pallet-atomic-swap"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8319,7 +8316,7 @@ dependencies = [
 [[package]]
 name = "pallet-aura"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8335,7 +8332,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8370,7 +8367,7 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8383,7 +8380,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8406,7 +8403,7 @@ dependencies = [
 [[package]]
 name = "pallet-bags-list"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "aquamarine",
  "docify",
@@ -8427,7 +8424,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -8442,7 +8439,7 @@ dependencies = [
 [[package]]
 name = "pallet-beefy"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8461,7 +8458,7 @@ dependencies = [
 [[package]]
 name = "pallet-beefy-mmr"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "binary-merkle-tree",
@@ -8486,7 +8483,7 @@ dependencies = [
 [[package]]
 name = "pallet-bounties"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8503,7 +8500,7 @@ dependencies = [
 [[package]]
 name = "pallet-bridge-grandpa"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-runtime",
@@ -8522,7 +8519,7 @@ dependencies = [
 [[package]]
 name = "pallet-bridge-messages"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-messages",
@@ -8541,7 +8538,7 @@ dependencies = [
 [[package]]
 name = "pallet-bridge-parachains"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-parachains",
@@ -8561,7 +8558,7 @@ dependencies = [
 [[package]]
 name = "pallet-bridge-relayers"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-header-chain",
  "bp-messages",
@@ -8585,7 +8582,7 @@ dependencies = [
 [[package]]
 name = "pallet-broker"
 version = "0.6.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitvec",
  "frame-benchmarking",
@@ -8620,7 +8617,7 @@ dependencies = [
 [[package]]
 name = "pallet-child-bounties"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8638,7 +8635,7 @@ dependencies = [
 [[package]]
 name = "pallet-collator-selection"
 version = "9.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8657,7 +8654,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -8674,7 +8671,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective-content"
 version = "0.6.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8688,7 +8685,7 @@ dependencies = [
 [[package]]
 name = "pallet-contracts"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitflags 1.3.2",
  "environmental",
@@ -8720,7 +8717,7 @@ dependencies = [
 [[package]]
 name = "pallet-contracts-mock-network"
 version = "3.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8755,17 +8752,17 @@ dependencies = [
 [[package]]
 name = "pallet-contracts-proc-macro"
 version = "18.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "pallet-contracts-uapi"
 version = "5.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitflags 1.3.2",
  "parity-scale-codec",
@@ -8776,7 +8773,7 @@ dependencies = [
 [[package]]
 name = "pallet-conviction-voting"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "assert_matches",
  "frame-benchmarking",
@@ -8792,7 +8789,7 @@ dependencies = [
 [[package]]
 name = "pallet-core-fellowship"
 version = "12.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8810,7 +8807,7 @@ dependencies = [
 [[package]]
 name = "pallet-delegated-staking"
 version = "1.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8825,7 +8822,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8842,7 +8839,7 @@ dependencies = [
 [[package]]
 name = "pallet-dev-mode"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8919,7 +8916,7 @@ version = "1.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -8945,7 +8942,7 @@ dependencies = [
 [[package]]
 name = "pallet-election-provider-multi-phase"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -8967,7 +8964,7 @@ dependencies = [
 [[package]]
 name = "pallet-election-provider-support-benchmarking"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -8980,7 +8977,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -8998,7 +8995,7 @@ dependencies = [
 [[package]]
 name = "pallet-fast-unstake"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -9016,7 +9013,7 @@ dependencies = [
 [[package]]
 name = "pallet-glutton"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "blake2 0.10.6",
  "frame-benchmarking",
@@ -9034,7 +9031,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9078,7 +9075,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -9094,7 +9091,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9113,7 +9110,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9129,7 +9126,7 @@ dependencies = [
 [[package]]
 name = "pallet-insecure-randomness-collective-flip"
 version = "16.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9142,7 +9139,7 @@ dependencies = [
 [[package]]
 name = "pallet-lottery"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9172,7 +9169,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9188,7 +9185,7 @@ dependencies = [
 [[package]]
 name = "pallet-message-queue"
 version = "31.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "environmental",
  "frame-benchmarking",
@@ -9207,7 +9204,7 @@ dependencies = [
 [[package]]
 name = "pallet-migrations"
 version = "1.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cfg-if",
  "docify",
@@ -9225,7 +9222,7 @@ dependencies = [
 [[package]]
 name = "pallet-mixnet"
 version = "0.4.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9244,7 +9241,7 @@ dependencies = [
 [[package]]
 name = "pallet-mmr"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9261,7 +9258,7 @@ dependencies = [
 [[package]]
 name = "pallet-multisig"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -9272,7 +9269,7 @@ dependencies = [
 [[package]]
 name = "pallet-nft-fractionalization"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9288,7 +9285,7 @@ dependencies = [
 [[package]]
 name = "pallet-nfts"
 version = "22.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -9305,7 +9302,7 @@ dependencies = [
 [[package]]
 name = "pallet-nfts-runtime-api"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "pallet-nfts",
  "parity-scale-codec",
@@ -9315,7 +9312,7 @@ dependencies = [
 [[package]]
 name = "pallet-nis"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9330,7 +9327,7 @@ dependencies = [
 [[package]]
 name = "pallet-node-authorization"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9345,7 +9342,7 @@ dependencies = [
 [[package]]
 name = "pallet-nomination-pools"
 version = "25.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9363,7 +9360,7 @@ dependencies = [
 [[package]]
 name = "pallet-nomination-pools-benchmarking"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -9383,7 +9380,7 @@ dependencies = [
 [[package]]
 name = "pallet-nomination-pools-runtime-api"
 version = "23.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "pallet-nomination-pools",
  "parity-scale-codec",
@@ -9408,7 +9405,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9424,7 +9421,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences-benchmarking"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -9464,7 +9461,7 @@ dependencies = [
 [[package]]
 name = "pallet-paged-list"
 version = "0.6.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -9481,7 +9478,7 @@ dependencies = [
 [[package]]
 name = "pallet-parameters"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -9498,7 +9495,7 @@ dependencies = [
 [[package]]
 name = "pallet-preimage"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9529,7 +9526,7 @@ dependencies = [
 [[package]]
 name = "pallet-proxy"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "polkadot-sdk-frame",
@@ -9555,7 +9552,7 @@ dependencies = [
 [[package]]
 name = "pallet-ranked-collective"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9573,7 +9570,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9587,7 +9584,7 @@ dependencies = [
 [[package]]
 name = "pallet-referenda"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9604,7 +9601,7 @@ dependencies = [
 [[package]]
 name = "pallet-remark"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9620,7 +9617,7 @@ dependencies = [
 [[package]]
 name = "pallet-revive"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitflags 1.3.2",
  "derive_more 0.99.18",
@@ -9659,7 +9656,7 @@ dependencies = [
 [[package]]
 name = "pallet-revive-fixtures"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "anyhow",
  "frame-system",
@@ -9676,7 +9673,7 @@ dependencies = [
 [[package]]
 name = "pallet-revive-mock-network"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9710,17 +9707,17 @@ dependencies = [
 [[package]]
 name = "pallet-revive-proc-macro"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "pallet-revive-uapi"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitflags 1.3.2",
  "parity-scale-codec",
@@ -9732,7 +9729,7 @@ dependencies = [
 [[package]]
 name = "pallet-root-offences"
 version = "25.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9747,7 +9744,7 @@ dependencies = [
 [[package]]
 name = "pallet-root-testing"
 version = "4.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9761,7 +9758,7 @@ dependencies = [
 [[package]]
 name = "pallet-safe-mode"
 version = "9.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -9779,7 +9776,7 @@ dependencies = [
 [[package]]
 name = "pallet-salary"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9797,7 +9794,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -9814,7 +9811,7 @@ dependencies = [
 [[package]]
 name = "pallet-scored-pool"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9827,7 +9824,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9860,7 +9857,7 @@ dependencies = [
 [[package]]
 name = "pallet-session-benchmarking"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9876,7 +9873,7 @@ dependencies = [
 [[package]]
 name = "pallet-skip-feeless-payment"
 version = "3.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9907,7 +9904,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9924,7 +9921,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -9945,7 +9942,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-fn"
 version = "19.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "log",
  "sp-arithmetic",
@@ -9954,7 +9951,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-runtime-api"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -9964,7 +9961,7 @@ dependencies = [
 [[package]]
 name = "pallet-state-trie-migration"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9980,7 +9977,7 @@ dependencies = [
 [[package]]
 name = "pallet-statement"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -9997,7 +9994,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -10012,7 +10009,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -10031,7 +10028,7 @@ dependencies = [
 [[package]]
 name = "pallet-tips"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10049,7 +10046,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10065,7 +10062,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "30.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "jsonrpsee 0.24.7",
  "pallet-transaction-payment-rpc-runtime-api",
@@ -10081,7 +10078,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "pallet-transaction-payment",
  "parity-scale-codec",
@@ -10093,7 +10090,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-storage"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10112,7 +10109,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -10131,7 +10128,7 @@ dependencies = [
 [[package]]
 name = "pallet-tx-pause"
 version = "9.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -10148,7 +10145,7 @@ dependencies = [
 [[package]]
 name = "pallet-uniques"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10196,7 +10193,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10211,7 +10208,7 @@ dependencies = [
 [[package]]
 name = "pallet-verify-signature"
 version = "1.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10227,7 +10224,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10241,7 +10238,7 @@ dependencies = [
 [[package]]
 name = "pallet-whitelist"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10255,7 +10252,7 @@ dependencies = [
 [[package]]
 name = "pallet-xcm"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bounded-collections",
  "frame-benchmarking",
@@ -10278,7 +10275,7 @@ dependencies = [
 [[package]]
 name = "pallet-xcm-benchmarks"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10296,7 +10293,7 @@ dependencies = [
 [[package]]
 name = "pallet-xcm-bridge-hub"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-messages",
  "bp-runtime",
@@ -10318,7 +10315,7 @@ dependencies = [
 [[package]]
 name = "pallet-xcm-bridge-hub-router"
 version = "0.5.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bp-xcm-bridge-hub-router",
  "frame-benchmarking",
@@ -10337,7 +10334,7 @@ dependencies = [
 [[package]]
 name = "parachains-common"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
@@ -10367,7 +10364,7 @@ dependencies = [
 [[package]]
 name = "parachains-runtimes-test-utils"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-pallet-parachain-system",
  "cumulus-pallet-xcmp-queue",
@@ -10516,7 +10513,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.5.8",
+ "redox_syscall 0.5.7",
  "smallvec",
  "windows-targets 0.52.6",
 ]
@@ -10598,20 +10595,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.15"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc"
+checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442"
 dependencies = [
  "memchr",
- "thiserror 2.0.11",
+ "thiserror 1.0.69",
  "ucd-trie",
 ]
 
 [[package]]
 name = "pest_derive"
-version = "2.7.15"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e"
+checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd"
 dependencies = [
  "pest",
  "pest_generator",
@@ -10619,22 +10616,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.15"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b"
+checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.15"
+version = "2.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea"
+checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d"
 dependencies = [
  "once_cell",
  "pest",
@@ -10648,34 +10645,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
 dependencies = [
  "fixedbitset",
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
 ]
 
 [[package]]
 name = "pin-project"
-version = "1.1.8"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916"
+checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.8"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb"
+checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.16"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
+checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
 
 [[package]]
 name = "pin-utils"
@@ -10733,7 +10730,7 @@ dependencies = [
 [[package]]
 name = "polkadot-core-primitives"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10744,7 +10741,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-metrics"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bs58",
  "futures 0.3.31",
@@ -10763,7 +10760,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-network-protocol"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-channel 1.9.0",
  "async-trait",
@@ -10788,7 +10785,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-primitives"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitvec",
  "bounded-vec",
@@ -10814,7 +10811,7 @@ dependencies = [
 [[package]]
 name = "polkadot-node-subsystem-types"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "bitvec",
@@ -10843,7 +10840,7 @@ dependencies = [
 [[package]]
 name = "polkadot-overseer"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -10865,7 +10862,7 @@ dependencies = [
 [[package]]
 name = "polkadot-parachain-primitives"
 version = "6.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bounded-collections",
  "derive_more 0.99.18",
@@ -10881,7 +10878,7 @@ dependencies = [
 [[package]]
 name = "polkadot-primitives"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitvec",
  "hex-literal",
@@ -10909,7 +10906,7 @@ dependencies = [
 [[package]]
 name = "polkadot-runtime-common"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitvec",
  "frame-benchmarking",
@@ -10959,7 +10956,7 @@ dependencies = [
 [[package]]
 name = "polkadot-runtime-metrics"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bs58",
  "frame-benchmarking",
@@ -10971,7 +10968,7 @@ dependencies = [
 [[package]]
 name = "polkadot-runtime-parachains"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bitflags 1.3.2",
  "bitvec",
@@ -11019,7 +11016,7 @@ dependencies = [
 [[package]]
 name = "polkadot-sdk"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "asset-test-utils",
  "assets-common",
@@ -11251,7 +11248,7 @@ dependencies = [
 [[package]]
 name = "polkadot-sdk-frame"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-benchmarking",
@@ -11285,7 +11282,7 @@ dependencies = [
 [[package]]
 name = "polkadot-statement-table"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "polkadot-primitives",
@@ -11389,7 +11386,7 @@ dependencies = [
  "polkavm-common 0.9.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11401,7 +11398,7 @@ dependencies = [
  "polkavm-common 0.14.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11411,7 +11408,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429"
 dependencies = [
  "polkavm-derive-impl 0.9.0",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11421,7 +11418,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b569754b15060d03000c09e3bf11509d527f60b75d79b4c30c3625b5071d9702"
 dependencies = [
  "polkavm-derive-impl 0.14.0",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11448,7 +11445,7 @@ dependencies = [
  "gimli 0.31.1",
  "hashbrown 0.14.5",
  "log",
- "object 0.36.7",
+ "object 0.36.5",
  "polkavm-common 0.14.0",
  "regalloc2 0.9.3",
  "rustc-demangle",
@@ -11476,7 +11473,7 @@ dependencies = [
  "concurrent-queue",
  "hermit-abi 0.4.0",
  "pin-project-lite",
- "rustix 0.38.43",
+ "rustix 0.38.40",
  "tracing",
  "windows-sys 0.59.0",
 ]
@@ -11506,9 +11503,9 @@ dependencies = [
 
 [[package]]
 name = "portable-atomic"
-version = "1.10.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6"
+checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2"
 
 [[package]]
 name = "portpicker"
@@ -11550,9 +11547,9 @@ dependencies = [
 
 [[package]]
 name = "predicates"
-version = "3.1.3"
+version = "3.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573"
+checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97"
 dependencies = [
  "anstyle",
  "predicates-core",
@@ -11560,15 +11557,15 @@ dependencies = [
 
 [[package]]
 name = "predicates-core"
-version = "1.0.9"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa"
+checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.12"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c"
+checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13"
 dependencies = [
  "predicates-core",
  "termtree",
@@ -11576,12 +11573,12 @@ dependencies = [
 
 [[package]]
 name = "prettyplease"
-version = "0.2.29"
+version = "0.2.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac"
+checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033"
 dependencies = [
  "proc-macro2",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11690,7 +11687,7 @@ dependencies = [
  "proc-macro-error-attr2",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11701,7 +11698,7 @@ checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11712,14 +11709,14 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.93"
+version = "1.0.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
+checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
 dependencies = [
  "unicode-ident",
 ]
@@ -11758,7 +11755,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -11769,7 +11766,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d"
 dependencies = [
  "bit-set",
  "bit-vec",
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "lazy_static",
  "num-traits 0.2.19",
  "rand",
@@ -11793,31 +11790,31 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.13.4"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec"
+checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5"
 dependencies = [
  "bytes",
- "prost-derive 0.13.4",
+ "prost-derive 0.13.5",
 ]
 
 [[package]]
 name = "prost-build"
-version = "0.13.4"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b"
+checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf"
 dependencies = [
- "heck 0.5.0",
- "itertools 0.13.0",
+ "heck 0.4.1",
+ "itertools 0.10.5",
  "log",
  "multimap",
  "once_cell",
  "petgraph",
  "prettyplease",
- "prost 0.13.4",
+ "prost 0.13.5",
  "prost-types",
  "regex",
- "syn 2.0.96",
+ "syn 2.0.87",
  "tempfile",
 ]
 
@@ -11831,29 +11828,29 @@ dependencies = [
  "itertools 0.12.1",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "prost-derive"
-version = "0.13.4"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3"
+checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d"
 dependencies = [
  "anyhow",
- "itertools 0.13.0",
+ "itertools 0.10.5",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "prost-types"
-version = "0.13.4"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc"
+checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16"
 dependencies = [
- "prost 0.13.4",
+ "prost 0.13.5",
 ]
 
 [[package]]
@@ -11867,9 +11864,9 @@ dependencies = [
 
 [[package]]
 name = "quanta"
-version = "0.12.5"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e"
+checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5"
 dependencies = [
  "crossbeam-utils",
  "libc",
@@ -11935,11 +11932,11 @@ dependencies = [
  "bytes",
  "pin-project-lite",
  "quinn-proto 0.11.9",
- "quinn-udp 0.5.9",
- "rustc-hash 2.1.0",
- "rustls 0.23.21",
- "socket2 0.5.8",
- "thiserror 2.0.11",
+ "quinn-udp 0.5.7",
+ "rustc-hash 2.0.0",
+ "rustls 0.23.16",
+ "socket2 0.5.7",
+ "thiserror 2.0.3",
  "tokio",
  "tracing",
 ]
@@ -11971,11 +11968,11 @@ dependencies = [
  "getrandom",
  "rand",
  "ring 0.17.8",
- "rustc-hash 2.1.0",
- "rustls 0.23.21",
+ "rustc-hash 2.0.0",
+ "rustls 0.23.16",
  "rustls-pki-types",
  "slab",
- "thiserror 2.0.11",
+ "thiserror 2.0.3",
  "tinyvec",
  "tracing",
  "web-time",
@@ -11989,30 +11986,30 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7"
 dependencies = [
  "bytes",
  "libc",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "tracing",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "quinn-udp"
-version = "0.5.9"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904"
+checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da"
 dependencies = [
  "cfg_aliases 0.2.1",
  "libc",
  "once_cell",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "tracing",
  "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.38"
+version = "1.0.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
 dependencies = [
  "proc-macro2",
 ]
@@ -12083,11 +12080,11 @@ dependencies = [
 
 [[package]]
 name = "raw-cpuid"
-version = "11.3.0"
+version = "11.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6928fa44c097620b706542d428957635951bade7143269085389d42c8a4927e"
+checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
 ]
 
 [[package]]
@@ -12155,11 +12152,11 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.5.8"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
+checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
 ]
 
 [[package]]
@@ -12190,7 +12187,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -12270,19 +12267,19 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
 
 [[package]]
 name = "reqwest"
-version = "0.12.12"
+version = "0.12.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da"
+checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
 dependencies = [
  "base64 0.22.1",
  "bytes",
  "futures-core",
  "futures-util",
- "http 1.2.0",
+ "http 1.1.0",
  "http-body 1.0.1",
  "http-body-util",
- "hyper 1.5.2",
- "hyper-rustls 0.27.5",
+ "hyper 1.5.0",
+ "hyper-rustls 0.27.3",
  "hyper-util",
  "ipnet",
  "js-sys",
@@ -12292,7 +12289,7 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite",
  "quinn 0.11.6",
- "rustls 0.23.21",
+ "rustls 0.23.16",
  "rustls-pemfile 2.2.0",
  "rustls-pki-types",
  "serde",
@@ -12300,14 +12297,13 @@ dependencies = [
  "serde_urlencoded",
  "sync_wrapper",
  "tokio",
- "tokio-rustls 0.26.1",
- "tower 0.5.2",
+ "tokio-rustls 0.26.0",
  "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "webpki-roots 0.26.7",
+ "webpki-roots 0.26.6",
  "windows-registry",
 ]
 
@@ -12410,7 +12406,7 @@ dependencies = [
 [[package]]
 name = "rococo-runtime-constants"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "polkadot-primitives",
@@ -12442,18 +12438,15 @@ dependencies = [
 
 [[package]]
 name = "rtnetlink"
-version = "0.13.1"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0"
+checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0"
 dependencies = [
  "futures 0.3.31",
  "log",
- "netlink-packet-core",
  "netlink-packet-route",
- "netlink-packet-utils",
  "netlink-proto",
- "netlink-sys",
- "nix 0.26.4",
+ "nix 0.24.3",
  "thiserror 1.0.69",
  "tokio",
 ]
@@ -12470,18 +12463,16 @@ dependencies = [
 
 [[package]]
 name = "ruint"
-version = "1.12.4"
+version = "1.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5ef8fb1dd8de3870cb8400d51b4c2023854bbafd5431a3ac7e7317243e22d2f"
+checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286"
 dependencies = [
  "alloy-rlp",
  "ark-ff 0.3.0",
  "ark-ff 0.4.2",
  "bytes",
- "fastrlp 0.3.1",
- "fastrlp 0.4.0",
+ "fastrlp",
  "num-bigint",
- "num-integer",
  "num-traits 0.2.19",
  "parity-scale-codec",
  "primitive-types 0.12.2",
@@ -12514,9 +12505,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustc-hash"
-version = "2.1.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
+checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
 
 [[package]]
 name = "rustc-hex"
@@ -12548,7 +12539,7 @@ version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
 dependencies = [
- "semver 1.0.25",
+ "semver 1.0.23",
 ]
 
 [[package]]
@@ -12576,15 +12567,15 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.43"
+version = "0.38.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6"
+checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.15",
- "windows-sys 0.59.0",
+ "linux-raw-sys 0.4.14",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -12626,9 +12617,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.23.21"
+version = "0.23.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8"
+checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e"
 dependencies = [
  "log",
  "once_cell",
@@ -12673,7 +12664,7 @@ dependencies = [
  "openssl-probe",
  "rustls-pki-types",
  "schannel",
- "security-framework 3.2.0",
+ "security-framework 3.0.1",
 ]
 
 [[package]]
@@ -12696,9 +12687,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.10.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37"
+checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b"
 dependencies = [
  "web-time",
 ]
@@ -12714,13 +12705,13 @@ dependencies = [
  "jni",
  "log",
  "once_cell",
- "rustls 0.23.21",
+ "rustls 0.23.16",
  "rustls-native-certs 0.7.3",
  "rustls-platform-verifier-android",
  "rustls-webpki 0.102.8",
  "security-framework 2.11.1",
  "security-framework-sys",
- "webpki-roots 0.26.7",
+ "webpki-roots 0.26.6",
  "winapi",
 ]
 
@@ -12753,9 +12744,9 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.19"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"
+checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
 
 [[package]]
 name = "rusty-fork"
@@ -12818,9 +12809,9 @@ dependencies = [
 
 [[package]]
 name = "safe_arch"
-version = "0.7.4"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323"
+checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a"
 dependencies = [
  "bytemuck",
 ]
@@ -12837,7 +12828,7 @@ dependencies = [
 [[package]]
 name = "sc-allocator"
 version = "23.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "log",
  "sp-core",
@@ -12848,7 +12839,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -12857,7 +12848,7 @@ dependencies = [
  "libp2p",
  "linked_hash_set",
  "log",
- "multihash 0.19.3",
+ "multihash 0.19.2",
  "parity-scale-codec",
  "prost 0.12.6",
  "prost-build",
@@ -12878,7 +12869,7 @@ dependencies = [
 [[package]]
 name = "sc-basic-authorship"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "futures 0.3.31",
  "futures-timer",
@@ -12900,7 +12891,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -12915,7 +12906,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "docify",
@@ -12942,18 +12933,18 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sc-cli"
 version = "0.36.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "chrono",
@@ -12995,7 +12986,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "fnv",
  "futures 0.3.31",
@@ -13022,7 +13013,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.35.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "hash-db",
  "kvdb",
@@ -13047,7 +13038,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -13071,7 +13062,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-aura"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -13100,7 +13091,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "fork-tree",
@@ -13136,7 +13127,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "futures 0.3.31",
  "jsonrpsee 0.24.7",
@@ -13158,7 +13149,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -13171,7 +13162,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-grandpa"
 version = "0.19.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "ahash",
  "array-bytes",
@@ -13215,7 +13206,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-grandpa-rpc"
 version = "0.19.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "finality-grandpa",
  "futures 0.3.31",
@@ -13235,7 +13226,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-manual-seal"
 version = "0.35.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "assert_matches",
  "async-trait",
@@ -13270,7 +13261,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -13293,7 +13284,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.32.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.3",
@@ -13316,7 +13307,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.29.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "polkavm 0.9.3",
  "sc-allocator",
@@ -13329,7 +13320,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-polkavm"
 version = "0.29.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "log",
  "polkavm 0.9.3",
@@ -13340,7 +13331,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.29.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "anyhow",
  "cfg-if",
@@ -13358,7 +13349,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "console",
  "futures 0.3.31",
@@ -13375,7 +13366,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "25.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "parking_lot 0.12.3",
@@ -13389,7 +13380,7 @@ dependencies = [
 [[package]]
 name = "sc-mixnet"
 version = "0.4.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "arrayvec 0.7.6",
@@ -13418,7 +13409,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "async-channel 1.9.0",
@@ -13469,7 +13460,7 @@ dependencies = [
 [[package]]
 name = "sc-network-common"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "bitflags 1.3.2",
@@ -13487,7 +13478,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "ahash",
  "futures 0.3.31",
@@ -13506,7 +13497,7 @@ dependencies = [
 [[package]]
 name = "sc-network-light"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "async-channel 1.9.0",
@@ -13527,7 +13518,7 @@ dependencies = [
 [[package]]
 name = "sc-network-sync"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "async-channel 1.9.0",
@@ -13560,10 +13551,42 @@ dependencies = [
  "tokio-stream",
 ]
 
+[[package]]
+name = "sc-network-test"
+version = "0.8.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
+dependencies = [
+ "async-trait",
+ "futures 0.3.31",
+ "futures-timer",
+ "libp2p",
+ "log",
+ "parking_lot 0.12.3",
+ "rand",
+ "sc-block-builder",
+ "sc-client-api",
+ "sc-consensus",
+ "sc-network",
+ "sc-network-common",
+ "sc-network-light",
+ "sc-network-sync",
+ "sc-network-types",
+ "sc-service",
+ "sc-utils",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-runtime",
+ "sp-tracing 16.0.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
+ "substrate-test-runtime",
+ "substrate-test-runtime-client",
+ "tokio",
+]
+
 [[package]]
 name = "sc-network-transactions"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "futures 0.3.31",
@@ -13582,7 +13605,7 @@ dependencies = [
 [[package]]
 name = "sc-network-types"
 version = "0.10.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bs58",
  "ed25519-dalek",
@@ -13590,7 +13613,7 @@ dependencies = [
  "litep2p",
  "log",
  "multiaddr 0.18.2",
- "multihash 0.19.3",
+ "multihash 0.19.2",
  "rand",
  "thiserror 1.0.69",
  "zeroize",
@@ -13599,7 +13622,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "bytes",
@@ -13607,8 +13630,8 @@ dependencies = [
  "futures 0.3.31",
  "futures-timer",
  "http-body-util",
- "hyper 1.5.2",
- "hyper-rustls 0.27.5",
+ "hyper 1.5.0",
+ "hyper-rustls 0.27.3",
  "hyper-util",
  "log",
  "num_cpus",
@@ -13616,7 +13639,7 @@ dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.3",
  "rand",
- "rustls 0.23.21",
+ "rustls 0.23.16",
  "sc-client-api",
  "sc-network",
  "sc-network-common",
@@ -13636,7 +13659,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.17.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "log",
  "substrate-prometheus-endpoint",
@@ -13645,7 +13668,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "futures 0.3.31",
  "jsonrpsee 0.24.7",
@@ -13677,7 +13700,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.33.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "jsonrpsee 0.24.7",
  "parity-scale-codec",
@@ -13697,15 +13720,15 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "dyn-clone",
  "forwarded-header-value",
  "futures 0.3.31",
  "governor",
- "http 1.2.0",
+ "http 1.1.0",
  "http-body-util",
- "hyper 1.5.2",
+ "hyper 1.5.0",
  "ip_network",
  "jsonrpsee 0.24.7",
  "log",
@@ -13714,14 +13737,14 @@ dependencies = [
  "serde_json",
  "substrate-prometheus-endpoint",
  "tokio",
- "tower 0.4.13",
+ "tower",
  "tower-http",
 ]
 
 [[package]]
 name = "sc-rpc-spec-v2"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "futures 0.3.31",
@@ -13753,7 +13776,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.35.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "directories",
@@ -13817,7 +13840,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.30.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -13828,7 +13851,7 @@ dependencies = [
 [[package]]
 name = "sc-sysinfo"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "derive_more 0.99.18",
  "futures 0.3.31",
@@ -13849,7 +13872,7 @@ dependencies = [
 [[package]]
 name = "sc-telemetry"
 version = "15.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "chrono",
  "futures 0.3.31",
@@ -13869,7 +13892,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "chrono",
  "console",
@@ -13897,23 +13920,23 @@ dependencies = [
 [[package]]
 name = "sc-tracing-proc-macro"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sc-transaction-pool"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
  "futures-timer",
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
  "itertools 0.11.0",
  "linked-hash-map",
  "log",
@@ -13939,7 +13962,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool-api"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -13955,7 +13978,7 @@ dependencies = [
 [[package]]
 name = "sc-utils"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-channel 1.9.0",
  "futures 0.3.31",
@@ -14054,7 +14077,7 @@ dependencies = [
  "darling 0.20.10",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -14110,7 +14133,7 @@ dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -14123,14 +14146,14 @@ dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "scale-info"
-version = "2.11.6"
+version = "2.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b"
+checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b"
 dependencies = [
  "bitvec",
  "cfg-if",
@@ -14142,14 +14165,14 @@ dependencies = [
 
 [[package]]
 name = "scale-info-derive"
-version = "2.11.6"
+version = "2.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf"
+checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951"
 dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -14181,7 +14204,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "scale-info",
- "syn 2.0.96",
+ "syn 2.0.87",
  "thiserror 1.0.69",
 ]
 
@@ -14194,7 +14217,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "scale-info",
- "syn 2.0.96",
+ "syn 2.0.87",
  "thiserror 1.0.69",
 ]
 
@@ -14258,18 +14281,18 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.27"
+version = "0.1.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d"
+checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1"
 dependencies = [
  "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "schnellru"
-version = "0.2.4"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649"
+checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367"
 dependencies = [
  "ahash",
  "cfg-if",
@@ -14326,7 +14349,7 @@ dependencies = [
  "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -14344,13 +14367,31 @@ dependencies = [
  "zeroize",
 ]
 
+[[package]]
+name = "secp256k1"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f"
+dependencies = [
+ "secp256k1-sys 0.8.1",
+]
+
 [[package]]
 name = "secp256k1"
 version = "0.28.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10"
 dependencies = [
- "secp256k1-sys",
+ "secp256k1-sys 0.9.2",
+]
+
+[[package]]
+name = "secp256k1-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e"
+dependencies = [
+ "cc",
 ]
 
 [[package]]
@@ -14377,7 +14418,7 @@ version = "2.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "core-foundation 0.9.4",
  "core-foundation-sys",
  "libc",
@@ -14387,11 +14428,11 @@ dependencies = [
 
 [[package]]
 name = "security-framework"
-version = "3.2.0"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316"
+checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "core-foundation 0.10.0",
  "core-foundation-sys",
  "libc",
@@ -14400,9 +14441,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.14.0"
+version = "2.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32"
+checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -14432,14 +14473,14 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
 dependencies = [
- "semver-parser 0.10.3",
+ "semver-parser 0.10.2",
 ]
 
 [[package]]
 name = "semver"
-version = "1.0.25"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 dependencies = [
  "serde",
 ]
@@ -14452,9 +14493,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "semver-parser"
-version = "0.10.3"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
 dependencies = [
  "pest",
 ]
@@ -14473,9 +14514,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
 
 [[package]]
 name = "serde"
-version = "1.0.217"
+version = "1.0.215"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
+checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
 dependencies = [
  "serde_derive",
 ]
@@ -14500,20 +14541,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.217"
+version = "1.0.215"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
+checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.137"
+version = "1.0.132"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b"
+checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
 dependencies = [
  "itoa",
  "memchr",
@@ -14548,7 +14589,7 @@ version = "0.9.34+deprecated"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
 dependencies = [
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
  "itoa",
  "ryu",
  "serde",
@@ -14676,7 +14717,7 @@ version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c80e565e7dcc4f1ef247e2f395550d4cf7d777746d5988e7e4e3156b71077fc"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
 ]
 
 [[package]]
@@ -14725,7 +14766,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
 [[package]]
 name = "slot-range-helper"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "enumn",
  "parity-scale-codec",
@@ -14747,7 +14788,7 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -14846,7 +14887,7 @@ dependencies = [
  "derive_more 0.99.18",
  "ed25519-zebra",
  "either",
- "event-listener 5.4.0",
+ "event-listener 5.3.1",
  "fnv",
  "futures-lite",
  "futures-util",
@@ -14875,7 +14916,7 @@ dependencies = [
  "siphasher 1.0.1",
  "slab",
  "smallvec",
- "soketto 0.8.1",
+ "soketto 0.8.0",
  "twox-hash",
  "wasmi 0.32.3",
  "x25519-dalek",
@@ -14931,7 +14972,7 @@ dependencies = [
  "bs58",
  "derive_more 0.99.18",
  "either",
- "event-listener 5.4.0",
+ "event-listener 5.3.1",
  "fnv",
  "futures-channel",
  "futures-lite",
@@ -14990,7 +15031,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-beacon-primitives"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "byte-slice-cast",
  "frame-support",
@@ -15012,7 +15053,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-core"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "ethabi-decode",
  "frame-support",
@@ -15035,7 +15076,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-ethereum"
 version = "0.3.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "ethabi-decode",
  "ethbloom 0.14.1",
@@ -15070,7 +15111,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-outbound-queue-merkle-tree"
 version = "0.3.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15081,7 +15122,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-outbound-queue-runtime-api"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -15094,7 +15135,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-pallet-ethereum-client"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -15118,7 +15159,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-pallet-ethereum-client-fixtures"
 version = "0.9.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "hex-literal",
  "snowbridge-beacon-primitives",
@@ -15130,7 +15171,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-pallet-inbound-queue"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "alloy-primitives",
  "alloy-sol-types",
@@ -15157,7 +15198,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-pallet-inbound-queue-fixtures"
 version = "0.10.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "hex-literal",
  "snowbridge-beacon-primitives",
@@ -15169,7 +15210,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-pallet-outbound-queue"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bridge-hub-common",
  "ethabi-decode",
@@ -15191,7 +15232,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-pallet-system"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -15211,7 +15252,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-router-primitives"
 version = "0.9.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "hex-literal",
@@ -15230,7 +15271,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-runtime-common"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "log",
@@ -15246,7 +15287,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-runtime-test-common"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-pallet-parachain-system",
  "frame-support",
@@ -15277,7 +15318,7 @@ dependencies = [
 [[package]]
 name = "snowbridge-system-runtime-api"
 version = "0.2.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "snowbridge-core",
@@ -15298,9 +15339,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.8"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -15323,14 +15364,14 @@ dependencies = [
 
 [[package]]
 name = "soketto"
-version = "0.8.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721"
+checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53"
 dependencies = [
  "base64 0.22.1",
  "bytes",
  "futures 0.3.31",
- "http 1.2.0",
+ "http 1.1.0",
  "httparse",
  "log",
  "rand",
@@ -15340,7 +15381,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "hash-db",
@@ -15362,7 +15403,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "15.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "Inflector",
  "blake2 0.10.6",
@@ -15370,13 +15411,13 @@ dependencies = [
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-application-crypto"
 version = "30.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15388,7 +15429,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "23.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "integer-sqrt",
@@ -15420,7 +15461,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15432,7 +15473,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-api",
  "sp-inherents",
@@ -15442,7 +15483,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "futures 0.3.31",
  "parity-scale-codec",
@@ -15461,7 +15502,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.32.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "futures 0.3.31",
@@ -15476,7 +15517,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-aura"
 version = "0.32.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -15492,7 +15533,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.32.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -15510,7 +15551,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-beefy"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15530,7 +15571,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-grandpa"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "finality-grandpa",
  "log",
@@ -15547,7 +15588,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-pow"
 version = "0.32.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -15558,7 +15599,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-slots"
 version = "0.32.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15569,7 +15610,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "bandersnatch_vrfs",
@@ -15596,7 +15637,7 @@ dependencies = [
  "rand",
  "scale-info",
  "schnorrkel",
- "secp256k1",
+ "secp256k1 0.28.2",
  "secrecy",
  "serde",
  "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
@@ -15616,7 +15657,7 @@ dependencies = [
 [[package]]
 name = "sp-core-hashing"
 version = "15.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
 ]
@@ -15624,7 +15665,7 @@ dependencies = [
 [[package]]
 name = "sp-crypto-ec-utils"
 version = "0.10.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "ark-bls12-377",
  "ark-bls12-377-ext",
@@ -15644,7 +15685,7 @@ dependencies = [
 [[package]]
 name = "sp-crypto-ec-utils"
 version = "0.10.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "ark-bls12-377",
  "ark-bls12-377-ext",
@@ -15678,7 +15719,7 @@ dependencies = [
 [[package]]
 name = "sp-crypto-hashing"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "blake2b_simd",
  "byteorder",
@@ -15691,17 +15732,17 @@ dependencies = [
 [[package]]
 name = "sp-crypto-hashing-proc-macro"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "quote",
  "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-database"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "kvdb",
  "parking_lot 0.12.3",
@@ -15710,21 +15751,21 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-debug-derive"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -15744,7 +15785,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.25.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -15754,7 +15795,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.25.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -15764,7 +15805,7 @@ dependencies = [
 [[package]]
 name = "sp-genesis-builder"
 version = "0.8.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15776,7 +15817,7 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "impl-trait-for-tuples",
@@ -15789,7 +15830,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "30.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bytes",
  "docify",
@@ -15799,7 +15840,7 @@ dependencies = [
  "parity-scale-codec",
  "polkavm-derive 0.9.1",
  "rustversion",
- "secp256k1",
+ "secp256k1 0.28.2",
  "sp-core",
  "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
  "sp-externalities 0.25.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
@@ -15815,7 +15856,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "31.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-core",
  "sp-runtime",
@@ -15825,7 +15866,7 @@ dependencies = [
 [[package]]
 name = "sp-keystore"
 version = "0.34.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.3",
@@ -15836,7 +15877,7 @@ dependencies = [
 [[package]]
 name = "sp-maybe-compressed-blob"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "thiserror 1.0.69",
  "zstd 0.12.4",
@@ -15856,7 +15897,7 @@ dependencies = [
 [[package]]
 name = "sp-metadata-ir"
 version = "0.6.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-metadata 18.0.0",
  "parity-scale-codec",
@@ -15866,7 +15907,7 @@ dependencies = [
 [[package]]
 name = "sp-mixnet"
 version = "0.4.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15877,7 +15918,7 @@ dependencies = [
 [[package]]
 name = "sp-mmr-primitives"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -15894,7 +15935,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -15907,7 +15948,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -15917,7 +15958,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "backtrace",
  "regex",
@@ -15926,7 +15967,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "rustc-hash 1.1.0",
  "serde",
@@ -15936,7 +15977,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "31.0.1"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "binary-merkle-tree",
  "docify",
@@ -15965,7 +16006,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "24.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bytes",
  "impl-trait-for-tuples",
@@ -15984,7 +16025,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "24.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bytes",
  "impl-trait-for-tuples",
@@ -16003,33 +16044,33 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "17.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "Inflector",
  "expander",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "17.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "Inflector",
  "expander",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-session"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -16043,7 +16084,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -16056,7 +16097,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.35.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "hash-db",
  "log",
@@ -16076,7 +16117,7 @@ dependencies = [
 [[package]]
 name = "sp-statement-store"
 version = "10.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "aes-gcm",
  "curve25519-dalek",
@@ -16100,17 +16141,17 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 
 [[package]]
 name = "sp-std"
 version = "14.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 
 [[package]]
 name = "sp-storage"
 version = "19.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "impl-serde 0.5.0",
  "parity-scale-codec",
@@ -16122,7 +16163,7 @@ dependencies = [
 [[package]]
 name = "sp-storage"
 version = "19.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "impl-serde 0.5.0",
  "parity-scale-codec",
@@ -16134,7 +16175,7 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -16146,7 +16187,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "16.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "tracing",
@@ -16157,7 +16198,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "16.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "tracing",
@@ -16168,7 +16209,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "sp-api",
  "sp-runtime",
@@ -16177,7 +16218,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-storage-proof"
 version = "26.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -16191,7 +16232,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "ahash",
  "hash-db",
@@ -16213,7 +16254,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "29.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "impl-serde 0.5.0",
  "parity-scale-codec",
@@ -16230,19 +16271,19 @@ dependencies = [
 [[package]]
 name = "sp-version-proc-macro"
 version = "13.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "parity-scale-codec",
  "proc-macro-warning 1.0.2",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sp-wasm-interface"
 version = "20.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "anyhow",
  "impl-trait-for-tuples",
@@ -16254,7 +16295,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "20.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "anyhow",
  "impl-trait-for-tuples",
@@ -16265,7 +16306,7 @@ dependencies = [
 [[package]]
 name = "sp-weights"
 version = "27.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "bounded-collections",
  "parity-scale-codec",
@@ -16354,7 +16395,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 [[package]]
 name = "staging-parachain-info"
 version = "0.7.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "frame-support",
@@ -16367,7 +16408,7 @@ dependencies = [
 [[package]]
 name = "staging-xcm"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "bounded-collections",
@@ -16388,7 +16429,7 @@ dependencies = [
 [[package]]
 name = "staging-xcm-builder"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -16410,7 +16451,7 @@ dependencies = [
 [[package]]
 name = "staging-xcm-executor"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "environmental",
  "frame-benchmarking",
@@ -16450,9 +16491,9 @@ dependencies = [
 
 [[package]]
 name = "static_init_macro"
-version = "1.0.4"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1389c88ddd739ec6d3f8f83343764a0e944cd23cfbf126a9796a714b0b6edd6f"
+checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf"
 dependencies = [
  "cfg_aliases 0.1.1",
  "memchr",
@@ -16522,13 +16563,13 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "substrate-bip39"
 version = "0.4.7"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "hmac 0.12.1",
  "pbkdf2",
@@ -16540,12 +16581,12 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "11.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "28.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "docify",
  "frame-system-rpc-runtime-api",
@@ -16565,10 +16606,10 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.17.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "http-body-util",
- "hyper 1.5.2",
+ "hyper 1.5.0",
  "hyper-util",
  "log",
  "prometheus",
@@ -16576,10 +16617,99 @@ dependencies = [
  "tokio",
 ]
 
+[[package]]
+name = "substrate-test-client"
+version = "2.0.1"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
+dependencies = [
+ "array-bytes",
+ "async-trait",
+ "futures 0.3.31",
+ "parity-scale-codec",
+ "sc-client-api",
+ "sc-client-db",
+ "sc-consensus",
+ "sc-executor",
+ "sc-offchain",
+ "sc-service",
+ "serde",
+ "serde_json",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-keyring",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-state-machine",
+ "tokio",
+]
+
+[[package]]
+name = "substrate-test-runtime"
+version = "2.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
+dependencies = [
+ "array-bytes",
+ "frame-executive",
+ "frame-metadata-hash-extension",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "log",
+ "pallet-babe",
+ "pallet-balances",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "sc-service",
+ "scale-info",
+ "serde_json",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-consensus-babe",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-crypto-hashing 0.1.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
+ "sp-externalities 0.25.0 (git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0)",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-io",
+ "sp-keyring",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-state-machine",
+ "sp-transaction-pool",
+ "sp-trie",
+ "sp-version",
+ "substrate-wasm-builder",
+ "tracing",
+ "trie-db",
+]
+
+[[package]]
+name = "substrate-test-runtime-client"
+version = "2.0.0"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
+dependencies = [
+ "futures 0.3.31",
+ "sc-block-builder",
+ "sc-client-api",
+ "sc-consensus",
+ "sp-api",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-core",
+ "sp-runtime",
+ "substrate-test-client",
+ "substrate-test-runtime",
+]
+
 [[package]]
 name = "substrate-wasm-builder"
 version = "17.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "array-bytes",
  "build-helper",
@@ -16631,10 +16761,10 @@ dependencies = [
  "lazy_static",
  "log",
  "proc-macro2",
- "semver 1.0.25",
+ "semver 1.0.23",
  "serde",
  "serde_json",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -16725,7 +16855,7 @@ dependencies = [
  "scale-info",
  "scale-typegen 0.8.0",
  "subxt-metadata 0.37.0",
- "syn 2.0.96",
+ "syn 2.0.87",
  "thiserror 1.0.69",
  "tokio",
 ]
@@ -16742,7 +16872,7 @@ dependencies = [
  "scale-info",
  "scale-typegen 0.9.0",
  "subxt-metadata 0.38.0",
- "syn 2.0.96",
+ "syn 2.0.87",
  "thiserror 1.0.69",
 ]
 
@@ -16846,7 +16976,7 @@ dependencies = [
  "quote",
  "scale-typegen 0.8.0",
  "subxt-codegen 0.37.0",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -16861,7 +16991,7 @@ dependencies = [
  "scale-typegen 0.9.0",
  "subxt-codegen 0.38.0",
  "subxt-utils-fetchmetadata",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -16906,7 +17036,7 @@ dependencies = [
  "pbkdf2",
  "regex",
  "schnorrkel",
- "secp256k1",
+ "secp256k1 0.28.2",
  "secrecy",
  "sha2 0.10.8",
  "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -16937,9 +17067,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.96"
+version = "2.0.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
+checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -16955,14 +17085,14 @@ dependencies = [
  "paste",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "sync_wrapper"
-version = "1.0.2"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
 dependencies = [
  "futures-core",
 ]
@@ -16987,7 +17117,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -16996,7 +17126,7 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a3d2c2202510a1e186e63e596d9318c91a8cbe85cd1a56a7be0c333e5f59ec8d"
 dependencies = [
- "syn 2.0.96",
+ "syn 2.0.87",
  "synthez-codegen",
  "synthez-core",
 ]
@@ -17007,7 +17137,7 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f724aa6d44b7162f3158a57bccd871a77b39a4aef737e01bcdff41f4772c7746"
 dependencies = [
- "syn 2.0.96",
+ "syn 2.0.87",
  "synthez-core",
 ]
 
@@ -17020,25 +17150,25 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sealed",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "system-configuration"
-version = "0.6.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 1.3.2",
  "core-foundation 0.9.4",
  "system-configuration-sys",
 ]
 
 [[package]]
 name = "system-configuration-sys"
-version = "0.6.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -17058,15 +17188,14 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
 
 [[package]]
 name = "tempfile"
-version = "3.15.0"
+version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704"
+checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c"
 dependencies = [
  "cfg-if",
  "fastrand",
- "getrandom",
  "once_cell",
- "rustix 0.38.43",
+ "rustix 0.38.40",
  "windows-sys 0.59.0",
 ]
 
@@ -17097,24 +17226,24 @@ dependencies = [
 
 [[package]]
 name = "terminal_size"
-version = "0.4.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9"
+checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef"
 dependencies = [
- "rustix 0.38.43",
+ "rustix 0.38.40",
  "windows-sys 0.59.0",
 ]
 
 [[package]]
 name = "termtree"
-version = "0.5.1"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "testnet-parachains-constants"
 version = "1.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "cumulus-primitives-core",
  "frame-support",
@@ -17148,11 +17277,11 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "2.0.11"
+version = "2.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc"
+checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa"
 dependencies = [
- "thiserror-impl 2.0.11",
+ "thiserror-impl 2.0.3",
 ]
 
 [[package]]
@@ -17163,18 +17292,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "2.0.11"
+version = "2.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"
+checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -17225,9 +17354,9 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.37"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
  "itoa",
@@ -17246,9 +17375,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.19"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
  "num-conv",
  "time-core",
@@ -17275,9 +17404,9 @@ dependencies = [
 
 [[package]]
 name = "tinyvec"
-version = "1.8.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8"
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
 dependencies = [
  "tinyvec_macros",
 ]
@@ -17290,31 +17419,31 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.43.0"
+version = "1.41.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e"
+checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
- "mio 1.0.3",
+ "mio 1.0.2",
  "parking_lot 0.12.3",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.8",
+ "socket2 0.5.7",
  "tokio-macros",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.5.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
+checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -17340,19 +17469,20 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
-version = "0.26.1"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37"
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
 dependencies = [
- "rustls 0.23.21",
+ "rustls 0.23.16",
+ "rustls-pki-types",
  "tokio",
 ]
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.17"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047"
+checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -17377,9 +17507,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.13"
+version = "0.7.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
 dependencies = [
  "bytes",
  "futures-core",
@@ -17425,7 +17555,7 @@ version = "0.22.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
 dependencies = [
- "indexmap 2.7.1",
+ "indexmap 2.6.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -17447,30 +17577,15 @@ dependencies = [
  "tracing",
 ]
 
-[[package]]
-name = "tower"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
-dependencies = [
- "futures-core",
- "futures-util",
- "pin-project-lite",
- "sync_wrapper",
- "tokio",
- "tower-layer",
- "tower-service",
-]
-
 [[package]]
 name = "tower-http"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
 dependencies = [
- "bitflags 2.8.0",
+ "bitflags 2.6.0",
  "bytes",
- "http 1.2.0",
+ "http 1.1.0",
  "http-body 1.0.1",
  "http-body-util",
  "pin-project-lite",
@@ -17492,9 +17607,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
 
 [[package]]
 name = "tracing"
-version = "0.1.41"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
  "log",
  "pin-project-lite",
@@ -17504,20 +17619,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.28"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.33"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -17536,7 +17651,7 @@ dependencies = [
 [[package]]
 name = "tracing-gum"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "coarsetime",
  "polkadot-primitives",
@@ -17547,13 +17662,13 @@ dependencies = [
 [[package]]
 name = "tracing-gum-proc-macro"
 version = "5.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "expander",
  "proc-macro-crate 3.2.0",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -17569,9 +17684,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.19"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -17747,7 +17862,7 @@ checksum = "29a3151c41d0b13e3d011f98adc24434560ef06673a155a6c7f66b9879eecce2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -17844,15 +17959,15 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.18"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
+checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.14"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
 
 [[package]]
 name = "unicode-linebreak"
@@ -17903,6 +18018,15 @@ dependencies = [
  "subtle 2.6.1",
 ]
 
+[[package]]
+name = "unreachable"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
+dependencies = [
+ "void",
+]
+
 [[package]]
 name = "unsafe-libyaml"
 version = "0.2.11"
@@ -17945,9 +18069,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.5.4"
+version = "2.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
+checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada"
 dependencies = [
  "form_urlencoded",
  "idna 1.0.3",
@@ -17980,9 +18104,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
 
 [[package]]
 name = "valuable"
-version = "0.1.1"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "vcpkg"
@@ -18071,48 +18195,47 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.100"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
+checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e"
 dependencies = [
  "cfg-if",
  "once_cell",
- "rustversion",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.100"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
+checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358"
 dependencies = [
  "bumpalo",
  "log",
+ "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.50"
+version = "0.4.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61"
+checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b"
 dependencies = [
  "cfg-if",
  "js-sys",
- "once_cell",
  "wasm-bindgen",
  "web-sys",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.100"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
+checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -18120,25 +18243,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.100"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
+checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.100"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
-dependencies = [
- "unicode-ident",
-]
+checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d"
 
 [[package]]
 name = "wasm-instrument"
@@ -18491,9 +18611,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.77"
+version = "0.3.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
+checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -18527,9 +18647,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "webpki-roots"
-version = "0.26.7"
+version = "0.26.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e"
+checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958"
 dependencies = [
  "rustls-pki-types",
 ]
@@ -18547,7 +18667,7 @@ dependencies = [
 [[package]]
 name = "westend-runtime-constants"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "polkadot-primitives",
@@ -18562,9 +18682,9 @@ dependencies = [
 
 [[package]]
 name = "wide"
-version = "0.7.32"
+version = "0.7.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22"
+checksum = "b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690"
 dependencies = [
  "bytemuck",
  "safe_arch",
@@ -18609,30 +18729,29 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.53.0"
+version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
 dependencies = [
- "windows-core 0.53.0",
- "windows-targets 0.52.6",
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.52.0"
+version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
 dependencies = [
- "windows-targets 0.52.6",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.53.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-result 0.1.2",
  "windows-targets 0.52.6",
 ]
 
@@ -18642,20 +18761,11 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0"
 dependencies = [
- "windows-result 0.2.0",
+ "windows-result",
  "windows-strings",
  "windows-targets 0.52.6",
 ]
 
-[[package]]
-name = "windows-result"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
 [[package]]
 name = "windows-result"
 version = "0.2.0"
@@ -18671,7 +18781,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
 dependencies = [
- "windows-result 0.2.0",
+ "windows-result",
  "windows-targets 0.52.6",
 ]
 
@@ -18891,9 +19001,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
 
 [[package]]
 name = "winnow"
-version = "0.6.24"
+version = "0.6.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a"
+checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
 dependencies = [
  "memchr",
 ]
@@ -18978,18 +19088,18 @@ dependencies = [
 [[package]]
 name = "xcm-procedural"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "Inflector",
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "xcm-runtime-apis"
 version = "0.1.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -19003,7 +19113,7 @@ dependencies = [
 [[package]]
 name = "xcm-simulator"
 version = "7.0.0"
-source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#3f9bddbe619cf4068769b4d3fc58c8d50e358df8"
+source = "git+https://github.com/duniter/duniter-polkadot-sdk?branch=duniter-substrate-v1.17.0#e3172c09434c095d444f0300169c0e6111523d73"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -19024,9 +19134,9 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.25"
+version = "0.8.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4"
+checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f"
 
 [[package]]
 name = "xmltree"
@@ -19092,9 +19202,9 @@ dependencies = [
 
 [[package]]
 name = "yoke"
-version = "0.7.5"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"
+checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
 dependencies = [
  "serde",
  "stable_deref_trait",
@@ -19104,13 +19214,13 @@ dependencies = [
 
 [[package]]
 name = "yoke-derive"
-version = "0.7.5"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
+checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
  "synstructure 0.13.1",
 ]
 
@@ -19132,27 +19242,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
 name = "zerofrom"
-version = "0.1.5"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e"
+checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
 dependencies = [
  "zerofrom-derive",
 ]
 
 [[package]]
 name = "zerofrom-derive"
-version = "0.1.5"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
+checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
  "synstructure 0.13.1",
 ]
 
@@ -19173,7 +19283,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -19195,7 +19305,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.96",
+ "syn 2.0.87",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 08f8d82fa..54ee0162e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -105,6 +105,8 @@ simple_logger = { version = "4.3.3", default-features = false }
 bincode = { version = "1.3.3", default-features = false }
 dubp-wot = { version = "0.11.1", default-features = false }
 flate2 = { version = "1.0.28", default-features = false }
+array-bytes = { version = "6.2.2", default-features = false }
+parking_lot = { version = "0.12.1" }
 
 # Subxt
 subxt = { git = 'https://github.com/duniter/subxt', branch = 'subxt-v0.38.0-duniter-substrate-v1.17.0', default-features = false }
@@ -213,6 +215,9 @@ sc-telemetry = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch
 sc-transaction-pool = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
 sc-basic-authorship = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
 sc-network = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
+sc-network-sync = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
+sc-network-test = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
+sc-utils = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
 sp-keystore = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
 sp-storage = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
 sp-timestamp = { git = 'https://github.com/duniter/duniter-polkadot-sdk', branch = 'duniter-substrate-v1.17.0', default-features = false }
diff --git a/docker/README.md b/docker/README.md
index 0110be191..f346b5cb7 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -68,6 +68,9 @@ volumes:
 | `DUNITER_DISABLE_PROMETHEUS` | Boolean to disable the Prometheus endpoint on port 9615.                                                                                                                                                                                                                                                                                             | `false`                                                                                     |
 | `DUNITER_DISABLE_TELEMETRY`  | Boolean to disable connecting to the Substrate telemetry server.                                                                                                                                                                                                                                                                                     | `false`                                                                                     |
 | `DUNITER_PRUNING_PROFILE`    | _ `default`<br> _ `archive`: keep all blocks and state blocks<br> \* `light`: keep only last 256 state blocks and last 14400 blocks (one day duration)                                                                                                                                                                                               | `default`                                                                                   |
+| `DUNITER_PUBLIC_RPC`         | The public RPC endpoint to gossip on the network and make available in the apps. | None |
+| `DUNITER_PUBLIC_SQUID`       | The public Squid graphql endpoint to gossip on the network and make available in the apps. | None |
+| `DUNITER_PUBLIC_ENDPOINTS`   | Path to a JSON file containing public endpoints to gossip on the network. The file should use the following format:<br>```{"endpoints": [  { "protocol": "rpc", "address": "wss://gdev.example.com" },  { "protocol": "squid", "address": "gdev.example.com/graphql/v1" }]}``` | None |
 
 ## Other Duniter options
 
diff --git a/docker/docker-entrypoint b/docker/docker-entrypoint
index 3666aad0e..1e064d757 100755
--- a/docker/docker-entrypoint
+++ b/docker/docker-entrypoint
@@ -59,6 +59,21 @@ if [ -n "$DUNITER_PUBLIC_ADDR" ]; then
   set -- "$@" --public-addr "$DUNITER_PUBLIC_ADDR"
 fi
 
+# Define public RPC endpoint (gossiped on the network)
+if [ -n "$DUNITER_PUBLIC_RPC" ]; then
+  set -- "$@" --public-rpc "$DUNITER_PUBLIC_RPC"
+fi
+
+# Define public Squid endpoint (gossiped on the network)  
+if [ -n "$DUNITER_PUBLIC_SQUID" ]; then
+  set -- "$@" --public-squid "$DUNITER_PUBLIC_SQUID"
+fi
+
+# Define public endpoints from JSON file (gossiped on the network)
+if [ -n "$DUNITER_PUBLIC_ENDPOINTS" ]; then
+  set -- "$@" --public-endpoints "$DUNITER_PUBLIC_ENDPOINTS"
+fi
+
 # Define listen address (inside docker)
 if [ -n "$DUNITER_LISTEN_ADDR" ]; then
   set -- "$@" --listen-addr "$DUNITER_LISTEN_ADDR"
diff --git a/node/Cargo.toml b/node/Cargo.toml
index 85cfca8bc..812398fde 100644
--- a/node/Cargo.toml
+++ b/node/Cargo.toml
@@ -130,6 +130,9 @@ num-format = { workspace = true }
 serde = { workspace = true }
 serde_json = { workspace = true }
 serde_yaml = { workspace = true }
+codec = { workspace = true }
+array-bytes = { workspace = true }
+parking_lot = { workspace = true }
 tokio = { workspace = true, features = ["rt-multi-thread"] }
 
 # Local
@@ -162,11 +165,13 @@ sc-consensus-manual-seal = { workspace = true, default-features = true }
 sc-executor = { workspace = true, default-features = true }
 sc-keystore = { workspace = true, default-features = true }
 sc-network = { workspace = true, default-features = true }
+sc-network-sync = { workspace = true, default-features = true }
 sc-offchain = { workspace = true, default-features = true }
 sc-rpc-api = { workspace = true, default-features = true }
 sc-telemetry = { workspace = true, default-features = true }
 sc-transaction-pool = { workspace = true, default-features = true }
 sc-transaction-pool-api = { workspace = true, default-features = true }
+sc-utils = { workspace = true, default-features = true }
 sp-api = { workspace = true, default-features = true }
 sp-authority-discovery = { workspace = true, default-features = true }
 sp-block-builder = { workspace = true, default-features = true }
@@ -190,6 +195,12 @@ sp-transaction-pool = { workspace = true, default-features = true }
 sp-transaction-storage-proof = { workspace = true, default-features = true }
 substrate-frame-rpc-system = { workspace = true, default-features = true }
 
+[dev-dependencies]
+sc-network-test = { workspace = true, default-features = true }
+async-trait = { version = "0.1.79" }
+env_logger = "0.10.2"
+async-channel = "2.3.1"
+
 [build-dependencies]
 substrate-build-script-utils = { workspace = true, default-features = true }
 
@@ -228,4 +239,4 @@ assets = [
 	{ source = "../resources/debian/duniter-mirror.service", dest = "/usr/lib/systemd/system/duniter-mirror.service", mode = "0644" },
 	{ source = "../resources/debian/duniter-smith.service", dest = "/usr/lib/systemd/system/duniter-smith.service", mode = "0644" },
 	{ source = "../resources/debian/duniter-smith.service", dest = "/usr/lib/systemd/system/distance-oracle.service", mode = "0644" },
-]
+]
\ No newline at end of file
diff --git a/node/src/cli.rs b/node/src/cli.rs
index 4a29ae0c0..2e2186265 100644
--- a/node/src/cli.rs
+++ b/node/src/cli.rs
@@ -19,9 +19,14 @@ pub struct Cli {
     #[clap(subcommand)]
     pub subcommand: Option<Subcommand>,
 
+    /// substrate base options
     #[clap(flatten)]
     pub run: sc_cli::RunCmd,
 
+    /// duniter specific options
+    #[clap(flatten)]
+    pub duniter_options: DuniterConfigExtension,
+
     /// How blocks should be sealed
     ///
     /// Options are "production", "instant", "manual", or timer interval in milliseconds
@@ -29,6 +34,33 @@ pub struct Cli {
     pub sealing: crate::cli::Sealing,
 }
 
+/// add options specific to duniter client
+#[derive(Debug, Default, Clone, clap::Parser)]
+pub struct DuniterConfigExtension {
+    /// Public RPC endpoint to gossip on the network and make available in the apps.
+    #[arg(long)]
+    pub public_rpc: Option<String>,
+
+    /// Public Squid graphql endpoint to gossip on the network and make available in the apps.
+    #[arg(long)]
+    pub public_squid: Option<String>,
+
+    /// Public endpoints from a JSON file, using following format where `protocol` and `address` are
+    /// strings (value is free) :
+    ///
+    /// ```json
+    /// {
+    ///     "endpoints": [
+    ///         { "protocol": "rpc", "address": "wss://gdev.example.com" },
+    ///         { "protocol": "squid", "address": "gdev.example.com/graphql/v1" },
+    ///         { "protocol": "other", "address": "gdev.example.com/other" }
+    ///     ]
+    /// }
+    /// ```
+    #[arg(long, value_name = "JSON_FILE_PATH")]
+    pub public_endpoints: Option<String>,
+}
+
 #[derive(Debug, clap::Subcommand)]
 pub enum Subcommand {
     /// Build a chain specification.
diff --git a/node/src/command.rs b/node/src/command.rs
index c4416c6c5..512706ec9 100644
--- a/node/src/command.rs
+++ b/node/src/command.rs
@@ -22,7 +22,7 @@ pub mod utils;
 
 use crate::{
     chain_spec,
-    cli::{Cli, Subcommand},
+    cli::{Cli, DuniterConfigExtension, Subcommand},
     service,
     service::{runtime_executor::Executor, RuntimeType},
 };
@@ -374,6 +374,7 @@ pub fn run() -> sc_cli::Result<()> {
         }
         None => {
             let runner = cli.create_runner(&cli.run)?;
+            let duniter_options: DuniterConfigExtension = cli.duniter_options;
             runner.run_node_until_exit(|mut config| async move {
                 // Force offchain worker and offchain indexing if we have the role Authority
                 if config.role.is_authority() {
@@ -386,7 +387,7 @@ pub fn run() -> sc_cli::Result<()> {
                         service::runtime_executor::runtime::RuntimeApi,
                         Executor,
                         sc_network::Litep2pNetworkBackend,
-                    >(config, cli.sealing)
+                    >(config, cli.sealing, duniter_options)
                     .map_err(sc_cli::Error::Service)
                 }
             })
diff --git a/node/src/endpoint_gossip/handler.rs b/node/src/endpoint_gossip/handler.rs
new file mode 100644
index 000000000..2491298ca
--- /dev/null
+++ b/node/src/endpoint_gossip/handler.rs
@@ -0,0 +1,267 @@
+use crate::endpoint_gossip::{
+    types::validation_result::DuniterStreamValidationResult, DuniterEndpoints, Peer, Peering,
+    PROPAGATE_TIMEOUT,
+};
+use codec::{Decode, Encode};
+use futures::{stream, FutureExt, Stream, StreamExt};
+use log::debug;
+use sc_network::{
+    service::traits::{NotificationEvent, ValidationResult},
+    utils::interval,
+    NetworkEventStream, NetworkPeers, NetworkStateInfo, NotificationService, ObservedRole, PeerId,
+};
+use sc_utils::mpsc::{tracing_unbounded, TracingUnboundedReceiver, TracingUnboundedSender};
+use sp_api::__private::BlockT;
+use std::{collections::HashMap, marker::PhantomData, pin::Pin};
+
+pub fn build<
+    B: BlockT + 'static,
+    N: NetworkPeers + NetworkEventStream + NetworkStateInfo + Clone,
+>(
+    notification_service: Box<dyn NotificationService>,
+    network: N,
+    rpc_sink: TracingUnboundedSender<DuniterPeeringEvent>,
+    command_rx: Option<TracingUnboundedReceiver<DuniterPeeringCommand>>,
+    endpoints: DuniterEndpoints,
+) -> GossipsHandler<B, N> {
+    let local_peer_id = network.local_peer_id();
+
+    GossipsHandler {
+        b: PhantomData::<B>,
+        notification_service,
+        propagate_timeout: (Box::pin(interval(PROPAGATE_TIMEOUT))
+            as Pin<Box<dyn Stream<Item = ()> + Send>>)
+            .fuse(),
+        network,
+        peers: HashMap::new(),
+        command_rx: command_rx.unwrap_or_else(|| {
+            let (_tx, rx) = tracing_unbounded("mpsc_duniter_peering_rpc_command", 1_000);
+            rx
+        }),
+        self_peering: Peering { endpoints },
+        events_reporter: DuniterEventsReporter {
+            sink: rpc_sink,
+            local_peer_id,
+        },
+    }
+}
+
+#[allow(dead_code)]
+#[derive(Debug, Clone)]
+pub enum DuniterPeeringEvent {
+    StreamOpened(PeerId, ObservedRole),
+    StreamValidation(PeerId, DuniterStreamValidationResult),
+    StreamClosed(PeerId),
+    /// Received gossip from a peer, `bool` indicates whether the gossip was successfully decoded.
+    GossipReceived(PeerId, bool),
+    GoodPeering(PeerId, Peering),
+    AlreadyReceivedPeering(PeerId),
+    SelfPeeringPropagationSuccess(PeerId, Peering),
+    SelfPeeringPropagationFailed(PeerId, Peering, String),
+}
+
+pub enum DuniterPeeringCommand {
+    /// Send a peering to a peer.
+    #[allow(dead_code)] // only used in tests for now, maybe in the future by RPC
+    SendPeering(PeerId, Peering),
+}
+
+struct DuniterEventsReporter {
+    sink: TracingUnboundedSender<DuniterPeeringEvent>,
+    local_peer_id: PeerId,
+}
+
+impl DuniterEventsReporter {
+    /// Report an event for monitoring purposes (logs + unit tests).
+    fn report_event(&self, event: DuniterPeeringEvent) {
+        self.sink.unbounded_send(event.clone())
+            .unwrap_or_else(|e| {
+                log::error!(target: "duniter-libp2p", "[{}] Failed to send notification: {}", self.local_peer_id, e);
+            })
+    }
+}
+
+/// Handler for gossips. Call [`GossipsHandler::run`] to start the processing.
+pub struct GossipsHandler<
+    B: BlockT + 'static,
+    N: NetworkPeers + NetworkEventStream + NetworkStateInfo,
+> {
+    b: PhantomData<B>,
+    /// Interval at which we try to propagate our peering
+    propagate_timeout: stream::Fuse<Pin<Box<dyn Stream<Item = ()> + Send>>>,
+    /// Network service to use to send messages and manage peers.
+    network: N,
+    /// All connected peers and their known peering.
+    peers: HashMap<PeerId, Peer>,
+    /// The interal peering of the node.
+    self_peering: Peering,
+    /// Internal sink to report events.
+    events_reporter: DuniterEventsReporter,
+    /// Receiver for external commands (tests/RPC methods).
+    command_rx: TracingUnboundedReceiver<DuniterPeeringCommand>,
+    /// Handle that is used to communicate with `sc_network::Notifications`.
+    notification_service: Box<dyn NotificationService>,
+}
+
+impl<B, N> GossipsHandler<B, N>
+where
+    B: BlockT + 'static,
+    N: NetworkPeers + NetworkEventStream + NetworkStateInfo,
+{
+    /// Turns the [`TransactionsHandler`] into a future that should run forever and not be
+    /// interrupted.
+    pub async fn run(mut self) {
+        // Share self peering do listeners of current handler
+        self.events_reporter
+            .report_event(DuniterPeeringEvent::GoodPeering(
+                self.network.local_peer_id(),
+                self.self_peering.clone(),
+            ));
+        // Then start the network loop
+        loop {
+            futures::select! {
+                _ = self.propagate_timeout.next() => {
+                    for (peer, peer_data) in self.peers.iter_mut() {
+                        if !peer_data.sent_peering {
+                            match self.notification_service.send_async_notification(peer, self.self_peering.encode()).await {
+                                Ok(_) => {
+                                    peer_data.sent_peering = true;
+                                    self.events_reporter.report_event(DuniterPeeringEvent::SelfPeeringPropagationSuccess(*peer, self.self_peering.clone()));
+                                }
+                                Err(e) => {
+                                    self.events_reporter.report_event(DuniterPeeringEvent::SelfPeeringPropagationFailed(*peer, self.self_peering.clone(), e.to_string()));
+                                }
+                            }
+                        }
+                    }
+                },
+                command = self.command_rx.next().fuse() => {
+                    if let Some(command) = command {
+                        self.handle_command(command).await
+                    }
+                },
+                event = self.notification_service.next_event().fuse() => {
+                    if let Some(event) = event {
+                        self.handle_notification_event(event)
+                    } else {
+                        // `Notifications` has seemingly closed. Closing as well.
+                        return
+                    }
+                }
+            }
+        }
+    }
+
+    fn handle_notification_event(&mut self, event: NotificationEvent) {
+        match event {
+            NotificationEvent::ValidateInboundSubstream {
+                peer,
+                handshake,
+                result_tx,
+                ..
+            } => {
+                // only accept peers whose role can be determined
+                let result = self
+                    .network
+                    .peer_role(peer, handshake)
+                    .map_or(ValidationResult::Reject, |_| ValidationResult::Accept);
+                let duniter_validation = DuniterStreamValidationResult::from(result);
+                self.events_reporter
+                    .report_event(DuniterPeeringEvent::StreamValidation(
+                        peer,
+                        duniter_validation.clone(),
+                    ));
+                let _ = result_tx.send(duniter_validation.into());
+            }
+            NotificationEvent::NotificationStreamOpened {
+                peer, handshake, ..
+            } => {
+                let Some(role) = self.network.peer_role(peer, handshake) else {
+                    debug!(target: "duniter-libp2p", "[{}] role for {peer} couldn't be determined", self.network.local_peer_id());
+                    return;
+                };
+
+                let _was_in = self.peers.insert(
+                    peer,
+                    Peer {
+                        sent_peering: false,
+                        known_peering: None,
+                    },
+                );
+                debug_assert!(_was_in.is_none());
+                self.events_reporter
+                    .report_event(DuniterPeeringEvent::StreamOpened(peer, role));
+            }
+            NotificationEvent::NotificationStreamClosed { peer } => {
+                let _peer = self.peers.remove(&peer);
+                debug_assert!(_peer.is_some());
+                self.events_reporter
+                    .report_event(DuniterPeeringEvent::StreamClosed(peer));
+            }
+            NotificationEvent::NotificationReceived { peer, notification } => {
+                if let Ok(peering) = <Peering as Decode>::decode(&mut notification.as_ref()) {
+                    self.events_reporter
+                        .report_event(DuniterPeeringEvent::GossipReceived(peer, true));
+                    self.on_peering(peer, peering);
+                } else {
+                    self.events_reporter
+                        .report_event(DuniterPeeringEvent::GossipReceived(peer, false));
+                    self.network.report_peer(peer, rep::BAD_PEERING);
+                }
+            }
+        }
+    }
+
+    /// Called when peer sends us new peerings
+    fn on_peering(&mut self, who: PeerId, peering: Peering) {
+        if let Some(ref mut peer) = self.peers.get_mut(&who) {
+            if peer.known_peering.is_some() {
+                // Peering has already been received for this peer. Only one is allowed per connection.
+                self.network.report_peer(who, rep::BAD_PEERING);
+                self.events_reporter
+                    .report_event(DuniterPeeringEvent::AlreadyReceivedPeering(who));
+            } else {
+                peer.known_peering = Some(peering.clone());
+                self.events_reporter
+                    .report_event(DuniterPeeringEvent::GoodPeering(who, peering.clone()));
+                self.network.report_peer(who, rep::GOOD_PEERING);
+            }
+        }
+    }
+
+    async fn handle_command(&mut self, cmd: DuniterPeeringCommand) {
+        match cmd {
+            DuniterPeeringCommand::SendPeering(peer, peering) => {
+                debug!(target: "duniter-libp2p", "[{}]Sending COMMANDED self peering to {}", self.network.local_peer_id(), peer);
+                match self
+                    .notification_service
+                    .send_async_notification(&peer, peering.encode())
+                    .await
+                {
+                    Ok(_) => {
+                        self.events_reporter.report_event(
+                            DuniterPeeringEvent::SelfPeeringPropagationSuccess(peer, peering),
+                        );
+                    }
+                    Err(e) => {
+                        self.events_reporter.report_event(
+                            DuniterPeeringEvent::SelfPeeringPropagationFailed(
+                                peer,
+                                peering,
+                                e.to_string(),
+                            ),
+                        );
+                    }
+                }
+            }
+        };
+    }
+}
+
+mod rep {
+    use sc_network::ReputationChange as Rep;
+    /// Reputation change when a peer sends us an peering that we didn't know about.
+    pub const GOOD_PEERING: Rep = Rep::new(1 << 7, "Good peering");
+    /// Reputation change when a peer sends us a bad peering.
+    pub const BAD_PEERING: Rep = Rep::new(-(1 << 12), "Bad peering");
+}
diff --git a/node/src/endpoint_gossip/mod.rs b/node/src/endpoint_gossip/mod.rs
new file mode 100644
index 000000000..7c44f5521
--- /dev/null
+++ b/node/src/endpoint_gossip/mod.rs
@@ -0,0 +1,106 @@
+pub(crate) mod handler;
+pub(crate) mod rpc;
+#[cfg(test)]
+mod tests;
+mod types;
+
+use crate::endpoint_gossip::duniter_peering_protocol_name::NAME;
+use codec::{Decode, Encode};
+use frame_benchmarking::__private::traits::ConstU32;
+use sc_network::{
+    config::{PeerStoreProvider, SetConfig},
+    types::ProtocolName,
+    NetworkBackend, NotificationMetrics, NotificationService, MAX_RESPONSE_SIZE,
+};
+use serde::{Deserialize, Serialize};
+use sp_api::__private::BlockT;
+use sp_core::bounded_vec::BoundedVec;
+use std::{sync::Arc, time};
+
+pub mod well_known_endpoint_types {
+    pub const RPC: &str = "rpc";
+    pub const SQUID: &str = "squid";
+}
+
+pub struct DuniterPeeringParams {
+    /// Handle that is used to communicate with `sc_network::Notifications`.
+    pub notification_service: Box<dyn NotificationService>,
+}
+
+/// Maximum allowed size for a transactions notification.
+pub(crate) const MAX_GOSSIP_SIZE: u64 = MAX_RESPONSE_SIZE;
+
+/// Interval at which we propagate gossips;
+pub(crate) const PROPAGATE_TIMEOUT: time::Duration = time::Duration::from_secs(1);
+
+pub mod duniter_peering_protocol_name {
+
+    pub(crate) const NAME: &str = "duniter-peerings/1";
+}
+
+impl DuniterPeeringParams {
+    /// Create a new instance.
+    pub fn new<
+        Hash: AsRef<[u8]>,
+        Block: BlockT,
+        Net: NetworkBackend<Block, <Block as BlockT>::Hash>,
+    >(
+        genesis_hash: Hash,
+        fork_id: Option<&str>,
+        metrics: NotificationMetrics,
+        peer_store_handle: Arc<dyn PeerStoreProvider>,
+    ) -> (Self, Net::NotificationProtocolConfig) {
+        let genesis_hash = genesis_hash.as_ref();
+        let protocol_name: ProtocolName = if let Some(fork_id) = fork_id {
+            format!(
+                "/{}/{}/{}",
+                array_bytes::bytes2hex("", genesis_hash),
+                fork_id,
+                NAME,
+            )
+        } else {
+            format!("/{}/{}", array_bytes::bytes2hex("", genesis_hash), NAME)
+        }
+        .into();
+        let (config, notification_service) = Net::notification_config(
+            protocol_name.clone(),
+            vec![format!("/{}/{}", array_bytes::bytes2hex("", genesis_hash), NAME).into()],
+            MAX_GOSSIP_SIZE,
+            None,
+            // Default config, allowing some non-reserved nodes to connect
+            SetConfig::default(),
+            metrics,
+            peer_store_handle,
+        );
+
+        (
+            Self {
+                notification_service,
+            },
+            config,
+        )
+    }
+}
+
+/// Peer information
+#[derive(Debug)]
+struct Peer {
+    /// Holds a set of transactions known to this peer.
+    known_peering: Option<Peering>,
+    sent_peering: bool,
+}
+
+#[derive(Encode, Decode, Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
+pub struct DuniterEndpoint {
+    /// The name of the endpoint (e.g. "rpc" or "squid") are well-known names
+    pub protocol: String,
+    /// The endpoint itself (e.g. "squid.example.com/v1/graphql")
+    pub address: String,
+}
+
+pub type DuniterEndpoints = BoundedVec<DuniterEndpoint, ConstU32<10>>;
+
+#[derive(Encode, Decode, Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
+pub struct Peering {
+    pub endpoints: DuniterEndpoints,
+}
diff --git a/node/src/endpoint_gossip/rpc/api.rs b/node/src/endpoint_gossip/rpc/api.rs
new file mode 100644
index 000000000..e459c4d25
--- /dev/null
+++ b/node/src/endpoint_gossip/rpc/api.rs
@@ -0,0 +1,38 @@
+//! # Duniter Peering RPC API
+//!
+//! Exposes the `duniter_peerings` RPC method.
+
+use crate::endpoint_gossip::rpc::{data::DuniterPeeringsData, state::DuniterPeeringsState};
+use jsonrpsee::{core::async_trait, proc_macros::rpc, Extensions};
+use sc_consensus_babe_rpc::Error;
+
+/// The exposed RPC methods
+#[rpc(client, server)]
+pub trait DuniterPeeringRpcApi {
+    /// Returns the known peerings list received by network gossips
+    #[method(name = "duniter_peerings", with_extensions)]
+    async fn duniter_peerings(&self) -> Result<Option<DuniterPeeringsData>, Error>;
+}
+
+/// API implementation
+pub struct DuniterPeeringRpcApiImpl {
+    shared_peer_state: DuniterPeeringsState,
+}
+
+impl DuniterPeeringRpcApiImpl {
+    /// Creates a new instance of the Duniter Peering Rpc handler.
+    pub fn new(shared_peer_state: DuniterPeeringsState) -> Self {
+        Self { shared_peer_state }
+    }
+}
+
+#[async_trait]
+impl DuniterPeeringRpcApiServer for DuniterPeeringRpcApiImpl {
+    async fn duniter_peerings(
+        &self,
+        _ext: &Extensions,
+    ) -> Result<Option<DuniterPeeringsData>, Error> {
+        let option = self.shared_peer_state.peer_state();
+        Ok(option)
+    }
+}
diff --git a/node/src/endpoint_gossip/rpc/data.rs b/node/src/endpoint_gossip/rpc/data.rs
new file mode 100644
index 000000000..08c86b16c
--- /dev/null
+++ b/node/src/endpoint_gossip/rpc/data.rs
@@ -0,0 +1,9 @@
+use crate::endpoint_gossip::rpc::state::PeeringWithId;
+use jsonrpsee::core::Serialize;
+use serde::Deserialize;
+
+#[derive(PartialEq, Eq, Clone, Serialize, Deserialize)]
+#[cfg_attr(test, derive(Debug))]
+pub struct DuniterPeeringsData {
+    pub peerings: Vec<PeeringWithId>,
+}
diff --git a/node/src/endpoint_gossip/rpc/mod.rs b/node/src/endpoint_gossip/rpc/mod.rs
new file mode 100644
index 000000000..0b033946e
--- /dev/null
+++ b/node/src/endpoint_gossip/rpc/mod.rs
@@ -0,0 +1,43 @@
+//! # RPC for peering
+//!
+//! This module gathers all known peering documents for connected peers in memory and provides
+//! an RPC interface to query them.
+//!
+//! ## RPC methods
+//!
+//! Currently, only one RPC method is available to query the currently known peerings.
+//! In the future, the RPC interface could add methods to dynamically change the current node's peering
+//! without restarting the node.
+//!
+//! ### `duniter_peerings`
+//!
+//! Returns the known peerings list received by network gossips.
+//!
+//! ```json
+//! {
+//!     "jsonrpc": "2.0",
+//!     "id": 0,
+//!     "result": {
+//!         "peers": [
+//!             {
+//!                 "endpoints": [
+//!                     "/rpc/wss://gdev.example.com",
+//!                     "/squid/https://squid.gdev.gyroi.de/v1/graphql"
+//!                 ]
+//!             },
+//!             {
+//!                 "endpoints": [
+//!                     "/rpc/ws://gdev.example.com:9944"
+//!                 ]
+//!             }
+//!         ]
+//!     }
+//! }
+//! ```
+//!
+pub mod api;
+pub mod data;
+pub mod state;
+
+#[cfg(test)]
+mod tests;
diff --git a/node/src/endpoint_gossip/rpc/state.rs b/node/src/endpoint_gossip/rpc/state.rs
new file mode 100644
index 000000000..b9d69c1f4
--- /dev/null
+++ b/node/src/endpoint_gossip/rpc/state.rs
@@ -0,0 +1,77 @@
+use crate::endpoint_gossip::{
+    handler::DuniterPeeringEvent, rpc::data::DuniterPeeringsData, DuniterEndpoints,
+};
+use codec::{Decode, Encode};
+use futures::StreamExt;
+use jsonrpsee::core::Serialize;
+use parking_lot::RwLock;
+use sc_utils::mpsc::{tracing_unbounded, TracingUnboundedSender};
+use serde::Deserialize;
+use std::sync::Arc;
+
+/// A struct to hold a peer endpoints along with its id for RPC exposure.
+#[derive(Encode, Decode, Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
+pub struct PeeringWithId {
+    pub peer_id: String,
+    pub endpoints: DuniterEndpoints,
+}
+
+#[derive(Clone)]
+pub struct DuniterPeeringsState {
+    inner: Arc<RwLock<Option<Box<DuniterPeeringsData>>>>,
+}
+
+/// Dummy CRUD operations for the state to be exposed, plus a listening sink to be notified of
+/// network events and automatically insert/remove peers from the state.
+impl DuniterPeeringsState {
+    pub fn empty() -> Self {
+        Self {
+            inner: Arc::new(RwLock::new(Some(Box::new(DuniterPeeringsData {
+                peerings: Vec::new(),
+            })))),
+        }
+    }
+
+    pub fn insert(&self, peering: PeeringWithId) -> &Self {
+        if let Some(vs) = self.inner.write().as_mut() {
+            vs.peerings.push(peering);
+        }
+        self
+    }
+
+    pub fn remove(&self, peer_id: String) -> &Self {
+        if let Some(vs) = self.inner.write().as_mut() {
+            vs.peerings.retain(|p| p.peer_id != peer_id);
+        }
+        self
+    }
+
+    pub fn peer_state(&self) -> Option<DuniterPeeringsData> {
+        self.inner.read().as_ref().map(|vs| vs.as_ref().clone())
+    }
+
+    /// Creates a channel for binding to the network events.
+    pub fn listen(&self) -> TracingUnboundedSender<DuniterPeeringEvent> {
+        let (sink, stream) = tracing_unbounded("mpsc_duniter_peering_rpc_stream", 1_000);
+        let state = self.clone();
+        tokio::spawn(async move {
+            stream
+                .for_each(|event| async {
+                    match event {
+                        DuniterPeeringEvent::GoodPeering(who, peering) => {
+                            state.insert(PeeringWithId {
+                                peer_id: who.to_base58(),
+                                endpoints: peering.endpoints,
+                            });
+                        }
+                        DuniterPeeringEvent::StreamClosed(who) => {
+                            state.remove(who.to_base58());
+                        }
+                        _ => {}
+                    }
+                })
+                .await
+        });
+        sink
+    }
+}
diff --git a/node/src/endpoint_gossip/rpc/tests.rs b/node/src/endpoint_gossip/rpc/tests.rs
new file mode 100644
index 000000000..258c5882f
--- /dev/null
+++ b/node/src/endpoint_gossip/rpc/tests.rs
@@ -0,0 +1,64 @@
+use crate::endpoint_gossip::{
+    rpc::{
+        api::{DuniterPeeringRpcApiImpl, DuniterPeeringRpcApiServer},
+        state::{DuniterPeeringsState, PeeringWithId},
+    },
+    well_known_endpoint_types::{RPC, SQUID},
+    DuniterEndpoint, DuniterEndpoints,
+};
+use jsonrpsee::RpcModule;
+
+#[tokio::test]
+async fn empty_peers_rpc_handler() {
+    let rpc = setup_io_handler();
+    let expected_response = r#"{"jsonrpc":"2.0","id":0,"result":{"peerings":[]}}"#.to_string();
+    let request = r#"{"jsonrpc":"2.0","method":"duniter_peerings","params":[],"id":0}"#;
+    let (response, _) = rpc.raw_json_request(request, 1).await.unwrap();
+
+    assert_eq!(expected_response, response);
+}
+
+#[tokio::test]
+async fn expose_known_peers() {
+    let rpc = setup_new_rpc_with_initial_peerings(vec![
+        PeeringWithId {
+            peer_id: "12D3KooWRkDXunbB64VegYPCQaitcgtdtEtbsbd7f19nsS7aMjDp".into(),
+            endpoints: DuniterEndpoints::truncate_from(vec![
+                DuniterEndpoint {
+                    protocol: RPC.into(),
+                    address: "/rpc/wss://gdev.example.com".into(),
+                },
+                DuniterEndpoint {
+                    protocol: SQUID.into(),
+                    address: "/squid/https://squid.gdev.gyroi.de/v1/graphql".into(),
+                },
+            ]),
+        },
+        PeeringWithId {
+            peer_id: "12D3KooWFiUBo3Kjiryvrpz8b3kfNVk7baezhab7SHdfafgY7nmN".into(),
+            endpoints: DuniterEndpoints::truncate_from(vec![DuniterEndpoint {
+                protocol: RPC.into(),
+                address: "/rpc/ws://gdev.example.com:9944".into(),
+            }]),
+        },
+    ]);
+    let expected_response = r#"{"jsonrpc":"2.0","id":0,"result":{"peerings":[{"peer_id":"12D3KooWRkDXunbB64VegYPCQaitcgtdtEtbsbd7f19nsS7aMjDp","endpoints":[{"protocol":"rpc","address":"/rpc/wss://gdev.example.com"},{"protocol":"squid","address":"/squid/https://squid.gdev.gyroi.de/v1/graphql"}]},{"peer_id":"12D3KooWFiUBo3Kjiryvrpz8b3kfNVk7baezhab7SHdfafgY7nmN","endpoints":[{"protocol":"rpc","address":"/rpc/ws://gdev.example.com:9944"}]}]}}"#.to_string();
+    let request = r#"{"jsonrpc":"2.0","method":"duniter_peerings","params":[],"id":0}"#;
+    let (response, _) = rpc.raw_json_request(request, 1).await.unwrap();
+
+    assert_eq!(expected_response, response);
+}
+
+fn setup_io_handler() -> RpcModule<DuniterPeeringRpcApiImpl> {
+    DuniterPeeringRpcApiImpl::new(DuniterPeeringsState::empty()).into_rpc()
+}
+
+fn setup_new_rpc_with_initial_peerings(
+    peers: Vec<PeeringWithId>,
+) -> RpcModule<DuniterPeeringRpcApiImpl> {
+    let state = DuniterPeeringsState::empty();
+    for peer in peers {
+        state.insert(peer);
+    }
+    DuniterPeeringRpcApiImpl::new(state).into_rpc()
+}
diff --git a/node/src/endpoint_gossip/tests.rs b/node/src/endpoint_gossip/tests.rs
new file mode 100644
index 000000000..454c0bc6b
--- /dev/null
+++ b/node/src/endpoint_gossip/tests.rs
@@ -0,0 +1,350 @@
+use crate::{
+    endpoint_gossip,
+    endpoint_gossip::{
+        duniter_peering_protocol_name,
+        handler::{DuniterPeeringCommand, DuniterPeeringEvent},
+        well_known_endpoint_types::RPC,
+        DuniterEndpoint, DuniterEndpoints, Peering,
+    },
+};
+use async_channel::Receiver;
+use futures::{future, stream, FutureExt, StreamExt};
+use log::{debug, warn};
+use parking_lot::Mutex;
+use sc_consensus::{
+    BlockCheckParams, BlockImport, BlockImportParams, BoxJustificationImport, ImportResult,
+    ImportedAux,
+};
+use sc_network::{NetworkStateInfo, ObservedRole, PeerId};
+use sc_network_test::{
+    Block, BlockImportAdapter, FullPeerConfig, PassThroughVerifier, PeersClient, TestNetFactory,
+};
+use sc_utils::mpsc::{tracing_unbounded, TracingUnboundedSender};
+use sp_api::__private::BlockT;
+use sp_consensus::Error as ConsensusError;
+use sp_runtime::traits::Header;
+use std::{future::Future, pin::pin, sync::Arc, task::Poll, time::Duration};
+
+#[tokio::test]
+async fn peering_is_forwarded_and_only_once_per_connection() {
+    let _ = env_logger::try_init();
+    let authorities_count = 3;
+    let full_count = 1;
+    let total_peers = authorities_count + full_count;
+    let mut net = DuniterPeeringTestNet::new(authorities_count, full_count);
+    tokio::spawn(start_network(&mut net, total_peers));
+    let net = Arc::new(Mutex::new(net));
+
+    // make sure the network is ready (each peering is received by all other peers)
+    let wait_for_all_peering_notifications =
+        watch_events_and_wait_for_all_peerings(total_peers, &net);
+    let wait_for = futures::future::join_all(wait_for_all_peering_notifications).map(|_| ());
+    tokio::time::timeout(Duration::from_secs(5), run_until_complete(wait_for, &net))
+        .await
+        .unwrap();
+
+    // rule: only one peering is accepted per connection (disconnecting/restarting allows to change the peering value)
+    let already_received = ensure_only_one_peering_is_accepted(&net);
+    tokio::time::timeout(
+        Duration::from_secs(5),
+        run_until_complete(already_received, &net),
+    )
+    .await
+    .unwrap();
+}
+
+fn ensure_only_one_peering_is_accepted(
+    net: &Arc<Mutex<DuniterPeeringTestNet>>,
+) -> impl Future<Output = ()> {
+    let command_0 = net.lock().peer_commands[0].clone();
+    let peer_id_0 = net.lock().peer_ids[0];
+    let peer_id_1 = net.lock().peer_ids[1];
+    let stream_1 = net.lock().peer_streams[1].clone();
+    let already_received = async move {
+        let mut stream1 = pin!(stream_1);
+        while let Some(event) = stream1.next().await {
+            if let DuniterPeeringEvent::AlreadyReceivedPeering(peer) = event {
+                if peer == peer_id_0 {
+                    // We did receive the peering from peer 0
+                    break;
+                }
+            }
+        }
+    };
+    let already_received = futures::future::join_all(vec![already_received]).map(|_| ());
+    command_0
+        .unbounded_send(DuniterPeeringCommand::SendPeering(
+            peer_id_1,
+            Peering {
+                endpoints: DuniterEndpoints::truncate_from(vec![DuniterEndpoint {
+                    protocol: RPC.into(),
+                    address: "gdev.example.com:9944".into(),
+                }]),
+            },
+        ))
+        .unwrap();
+    already_received
+}
+
+fn watch_events_and_wait_for_all_peerings(
+    total_peers: usize,
+    net: &Arc<Mutex<DuniterPeeringTestNet>>,
+) -> Vec<impl Future<Output = ()> + Sized> {
+    let mut peering_notifications = Vec::new();
+
+    for peer_id in 0..total_peers {
+        let local_peer_id = net.lock().peer_ids[peer_id];
+        let stream = net.lock().peer_streams[peer_id].clone();
+        peering_notifications.push(async move {
+            let mut identified = 0;
+            let mut stream = pin!(stream);
+            while let Some(event) = stream.next().await {
+                debug_event(event.clone(), local_peer_id);
+                if let DuniterPeeringEvent::GoodPeering(peer, _) = event {
+                    debug!(target: "duniter-libp2p", "[{}] Received peering from {}",local_peer_id, peer);
+                    identified += 1;
+                    if identified == (total_peers - 1) {
+                        // all peers identified
+                        break;
+                    }
+                }
+            }
+            warn!("All peers sent their peering");
+        })
+    }
+    peering_notifications
+}
+
+fn debug_event(event: DuniterPeeringEvent, local_peer_id: PeerId) {
+    match event {
+        DuniterPeeringEvent::StreamOpened(peer, role) => {
+            debug!(target: "duniter-libp2p", "[{}] Peer {peer} connected with role {}", local_peer_id, observed_role_to_str(role));
+        }
+        DuniterPeeringEvent::StreamValidation(peer, result) => {
+            debug!(target: "duniter-libp2p", "[{}] Validating inbound substream from {peer} with result {}", local_peer_id, result);
+        }
+        DuniterPeeringEvent::StreamClosed(peer) => {
+            debug!(target: "duniter-libp2p", "[{}] Peer {peer} disconnected", local_peer_id);
+        }
+        DuniterPeeringEvent::GossipReceived(peer, success) => {
+            if success {
+                debug!(target: "duniter-libp2p", "[{}] Received peering message from {peer}", local_peer_id);
+            } else {
+                debug!(target: "duniter-libp2p", "[{}] Failed to receive peering message from {peer}", local_peer_id);
+            }
+        }
+        DuniterPeeringEvent::GoodPeering(peer, _) => {
+            debug!(target: "duniter-libp2p", "[{}] Received peering from {}", local_peer_id, peer);
+        }
+        DuniterPeeringEvent::AlreadyReceivedPeering(peer) => {
+            debug!(target: "duniter-libp2p", "[{}] Already received peering from {}", local_peer_id, peer);
+            panic!("Received peering from the same peer twice");
+        }
+        DuniterPeeringEvent::SelfPeeringPropagationFailed(peer, _peering, e) => {
+            debug!(target: "duniter-libp2p", "[{}] Failed to propagate self peering to {}: {}", local_peer_id, peer, e);
+            panic!("Failed to propagate self peering");
+        }
+        DuniterPeeringEvent::SelfPeeringPropagationSuccess(peer, _peering) => {
+            debug!(target: "duniter-libp2p", "[{}] Successfully propagated self peering to {}", local_peer_id, peer);
+        }
+    }
+}
+
+fn observed_role_to_str(role: ObservedRole) -> &'static str {
+    match role {
+        ObservedRole::Authority => "Authority",
+        ObservedRole::Full => "Full",
+        ObservedRole::Light => "Light",
+    }
+}
+
+// Spawns duniter nodes. Returns a future to spawn on the runtime.
+fn start_network(net: &mut DuniterPeeringTestNet, peers: usize) -> impl Future<Output = ()> {
+    let nodes = stream::FuturesUnordered::new();
+
+    for peer_id in 0..peers {
+        let net_service = net.peers[peer_id].network_service().clone();
+        net.peer_ids.push(net_service.local_peer_id());
+        let notification_service = net.peers[peer_id]
+            .take_notification_service(&format!("/{}", duniter_peering_protocol_name::NAME).into())
+            .unwrap();
+
+        let (rpc_sink, mut stream_unbounded) =
+            tracing_unbounded("mpsc_duniter_gossip_peering_test", 100_000);
+        let (sink_unbounded, stream) = async_channel::unbounded();
+        let (command_tx, command_rx) =
+            tracing_unbounded("mpsc_duniter_gossip_peering_test_command", 100_000);
+
+        // mapping from mpsc TracingUnboundedReceiver to mpmc Receiver
+        tokio::spawn(async move {
+            // forward the event
+            while let Some(command) = stream_unbounded.next().await {
+                sink_unbounded.send(command).await.unwrap();
+            }
+        });
+
+        let handler = endpoint_gossip::handler::build::<Block, _>(
+            notification_service,
+            net_service,
+            rpc_sink,
+            Some(command_rx),
+            DuniterEndpoints::new(),
+        );
+        // To send external commands to the handler (for tests or RPC commands).
+        net.peer_streams.push(stream);
+        net.peer_commands.push(command_tx);
+        let node = handler.run();
+
+        fn assert_send<T: Send>(_: &T) {}
+        assert_send(&node);
+
+        nodes.push(node);
+    }
+
+    nodes.for_each(|_| async move {})
+}
+
+#[derive(Default)]
+struct DuniterPeeringTestNet {
+    // Peers
+    peers: Vec<DuniterPeeringPeer>,
+    // IDs of the peers
+    peer_ids: Vec<PeerId>,
+    // RX of the gossip events
+    peer_streams: Vec<Receiver<DuniterPeeringEvent>>,
+    // TX to drive the handler (for tests or configuration)
+    peer_commands: Vec<TracingUnboundedSender<DuniterPeeringCommand>>,
+}
+
+type DuniterPeeringPeer = sc_network_test::Peer<PeerData, DuniterTestBlockImport>;
+
+impl DuniterPeeringTestNet {
+    fn new(n_authority: usize, n_full: usize) -> Self {
+        let mut net = DuniterPeeringTestNet {
+            peers: Vec::with_capacity(n_authority + n_full),
+            peer_ids: Vec::new(),
+            peer_streams: Vec::new(),
+            peer_commands: Vec::new(),
+        };
+
+        for _ in 0..n_authority {
+            net.add_authority_peer();
+        }
+
+        for _ in 0..n_full {
+            net.add_full_peer();
+        }
+
+        net
+    }
+
+    fn add_authority_peer(&mut self) {
+        self.add_full_peer_with_config(FullPeerConfig {
+            notifications_protocols: vec![
+                format!("/{}", duniter_peering_protocol_name::NAME).into()
+            ],
+            is_authority: true,
+            ..Default::default()
+        })
+    }
+}
+
+#[derive(Default)]
+struct PeerData;
+
+impl TestNetFactory for DuniterPeeringTestNet {
+    type BlockImport = DuniterTestBlockImport;
+    type PeerData = PeerData;
+    type Verifier = PassThroughVerifier;
+
+    fn make_verifier(&self, _client: PeersClient, _: &PeerData) -> Self::Verifier {
+        PassThroughVerifier::new(false) // use non-instant finality.
+    }
+
+    fn peer(&mut self, i: usize) -> &mut DuniterPeeringPeer {
+        &mut self.peers[i]
+    }
+
+    fn peers(&self) -> &Vec<DuniterPeeringPeer> {
+        &self.peers
+    }
+
+    fn peers_mut(&mut self) -> &mut Vec<DuniterPeeringPeer> {
+        &mut self.peers
+    }
+
+    fn mut_peers<F: FnOnce(&mut Vec<DuniterPeeringPeer>)>(&mut self, closure: F) {
+        closure(&mut self.peers);
+    }
+
+    fn make_block_import(
+        &self,
+        _client: PeersClient,
+    ) -> (
+        BlockImportAdapter<Self::BlockImport>,
+        Option<BoxJustificationImport<Block>>,
+        Self::PeerData,
+    ) {
+        (
+            BlockImportAdapter::new(DuniterTestBlockImport),
+            None,
+            PeerData,
+        )
+    }
+
+    fn add_full_peer(&mut self) {
+        self.add_full_peer_with_config(FullPeerConfig {
+            notifications_protocols: vec![
+                format!("/{}", duniter_peering_protocol_name::NAME).into()
+            ],
+            is_authority: false,
+            ..Default::default()
+        })
+    }
+}
+
+async fn run_until_complete(future: impl Future + Unpin, net: &Arc<Mutex<DuniterPeeringTestNet>>) {
+    let drive_to_completion = futures::future::poll_fn(|cx| {
+        net.lock().poll(cx);
+        Poll::<()>::Pending
+    });
+    future::select(future, drive_to_completion).await;
+}
+
+#[derive(Clone)]
+struct DuniterTestBlockImport;
+
+/// Inspired by GrandpaBlockImport
+#[async_trait::async_trait]
+impl<Block: BlockT> BlockImport<Block> for DuniterTestBlockImport {
+    type Error = ConsensusError;
+
+    /// Fake check block, always succeeds.
+    async fn check_block(
+        &self,
+        _block: BlockCheckParams<Block>,
+    ) -> Result<ImportResult, Self::Error> {
+        Ok(ImportResult::Imported(ImportedAux {
+            is_new_best: true,
+            bad_justification: false,
+            clear_justification_requests: false,
+            header_only: false,
+            needs_justification: false,
+        }))
+    }
+
+    /// Fake import block, always succeeds.
+    async fn import_block(
+        &self,
+        block: BlockImportParams<Block>,
+    ) -> Result<ImportResult, Self::Error> {
+        debug!("Importing block #{}", block.header.number());
+        Ok(ImportResult::Imported(ImportedAux {
+            is_new_best: true,
+            bad_justification: false,
+            clear_justification_requests: false,
+            header_only: false,
+            needs_justification: false,
+        }))
+    }
+}
diff --git a/node/src/endpoint_gossip/types/mod.rs b/node/src/endpoint_gossip/types/mod.rs
new file mode 100644
index 000000000..a82ab6544
--- /dev/null
+++ b/node/src/endpoint_gossip/types/mod.rs
@@ -0,0 +1 @@
+pub mod validation_result;
diff --git a/node/src/endpoint_gossip/types/validation_result.rs b/node/src/endpoint_gossip/types/validation_result.rs
new file mode 100644
index 000000000..0ffcee299
--- /dev/null
+++ b/node/src/endpoint_gossip/types/validation_result.rs
@@ -0,0 +1,39 @@
+use sc_network::service::traits::ValidationResult;
+use std::fmt::Display;
+
+/// Clonable version of sc_network::service::traits::ValidationResult
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub enum DuniterStreamValidationResult {
+    /// Accept inbound substream.
+    Accept,
+
+    /// Reject inbound substream.
+    Reject,
+}
+
+impl Display for DuniterStreamValidationResult {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            DuniterStreamValidationResult::Accept => write!(f, "Accept"),
+            DuniterStreamValidationResult::Reject => write!(f, "Reject"),
+        }
+    }
+}
+
+impl From<ValidationResult> for DuniterStreamValidationResult {
+    fn from(result: ValidationResult) -> Self {
+        match result {
+            ValidationResult::Accept => DuniterStreamValidationResult::Accept,
+            ValidationResult::Reject => DuniterStreamValidationResult::Reject,
+        }
+    }
+}
+
+impl From<DuniterStreamValidationResult> for ValidationResult {
+    fn from(result: DuniterStreamValidationResult) -> Self {
+        match result {
+            DuniterStreamValidationResult::Accept => ValidationResult::Accept,
+            DuniterStreamValidationResult::Reject => ValidationResult::Reject,
+        }
+    }
+}
diff --git a/node/src/lib.rs b/node/src/lib.rs
index 2e5574300..be194b480 100644
--- a/node/src/lib.rs
+++ b/node/src/lib.rs
@@ -65,5 +65,6 @@
 pub mod chain_spec;
 pub mod cli;
 pub mod command;
+pub mod endpoint_gossip;
 pub mod rpc;
 pub mod service;
diff --git a/node/src/main.rs b/node/src/main.rs
index f27af66f7..90e8eaff0 100644
--- a/node/src/main.rs
+++ b/node/src/main.rs
@@ -24,6 +24,7 @@ mod chain_spec;
 mod service;
 pub(crate) mod cli;
 mod command;
+mod endpoint_gossip;
 mod rpc;
 
 fn main() -> sc_cli::Result<()> {
diff --git a/node/src/rpc.rs b/node/src/rpc.rs
index 2b05e5b5f..4bda3af5b 100644
--- a/node/src/rpc.rs
+++ b/node/src/rpc.rs
@@ -22,6 +22,7 @@
 
 #![warn(missing_docs)]
 
+use crate::endpoint_gossip::rpc::{api::DuniterPeeringRpcApiServer, state::DuniterPeeringsState};
 use common_runtime::{AccountId, Balance, Block, BlockNumber, Hash, Index};
 use jsonrpsee::RpcModule;
 use sc_consensus_babe::{BabeApi, BabeWorkerHandle};
@@ -61,6 +62,13 @@ pub struct GrandpaDeps<B> {
     pub finality_provider: Arc<FinalityProofProvider<B, Block>>,
 }
 
+/// Dependencies for DuniterPeering
+#[derive(Clone)]
+pub struct DuniterPeeringRpcModuleDeps {
+    /// The state of the DuniterPeering RPC module which will be exposed.
+    pub state: DuniterPeeringsState,
+}
+
 /// Full client dependencies.
 pub struct FullDeps<C, P, SC, B> {
     /// The client instance to use.
@@ -77,6 +85,8 @@ pub struct FullDeps<C, P, SC, B> {
     pub babe: Option<BabeDeps>,
     /// GRANDPA specific dependencies.
     pub grandpa: GrandpaDeps<B>,
+    /// DuniterPeering specific dependencies.
+    pub duniter_peering: DuniterPeeringRpcModuleDeps,
 }
 
 /// Instantiate all full RPC extensions.
@@ -109,6 +119,7 @@ where
         command_sink_opt,
         babe,
         grandpa,
+        duniter_peering: endpoint_gossip,
     } = deps;
 
     if let Some(babe) = babe {
@@ -140,7 +151,7 @@ where
     )?;
 
     module.merge(System::new(client.clone(), pool).into_rpc())?;
-    module.merge(TransactionPayment::new(client).into_rpc())?;
+    module.merge(TransactionPayment::new(client.clone()).into_rpc())?;
     if let Some(command_sink) = command_sink_opt {
         // We provide the rpc handler with the sending end of the channel to allow the rpc
         // send EngineCommands to the background block authorship task.
@@ -151,6 +162,10 @@ where
     // `YourRpcStruct` should have a reference to a client, which is needed
     // to call into the runtime.
     // `module.merge(YourRpcTrait::into_rpc(YourRpcStruct::new(ReferenceToClient, ...)))?;`
+    module.merge(
+        crate::endpoint_gossip::rpc::api::DuniterPeeringRpcApiImpl::new(endpoint_gossip.state)
+            .into_rpc(),
+    )?;
 
     Ok(module)
 }
diff --git a/node/src/service.rs b/node/src/service.rs
index c28febc73..35d0a8857 100644
--- a/node/src/service.rs
+++ b/node/src/service.rs
@@ -19,9 +19,18 @@
 pub mod client;
 
 use self::client::{Client, ClientHandle, RuntimeApiCollection};
+use crate::{
+    endpoint_gossip::{
+        rpc::state::DuniterPeeringsState,
+        well_known_endpoint_types::{RPC, SQUID},
+        DuniterEndpoint, DuniterEndpoints, Peering,
+    },
+    rpc::DuniterPeeringRpcModuleDeps,
+};
 use async_io::Timer;
 use common_runtime::Block;
 use futures::{Stream, StreamExt};
+use log::error;
 use sc_client_api::{client::BlockBackend, Backend};
 use sc_consensus_grandpa::{FinalityProofProvider, SharedVoterState};
 use sc_consensus_manual_seal::{run_manual_seal, EngineCommand, ManualSealParams};
@@ -34,7 +43,7 @@ use sc_transaction_pool_api::TransactionPool;
 use sp_consensus_babe::inherents::InherentDataProvider;
 use sp_core::H256;
 use sp_runtime::traits::BlakeTwo256;
-use std::{sync::Arc, time::Duration};
+use std::{fs, sync::Arc, time::Duration};
 
 #[cfg(not(feature = "runtime-benchmarks"))]
 type HostFunctions = sp_io::SubstrateHostFunctions;
@@ -119,15 +128,19 @@ pub fn new_chain_ops(
     ),
     ServiceError,
 > {
-    let PartialComponents {
-        client,
-        backend,
-        import_queue,
-        task_manager,
-        ..
-    } = new_partial::<runtime_executor::runtime::RuntimeApi, runtime_executor::Executor>(
+    let (
+        PartialComponents {
+            client,
+            backend,
+            import_queue,
+            task_manager,
+            ..
+        },
+        _duniter_config,
+    ) = new_partial::<runtime_executor::runtime::RuntimeApi, runtime_executor::Executor>(
         config,
         manual_consensus,
+        Default::default(),
     )?;
     Ok((
         Arc::new(Client::Client(client)),
@@ -148,29 +161,33 @@ type FullGrandpaBlockImport<RuntimeApi, Executor> = sc_consensus_grandpa::Grandp
 pub fn new_partial<RuntimeApi, Executor>(
     config: &Configuration,
     consensus_manual: bool,
+    duniter_options: crate::cli::DuniterConfigExtension,
 ) -> Result<
-    sc_service::PartialComponents<
-        FullClient<RuntimeApi, Executor>,
-        FullBackend,
-        FullSelectChain,
-        sc_consensus::DefaultImportQueue<Block>,
-        sc_transaction_pool::TransactionPoolWrapper<Block, FullClient<RuntimeApi, Executor>>,
-        (
-            sc_consensus_babe::BabeBlockImport<
-                Block,
-                FullClient<RuntimeApi, Executor>,
-                FullGrandpaBlockImport<RuntimeApi, Executor>,
-            >,
-            sc_consensus_babe::BabeLink<Block>,
-            Option<sc_consensus_babe::BabeWorkerHandle<Block>>,
-            sc_consensus_grandpa::LinkHalf<
-                Block,
-                FullClient<RuntimeApi, Executor>,
-                FullSelectChain,
-            >,
-            Option<Telemetry>,
-        ),
-    >,
+    (
+        sc_service::PartialComponents<
+            FullClient<RuntimeApi, Executor>,
+            FullBackend,
+            FullSelectChain,
+            sc_consensus::DefaultImportQueue<Block>,
+            sc_transaction_pool::TransactionPoolWrapper<Block, FullClient<RuntimeApi, Executor>>,
+            (
+                sc_consensus_babe::BabeBlockImport<
+                    Block,
+                    FullClient<RuntimeApi, Executor>,
+                    FullGrandpaBlockImport<RuntimeApi, Executor>,
+                >,
+                sc_consensus_babe::BabeLink<Block>,
+                Option<sc_consensus_babe::BabeWorkerHandle<Block>>,
+                sc_consensus_grandpa::LinkHalf<
+                    Block,
+                    FullClient<RuntimeApi, Executor>,
+                    FullSelectChain,
+                >,
+                Option<Telemetry>,
+            ),
+        >,
+        crate::cli::DuniterConfigExtension,
+    ),
     ServiceError,
 >
 where
@@ -281,22 +298,25 @@ where
         (queue, Some(handle))
     };
 
-    Ok(sc_service::PartialComponents {
-        client,
-        backend,
-        task_manager,
-        import_queue,
-        keystore_container,
-        select_chain,
-        transaction_pool,
-        other: (
-            babe_block_import,
-            babe_link,
-            babe_worker_handle,
-            grandpa_link,
-            telemetry,
-        ),
-    })
+    Ok((
+        sc_service::PartialComponents {
+            client,
+            backend,
+            task_manager,
+            import_queue,
+            keystore_container,
+            select_chain,
+            transaction_pool,
+            other: (
+                babe_block_import,
+                babe_link,
+                babe_worker_handle,
+                grandpa_link,
+                telemetry,
+            ),
+        },
+        duniter_options,
+    ))
 }
 
 /// Builds a new service for a full client.
@@ -307,6 +327,7 @@ pub fn new_full<
 >(
     config: Configuration,
     sealing: crate::cli::Sealing,
+    duniter_options: crate::cli::DuniterConfigExtension,
 ) -> Result<TaskManager, ServiceError>
 where
     RuntimeApi: sp_api::ConstructRuntimeApi<Block, FullClient<RuntimeApi, Executor>>
@@ -317,26 +338,32 @@ where
     Executor: sc_executor::NativeExecutionDispatch + 'static,
     Executor: sc_executor::sp_wasm_interface::HostFunctions + 'static,
 {
-    let sc_service::PartialComponents {
-        client,
-        backend,
-        mut task_manager,
-        import_queue,
-        keystore_container,
-        select_chain,
-        transaction_pool,
-        other: (block_import, babe_link, babe_worker_handle, grandpa_link, mut telemetry),
-    } = new_partial::<RuntimeApi, Executor>(&config, sealing.is_manual_consensus())?;
-
-    let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name(
-        &client
-            .block_hash(0)
-            .ok()
-            .flatten()
-            .expect("Genesis block exists; qed"),
-        &config.chain_spec,
-    );
+    let (
+        sc_service::PartialComponents {
+            client,
+            backend,
+            mut task_manager,
+            import_queue,
+            keystore_container,
+            select_chain,
+            transaction_pool,
+            other: (block_import, babe_link, babe_worker_handle, grandpa_link, mut telemetry),
+        },
+        duniter_options,
+    ) = new_partial::<RuntimeApi, Executor>(
+        &config,
+        sealing.is_manual_consensus(),
+        duniter_options,
+    )?;
+
+    // genesis hash used in protocol names
+    let genesis_hash = client
+        .block_hash(0)
+        .ok()
+        .flatten()
+        .expect("Genesis block exists; qed");
 
+    // shared network config
     let mut net_config = sc_network::config::FullNetworkConfiguration::<
         Block,
         <Block as sp_runtime::traits::Block>::Hash,
@@ -344,20 +371,35 @@ where
     >::new(&config.network, config.prometheus_registry().cloned());
     let metrics = N::register_notification_metrics(config.prometheus_registry());
     let peer_store_handle = net_config.peer_store_handle();
+
+    // grandpa network config
+    let grandpa_protocol_name =
+        sc_consensus_grandpa::protocol_standard_name(&genesis_hash, &config.chain_spec);
     let (grandpa_protocol_config, grandpa_notification_service) =
         sc_consensus_grandpa::grandpa_peers_set_config::<_, N>(
             grandpa_protocol_name.clone(),
             metrics.clone(),
-            peer_store_handle,
+            peer_store_handle.clone(),
         );
     net_config.add_notification_protocol(grandpa_protocol_config);
 
+    let (duniter_peering_params, duniter_peering_config) =
+        crate::endpoint_gossip::DuniterPeeringParams::new::<_, Block, N>(
+            genesis_hash,
+            config.chain_spec.fork_id(),
+            metrics.clone(),
+            Arc::clone(&peer_store_handle),
+        );
+    net_config.add_notification_protocol(duniter_peering_config);
+
+    // warp sync network provider
     let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new(
         backend.clone(),
         grandpa_link.shared_authority_set().clone(),
         Vec::default(),
     ));
 
+    // build network service from params
     let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) =
         sc_service::build_network(sc_service::BuildNetworkParams {
             config: &config,
@@ -372,6 +414,7 @@ where
             metrics,
         })?;
 
+    // aliases
     let role = config.role;
     let force_authoring = config.force_authoring;
     let backoff_authoring_blocks: Option<()> = None;
@@ -580,6 +623,7 @@ where
     let shared_voter_state = SharedVoterState::empty();
     let finality_proof_provider =
         FinalityProofProvider::new_for_service(backend.clone(), Some(shared_authority_set.clone()));
+    let shared_duniter_peerings_state = DuniterPeeringsState::empty();
 
     let rpc_extensions_builder = {
         let client = client.clone();
@@ -591,6 +635,7 @@ where
             keystore: keystore.clone(),
         });
         let rpc_setup = shared_voter_state.clone();
+        let state_clone = shared_duniter_peerings_state.clone();
 
         Box::new(
             move |subscription_task_executor: SubscriptionTaskExecutor| {
@@ -601,6 +646,9 @@ where
                     subscription_executor: subscription_task_executor.clone(),
                     finality_provider: finality_proof_provider.clone(),
                 };
+                let endpoint_gossip_deps = DuniterPeeringRpcModuleDeps {
+                    state: state_clone.clone(),
+                };
 
                 let deps = crate::rpc::FullDeps {
                     client: client.clone(),
@@ -608,6 +656,7 @@ where
                     select_chain: select_chain.clone(),
                     babe: babe_deps.clone(),
                     grandpa: grandpa_deps,
+                    duniter_peering: endpoint_gossip_deps,
                     command_sink_opt: command_sink_opt.clone(),
                 };
 
@@ -660,8 +709,8 @@ where
         let grandpa_config = sc_consensus_grandpa::GrandpaParams {
             config: grandpa_config,
             link: grandpa_link,
-            sync: sync_service,
-            network,
+            sync: sync_service.clone(),
+            network: network.clone(),
             voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(),
             prometheus_registry,
             shared_voter_state,
@@ -681,6 +730,53 @@ where
         );
     }
 
+    // Get the endpoint list from file first
+    let mut duniter_endpoints: DuniterEndpoints = match duniter_options.public_endpoints {
+        None => DuniterEndpoints::truncate_from(vec![]),
+        Some(path) => fs::read_to_string(path)
+            .map(|s| {
+                serde_json::from_str::<Peering>(&s).expect("Failed to parse Duniter endpoints")
+            })
+            .map(|p| p.endpoints)
+            .expect("Failed to read Duniter endpoints"),
+    };
+    // Then add through the specific options
+    if let Some(rpc_endoint) = duniter_options.public_rpc {
+        if duniter_endpoints
+            .try_push(DuniterEndpoint {
+                protocol: RPC.into(),
+                address: rpc_endoint,
+            })
+            .is_err()
+        {
+            error!("Could not add RPC endpoint, too much endpoints already");
+        }
+    }
+    if let Some(squid_endoint) = duniter_options.public_squid {
+        if duniter_endpoints
+            .try_push(DuniterEndpoint {
+                protocol: SQUID.into(),
+                address: squid_endoint,
+            })
+            .is_err()
+        {
+            error!("Could not add SQUID endpoint, too much endpoints already");
+        }
+    }
+
+    task_manager.spawn_handle().spawn_blocking(
+        "duniter-endpoint-gossip-handler",
+        Some("networking"),
+        crate::endpoint_gossip::handler::build::<Block, _>(
+            duniter_peering_params.notification_service,
+            network.clone(),
+            shared_duniter_peerings_state.listen(),
+            None, // We don't send command for now
+            duniter_endpoints,
+        )
+        .run(),
+    );
+
     network_starter.start_network();
 
     log::info!("***** Duniter has fully started *****");
-- 
GitLab