New Dataset of Performance Metrics, Device Telemetry, and Blockchain Audit Logs from a Federated Learning Testbed on Raspberry Pi Devices for HAR
Description
This dataset contains new data produced by federated learning training experiments. It is not the original MHEALTH or UCI-HAR datasets. Those public benchmarks were used only as the training source. The deposit holds the raw output and the aggregated metrics from 40 federated learning experiments that ran on a physical testbed of 10 Raspberry Pi 4 devices. The aim was to test whether on-chain auditing can be added to real edge-device federated learning without lowering model accuracy or adding too much overhead. In every round the system records the round on Base mainnet, an Ethereum Layer 2 network, and stores the model artefacts on IPFS. Two operational variants are compared on two activity recognition benchmarks, MHEALTH and UCI-HAR. The baseline variant runs the blockchain steps synchronously. The optimised variant uploads to IPFS in the background and caches gas parameters. Model accuracy stays the same across both variants, within half a percentage point. The optimised variant roughly halves the median blockchain overhead per round on both benchmarks. The main source of variation is the time the public network takes to confirm a transaction. Chain integrity checks passed for all 40 sessions. The dataset covers 1,240 transactions in total, 620 per benchmark, and every transaction is listed by its hash with a direct Basescan link in the pin map files. The same contract address also carries transactions from other runs, so its total on Basescan is 4963 transactions. The deposit holds 12 flat-table CSV files with 15,280 data rows in total. They cover round-level metrics, per-device hardware telemetry, per-client evaluation records, session summaries, millisecond-level blockchain and IPFS timings for both benchmarks, and a blockchain to IPFS pin audit map. Two zip archives hold the complete raw output of all 40 sessions. Each archive holds the 20 raw session folders for one benchmark, and every folder contains its results log in NDJSON form, its configuration file, its blockchain and server performance logs, and eleven confusion matrix images. A field-level data dictionary named DATA_DICTIONARY.md gives the row count and columns for every file. The smart contract is live on Base mainnet at https://basescan.org/address/0xBE3FeAC76293711C5D32426860303AfE24cdf527 Code and aggregation scripts are at https://github.com/bmukhambetiyar/FLBL2. Version 2: completes the UCI-HAR experiments. All 20 UCI-HAR sessions are now complete, each with full blockchain provenance and a performance log. This version adds perf_timings_ucihar.csv and raises the CSV count from eleven to twelve. The per-client records are now complete for UCI-HAR, with all ten clients present in every round. The UCI-HAR raw archive and the data dictionary were rebuilt to match the new data.
Files
Steps to reproduce
1. Full setup instructions, environment configuration, and hardware requirements are documented in the repository at https://github.com/bmukhambetiyar/FLBL2. 2. Clone the repository and install the dependencies. On the coordinator machine run pip install -e . and on each Raspberry Pi 4 run pip install -r requirements-pi.txt. 3. Configure the .env file with your Base mainnet RPC URL, your wallet private key, the deployed contract address 0xBE3FeAC76293711C5D32426860303AfE24cdf527, and your Pinata JWT keys. 4. The dataset is selected by the training command, not by a flag. Session count, rounds, and hyperparameters are passed as environment variables. The batch size is 64 and each session runs 10 rounds for both datasets. 5. For MHEALTH, run ./fl.sh train once per session with LOCAL_EPOCHS set to 5 and LR set to 0.002. Run it ten times with BLOCKCHAIN_OPTIMIZED set to 0 for the baseline and ten times with BLOCKCHAIN_OPTIMIZED set to 1 for the optimised variant. Results are written to outputs. 6. For UCI-HAR, run N_SESSIONS=10 ./fl.sh train-ucihar with LOCAL_EPOCHS set to 3 and LR set to 0.001. A single run carries out all ten baseline and ten optimised sessions. Results are written to outputs_ucihar. 7. After all 40 sessions finish, run python aggregate_metrics.py and python extract_perf_timings.py to write ten CSV files into the aggregated folder. Then run python gather_tx_pin_map.py to build the pin map for each dataset in outputs and outputs_ucihar, and copy those two files into the aggregated folder as tx_pin_map_flowertrained_mhealth.csv and tx_pin_map_flowertrained_ucihar.csv.
Institutions
- Nazarbayev UniversityAstana, Astana