Skip to content

fix(derod): update mainnet seeds and fix bootstrap sync reliability#7

Closed
moralpriest wants to merge 50 commits into
DEROFDN:mainfrom
moralpriest:fix/derod
Closed

fix(derod): update mainnet seeds and fix bootstrap sync reliability#7
moralpriest wants to merge 50 commits into
DEROFDN:mainfrom
moralpriest:fix/derod

Conversation

@moralpriest

Copy link
Copy Markdown

Summary

This PR addresses critical fastsync/bootstrap reliability issues and updates the mainnet seed node list with verified, geographically diverse endpoints.

Changes

  1. fix(config): update mainnet seeds with 8 verified nodes (config/seed_nodes.go)

    • Replaced 3 dead hardcoded seeds with 8 verified nodes across EU, US, BR, and Asia
    • Added 2 verified testnet seeds
    • All seeds passed isolated 10-minute health checks (ChangeSet + step1 ≥ 1%)
  2. fix(p2p): only mark chain synced after bootstrap succeeds (p2p/connection_pool.go)

    • Removed unconditional chain.Sync = true after bootstrap_chain()
    • Previously, bootstrap failure caused the daemon to switch to normal sync from height 0, entering an infinite resync loop against pruned peers
  3. fix(p2p): close connection on bootstrap RPC failure (p2p/chain_bootstrap.go)

    • Added bootstrap_fail() helper to clean up connection state on RPC failure
    • Prevents repeated Call failed ChangeSet / Call failed TreeSection retries on the same dead connection

Verification

  • Full fastsync smoke tests run against all 8 mainnet seeds
  • Isolated health checks confirm each seed can bootstrap independently
  • Fixes confirmed to resolve the "We need to resync" infinite loop

Related

  • Evaluated 15+ candidate nodes across 5 regions
  • Cross-referenced peers.json / peers2.json for alternate ports

Slixe and others added 30 commits May 28, 2023 15:02
…ttacks

- Implements SHAKE256-based ephemeral key derivation using sender secret, roothash, ring inputs, and recipient public key.
- Introduces 32-byte prefix in payloads for compressed ephemeral public key.
- Adds randomized padding to obfuscate payload size and structure.
- Updates wallet sender/receiver logic to support new ENCRYPTED_DEFAULT_PAYLOAD_CBOR_V2 format.
- Prevents trial decryption and payload re-identification attacks.

Co-authored-by: Dank <44716232+DankFC@users.noreply.github.com>
Merge from dev to harden payload encryption
Merge pull request DEROFDN#3 from civilware/dev-xswd
Harden payload encryption and add websockets support
Previously, the simulator hardcoded --testnet=true, preventing users from
testing mainnet behavior. The simulator would always run in testnet mode
regardless of user input.

This change:
- Removes the hardcoded --testnet=true assignment
- Defaults to mainnet when --testnet flag is not provided
- Properly respects the --testnet flag when explicitly set by user
- Adds defensive nil checking in InitNetwork() to handle missing flag

Fixes simulator network mode selection to match user expectations.
- Changed logger name from 'derod' to 'simulator' for clarity
- Added genesis wallet address, seed, and restore command display
- Helps developers access the funded genesis wallet (~1.12 DERO)
- Other 22 wallets only get 0.002 DERO registration bonus in mainnet

The genesis wallet is the only one with significant funds in mainnet
simulator mode since the premine list is skipped for mainnet.
DankFC and others added 20 commits February 6, 2026 14:41
fix(p2p): update testnet seed node addresses
fix(simulator): implement missing CLI commands and align help/completer
@moralpriest

Copy link
Copy Markdown
Author

Closing — was prepared prematurely before final review. Will reopen when ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants