-
Notifications
You must be signed in to change notification settings - Fork 38
Network Resilience Test Scenarios
Juraj Selep edited this page Nov 24, 2023
·
1 revision
- Nodes that get disconnected should eventually be able to reconnect and synchronize with the network.
- Nodes should be able to discover and connect to new peers if their current peers become unresponsive or malicious.
- The network should remain operational even under targeted Denial-of-Service attacks on specific nodes or infrastructure.
- Honest nodes should not be isolated by malicious nodes in a way that they only receive information from these malicious entities.
- The network should function even if an adversary creates a large number of pseudonymous identities. Honest nodes should still be able to connect with other honest nodes.
- New nodes joining the network should eventually discover and connect to honest peers and synchronize the latest blockchain state.
- Any piece of data (like a block or transaction) that is part of the blockchain should be available to any node that requests it.
- All honest nodes in the network should eventually have a consistent view of the ledger, agreeing on the order and content of blocks.
- Every new block that is mined or created should eventually be received by every honest node in the network.
- Every transaction/snark broadcasted by a user should eventually be received and processed by the miners or validators in the network.
- New blocks should be added to the blockchain at regular intervals, ensuring that the system continues to process transactions.
- Transactions should not be perpetually ignored or deprioritized by the network. Honest transactions should eventually get processed.
- The network should resist attempts by any subset of nodes to consistently censor or block certain transactions or blocks.
- As the number of participants or the rate of transactions increases, the network should still maintain its liveness properties.
- The network should be able to upgrade or change protocols without halting or fragmenting, ensuring continuous operation.