Code and dataset supporting the publication "STARVESPAM: Mitigating Spam with Local Reputation in Permissionless Blockchains"
This deposit contains the full research artifact accompanying the paper "STARVESPAM: Mitigating Spam with Local Reputation in Permissionless Blockchains" (BRAINS 2025). The artifact includes (i) the datasets used in our experiments, (ii) the Python implementation of STARVESPAM and baseline policies, and (iii) scripts to reproduce the quantitative results and paper figures. Methodology and techniques: Problem setting: permissionless blockchain transaction propagation (gossip) under adversarial transaction spam.Approach: local reputation-based spam mitigation. Each peer maintains per-sender state over a sliding window of recent activity and derives a reputation value that influences filtering and (probabilistic) acceptance of incoming transactions. The design is intentionally local (no global coordination or trusted identities) and targets scalable spam suppression.Baselines implemented: Naive propagation (no filtering), Fee Filter (threshold-based), BanMan (strike/ban logic), EIP-1559-inspired behavior, SIMD-110-inspired behavior, and STARVESPAM (local reputation + throttling/filtering).Experiments: (1) Transaction-level filtering outcomes per policy (spam accepted / honest dropped) using a labeled dataset; (2) Propagation experiment measuring how widely transactions spread through a randomized overlay when filtering is enabled. Outputs are written as CSV logs and rendered as publication-ready PDF graphs.Statistics/metrics: per-policy outcome rates derived from logged decisions; confidence intervals are computed where applicable (see analysis scripts). Data and provenance: Raw input data (Otherside NFT mint transactions) is included under data/raw/otherside_nft_mint.csv.A processed/labeled dataset used by experiments is included under data/processed/labeled_ethereum_dataset.csv.The labeling/preprocessing pipeline is provided in data/scripts/labelling.py. This script documents the heuristics/features used to label transactions and produces the processed dataset used by the simulation and evaluation scripts. Reproducibility instructions: The repository includes a requirements.txt to recreate the Python environment.Running python -m starvespam.cli.batch_runner replays the labeled transactions through each policy and writes per-policy CSV outputs to results/datasets/.Running python -m starvespam.experiments.propagation executes the propagation experiment.Configuration defaults (including dataset paths and policy parameters) are defined in src/starvespam/core/config.py. Ethics / legal compliance: The artifact uses transaction data derived from publicly observable blockchain activity (Otherside NFT mint transactions). No personal data was collected via human subjects research, no user accounts were created for data collection, and no interaction with private systems was performed.The dataset is used for research and reproducibility purposes; users of this artifact should verify compliance with any applicable terms of service and local regulations for their intended use. License: Code is released under the MIT License (see LICENSE). If you use this artifact, please cite the accompanying paper: "STARVESPAM: Mitigating Spam with Local Reputation in Permissionless Blockchains" (BRAINS 2025).
STARVESPAM: Mitigating Spam with Local Reputation in Permissionless Blockchains