This includes:
- mixnet contract cache
- described nodes cache
- nodes annotations cache (performance)
those changes include taking some code developed for the purposes of #6277
* Improve HTTP use of connection pooling (#6375)
* add swap to system resolver instead of fallback (#6376)
* add header tracking outer host name used in stealth requests (#6389)
* Rotate urls on parse failure (#6383)
* Add shared settings for stealth policy across HTTP clients (#6388)
* Better controls for global interaction w/ static DNS (#6374)
* perform KKT/PSQ handshake outside of LPStateMachine
* initiator
* responder
* concurrent test
* remove KTT/PSQ from the LpStateMachine
* adjusted gateway's Handler to accomodate new changes
* filling in placehlders
* fixed imports in nym-kkt crate
* naming
* clippy and moved more placeholder tests
* split up the initiator side of the PSQ
* split up the responder side of the PSQ
* additional helpers
* addressing review comments
* additional tests and explicit Error message
* squashing Lp/ip pool fixes#6412
removed unused imports
gateway probe fixes
PSK injection + test fixes
cleanup minus PSK injection
combine with lp reg
moved authenticator peer registration to centralised location
bugfix: ensure IpPool never allocates gateway ip
ip pool allocation tests
* review fixes
* test fixes
* use x25519 noise key for ktt instead of deriving one from ed25519
* removed client's IpAddr from RegistrationClient constructor
* Adjusted the gateway probe to inject correct lp data
* remove redundant argument from nym-lp-client
* consistent naming for HashFunction variants
* use workspace dep import for nym-kkt-ciphersuite
* struct renaming
* removed x25519 key used within LP mixnet registration
* use Vec<u8> rather than BytesMut for LpAction::DeliverData
* introduced an explicit kind prefix for raw data sent and received within LP
* review nits
* announce KEM key hashes and use generated value within LpStateMachine
* added digest of remote KEM key into LpSession
* changed constructor to LpSession to take explicit key materials for local and remote
this makes it easier to change keys required by each party without having to change all the interfaces everywhere again
* extended the changes to LpStateMachine constructor
* modify the interface to LpRegistrationHandler and LpListener
* gateway probe fixes
* temp nym-lp-client fixes
* review nits
* remove network test
* introduced v2/nym-nodes/described endpoint for returning nodes description alongside LP data
* missed V1 -> V2 description replacements
* removed deprecated call within mix-fetch
* use old v1 call in network stats
* - standardise versions for all nym-sdk workspace dependencies
- prepend sqlx-pool-guard with 'nym-'
* Test remove nym-api from deps
* Add oneliner to client_pool doc comments
* Add note to commented out docs.rs link in sdk
* remove nym-api from script
* add publishing file
* bring non-binary / contract / tools into workspace version
* added more info to publishing.md
* make deps workspace version
* remove uploaded sphinx-types crate from script
* remove erroueously included ignore-defaults
* add zeroise to feature
* chore: Release
* add topology to batch
* more cargo versioning
* more cargo versioning - wasm utils
* more cargo versioning - wasm utils
* Add publish=false to manifest for cargo workspaces / crates.io
publishing exclusion
* remove script now switched to manifest based exclusion
* rename import based on rename of contracts-common dep
* Making workspace versions for publication + removing unnecessary crates
from publication
* Remove OOD info from publishing sdk guide
* rename contract imports + remove package
* temp commit: continuing with removal of path from cargo manifest and
replacing with workspace version import for publication
* continuing with cargo.toml updates
* dryrun only erroring on known version problem crates
* remove old published-crates file
* Minor comment change
* remove default features warning
* Additional info on workspace dep comment re publish list
* Add missing description to cargo.toml
* Fix missing feature flags
* Add missing descriptions
* Fix remaining path import
* Add workspace repo / homepage / documentation links to cargo.toml files
* remove workspace version from excluded crate
* Remove todo descriptions
* Minor comment change
* add homepage etc
* move from bls git import to nym_bls_fork crate
* Modify rest of imports from path to workspace import, excluding binaries
* add directory/homepage info
* fix cargo fmt
* add notes to gitignore
* better solution to contracts/ experiment
* wasm -> nym_wasm crate renaming
* fix fatfinger
* add metadata to ecash cargo.toml
* stub publishing guide
* fix misrevolved netlink- version
* Fixes and block publication of rebase re: LP
* first pass @ workflows
* removed dependency on nymsphinx::* key types and removed needless copies of ed25519 keys
* use more strongly types in ClientHelloData
* explicitly use provided client's x25519 from ClientHelloData
this requires adjusting LpSession constructor to take an additional key argument
* allow large LpInput enum
* clippy within tests
* removed redundant type aliases for x25519 keys
* Upgrade to def_guard_wireguard v0.8.0
* Update nix, netlink-packet-wireguard
* Adapt linux code for defguard_wireguard
* rustfmt
* Revert nix to 0.27.1
* clippy: fix
* fix from rebase
* Restore userspace imp on condition
* Add send+sync on boxed wgapi
* Use error to indicate when userspace/kernel imps are unavailable; userspace is not available on all platforms
* Remove duplicate import
---------
Co-authored-by: mfahampshire <maxhampshire@pm.me>