Following are some different loading scripts, to-do still full testing on WMC + VPN ip shifting.
- overview - flooding components
- config.json - flooding config
- tx_flood.sh - scheduler
- tx_flooder.js - tx flooding script
- gas_recover.cjs - gas recovery script
- gasburn_mixed - stress chain with mixed compute/space
- gasburn_space - stress chain via using space
Quick environment setup command in one step.
Tested with Ubuntu 22.04 desktop VM, snapshot taken in case of issues.
Runs as standard user (not superuser):
cd $HOME && \
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \
source ~/.bashrc && \
nvm install 20 && \
node -v && \
npm -v && \
mkdir $HOME/wmctest && cd $HOME/wmctest && \
npm init -y && \
npm pkg set type="module" && \
npm install ethers && \
npm install solcDo random things at random intervals for configurable period to create distributed flooding environment - varying:
- Timing Patterns
- Variable wait times between actions
- Random "sleep" periods
- Spacing out subwallet creation over time
- Wait-time adaptation - shorter waits after errors
- Transaction Behaviors
- Varied transaction types with weighted probability:
- 70%/Simple WMTX transfer, 20% ERC20 token, 10% Token approvals
- Randomised transaction destinations between controlled wallets
- Amount Randomisation
- Human-like rounded amounts
- Message/Data Fields - 30% chance of random message
- Token Interactions
- Approval patterns that mimic DEX usage
- 60% unlimited approvals vs. 40% specific amounts
- Specific approval amounts range from 100-10,000 tokens
- Variable confirmation waiting
- Transaction Diversity
- Mix transaction types randomally (WMTx/ERC20)
- Varies transaction amount/tokens sent
- Randomised Transaction Payloads
- Adds random data to some transactions (40% probability)
- Varies data length between configurable min/max bounds (4-80 bytes)
- Uses different data content types (random bytes, text, structured hex)
- Generates hex data that resembles legitimate function calls
- Uses multiple wallets created over time like a human
- Vary batch sizes/schedule
- TODO - is it still 2s wait between batches?? Remove
- Dynamic Gas with EIP-1559
- Random high random nonces for gas price testing
- Token Name Generation:
- Multiple name generation strategies (adjective+noun, compound words, 3-part names)
- Various capitalization styles (camelCase, PascalCase, lowercase, ALL CAPS)
- Different word connectors (spaces, hyphens, underscores, dots)
- Possibility of adding suffixes (DAO, Network, Protocol) or years/numbers
- Token Symbol Generation:
- Multiple strategies for creating symbols (not just first 3 letters)
- First letters of each word
- Random letters extracted from the name
- Completely random unrelated ticker symbols
- Consonant-focused symbols
- Length varies (2-5 characters)
- Token Decimals:
- Varied probability distribution (18, 6, 8, 0, and unusual values)
- Includes rare decimal values (1, 2, 3, 4, 9, 10, 12, 16, 24, 36)
- Token Supply:
- Traditional round numbers (10M, 100M, 1B)
- "Meme" numbers (69420, 1337, etc.)
- Crypto-specific numbers (21M, like Bitcoin)
- Powers of 10
- Common human-chosen amounts
- Contract Code Randomization
- Variable/Parameter Naming Styles:
- Standard style (amount, from, to)
- Abbreviated style (amt, src, dst)
- Hungarian notation (nAmount, addrFrom)
- Underscore prefix (_amount, _from)
- Alternative terminology (value, sender, recipient)
- Terse style (qty, f, t)
- Contract Structure:
- Randomised function order within the contract
- Varied spacing and indentation
- Code Formatting:
- Different brace styles (same-line vs. new-line)
- Spacing variations around operators (x=y vs x = y)
- Empty lines between functions (0-2)
- Indentation amount (2 or 4 spaces)
- Code Comments:
- Random legitimate-looking comments
- Varying comment density (0-3 comments per section)
- Different comment styles and content
- Solidity Compiler Settings:
- Randomised optimizer runs (150-250)
- Contract Details:
- Random License identifier choice (MIT or Unlicense)
- Optional NatSpec comments
- Variable/Parameter Naming Styles: