7c3feaede3
Make LP registration resilient to network failures that could waste credentials. When registration succeeds on the gateway but the response is lost (e.g., network drop), clients can retry with the same WG key and get the cached result instead of spending another credential. Gateway-side: - Add check_existing_registration() helper that looks up WG peer and returns cached GatewayData if already registered - Add idempotency check in process_registration() dVPN branch - Only return cached response if bandwidth > 0 (ensures registration was actually completed, not just peer created) - Track idempotent registrations with lp_registration_dvpn_idempotent metric Client-side: - Add register_with_retry() to LpRegistrationClient that acquires credential once and retries handshake+registration on failure - Add handshake_and_register_with_retry() to NestedLpSession for exit gateway registration via forwarding - Add exponential backoff with jitter between retry attempts - Verify outer session validity before nested session retry Both retry methods clear state machine before retry to ensure fresh handshake, and reuse the same credential across all attempts.
78 lines
1.4 KiB
Plaintext
78 lines
1.4 KiB
Plaintext
// Copyright 2020 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: CC0-1.0
|
|
|
|
/targetString
|
|
**/*.rs.bk
|
|
/*/target
|
|
/test_inbox
|
|
.idea
|
|
target
|
|
.env
|
|
.env.dev
|
|
envs/devnet.env
|
|
/.vscode/settings.json
|
|
validator/.vscode
|
|
sample-configs/validator-config.toml
|
|
scripts/deploy_qa.sh
|
|
scripts/run_gate.sh
|
|
scripts/run_mix.sh
|
|
scripts/start_local_tmux_network.sh
|
|
/.floo
|
|
/.flooignore
|
|
qa-v4-topology.json
|
|
qa-v6-topology.json
|
|
v4-topology.json
|
|
v6-topology.json
|
|
/explorer/downloads/topology.json
|
|
/explorer/public/downloads/mixmining.json
|
|
/explorer/public/downloads/topology.json
|
|
/nym-wallet/dist/*
|
|
/clients/validator/examples/nym-driver-example/current-contract.txt
|
|
validator-api/v4.json
|
|
validator-api/v6.json
|
|
**/node_modules
|
|
validator-api/keypair
|
|
contracts/mixnet/code_id
|
|
contracts/mixnet/Justfile
|
|
contracts/mixnet/Makefile
|
|
artifacts
|
|
contracts/artifacts
|
|
validator-config
|
|
*.patch
|
|
validator-api-config.toml
|
|
dist
|
|
storybook-static
|
|
.parcel-cache
|
|
**/.DS_Store
|
|
cpu-cycles/libcpucycles/build
|
|
foxyfox.env
|
|
|
|
.next
|
|
ppa-private-key.b64
|
|
ppa-private-key.asc
|
|
nym-network-monitor/topology.json
|
|
nym-network-monitor/__pycache__
|
|
nym-network-monitor/*.key
|
|
nym-network-monitor/.envrc
|
|
nym-network-monitor/.envrc
|
|
nym-api/redocly/formatted-openapi.json
|
|
|
|
|
|
*.sqlite
|
|
.build
|
|
|
|
**/settings.sql
|
|
**/enter_db.sh
|
|
|
|
*.profraw
|
|
.beads
|
|
CLAUDE.md
|
|
docs
|
|
.claude
|
|
.superego
|
|
|
|
# Superego (machine-specific paths)
|
|
.superego/
|
|
.claude/hooks/superego/
|
|
.claude/settings.json
|