├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── blocklearning ├── __init__.py ├── aggregator.py ├── aggregators │ ├── __init__.py │ ├── blockflow.py │ ├── fedavg.py │ ├── fedavg_means.py │ ├── fedavg_medians.py │ ├── multikrum.py │ └── utils.py ├── contract.py ├── diffpriv │ ├── __init__.py │ └── gaussian.py ├── model_loaders │ ├── __init__.py │ ├── ipfs.py │ └── model.py ├── scorer.py ├── scorers │ ├── __init__.py │ ├── accuracy.py │ ├── marginal_gain.py │ ├── multikrum.py │ └── utils.py ├── trainer.py ├── utilities │ ├── __init__.py │ ├── logger.py │ ├── numbers.py │ └── numpy.py ├── vertical_aggregator.py ├── vertical_trainer.py └── weights_loaders │ ├── __init__.py │ └── ipfs.py ├── contracts.json ├── contracts ├── Base.sol ├── FirstComeFirstServed.sol ├── Migrations.sol ├── NoScoring.sol ├── Scoring.sol └── Vertical.sol ├── migrations ├── 1_initial_migration.js ├── 2_no_scoring.js ├── 3_first_come_first_served.js ├── 4_scoring.js └── 5_vertical.js ├── testbed ├── .gitignore ├── README.md ├── blockchain.yml ├── docker │ ├── Dockerfile.bfl │ ├── Dockerfile.node │ ├── eth_run_miner.sh │ ├── eth_run_owner.sh │ ├── run_client.sh │ ├── run_server.sh │ ├── run_vertical_client.sh │ └── run_vertical_server.sh ├── ethereum │ ├── genesis_poa.json │ ├── genesis_pow.json │ └── genesis_qbft.json ├── ml.yml ├── run_client.py ├── run_server.py ├── run_vertical_client.py ├── run_vertical_server.py ├── start_round.py ├── start_vertical_round.py ├── toolkit.py ├── utilities │ ├── __init__.py │ ├── docker.py │ ├── geth.py │ ├── json.py │ └── processes.py └── vml.yml └── truffle-config.js /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/README.md -------------------------------------------------------------------------------- /blocklearning/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/__init__.py -------------------------------------------------------------------------------- /blocklearning/aggregator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregator.py -------------------------------------------------------------------------------- /blocklearning/aggregators/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregators/__init__.py -------------------------------------------------------------------------------- /blocklearning/aggregators/blockflow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregators/blockflow.py -------------------------------------------------------------------------------- /blocklearning/aggregators/fedavg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregators/fedavg.py -------------------------------------------------------------------------------- /blocklearning/aggregators/fedavg_means.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregators/fedavg_means.py -------------------------------------------------------------------------------- /blocklearning/aggregators/fedavg_medians.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregators/fedavg_medians.py -------------------------------------------------------------------------------- /blocklearning/aggregators/multikrum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregators/multikrum.py -------------------------------------------------------------------------------- /blocklearning/aggregators/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/aggregators/utils.py -------------------------------------------------------------------------------- /blocklearning/contract.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/contract.py -------------------------------------------------------------------------------- /blocklearning/diffpriv/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/diffpriv/__init__.py -------------------------------------------------------------------------------- /blocklearning/diffpriv/gaussian.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/diffpriv/gaussian.py -------------------------------------------------------------------------------- /blocklearning/model_loaders/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/model_loaders/__init__.py -------------------------------------------------------------------------------- /blocklearning/model_loaders/ipfs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/model_loaders/ipfs.py -------------------------------------------------------------------------------- /blocklearning/model_loaders/model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/model_loaders/model.py -------------------------------------------------------------------------------- /blocklearning/scorer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/scorer.py -------------------------------------------------------------------------------- /blocklearning/scorers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/scorers/__init__.py -------------------------------------------------------------------------------- /blocklearning/scorers/accuracy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/scorers/accuracy.py -------------------------------------------------------------------------------- /blocklearning/scorers/marginal_gain.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/scorers/marginal_gain.py -------------------------------------------------------------------------------- /blocklearning/scorers/multikrum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/scorers/multikrum.py -------------------------------------------------------------------------------- /blocklearning/scorers/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/scorers/utils.py -------------------------------------------------------------------------------- /blocklearning/trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/trainer.py -------------------------------------------------------------------------------- /blocklearning/utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/utilities/__init__.py -------------------------------------------------------------------------------- /blocklearning/utilities/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/utilities/logger.py -------------------------------------------------------------------------------- /blocklearning/utilities/numbers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/utilities/numbers.py -------------------------------------------------------------------------------- /blocklearning/utilities/numpy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/utilities/numpy.py -------------------------------------------------------------------------------- /blocklearning/vertical_aggregator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/vertical_aggregator.py -------------------------------------------------------------------------------- /blocklearning/vertical_trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/vertical_trainer.py -------------------------------------------------------------------------------- /blocklearning/weights_loaders/__init__.py: -------------------------------------------------------------------------------- 1 | from .ipfs import IpfsWeightsLoader 2 | -------------------------------------------------------------------------------- /blocklearning/weights_loaders/ipfs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/blocklearning/weights_loaders/ipfs.py -------------------------------------------------------------------------------- /contracts.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/contracts.json -------------------------------------------------------------------------------- /contracts/Base.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/contracts/Base.sol -------------------------------------------------------------------------------- /contracts/FirstComeFirstServed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/contracts/FirstComeFirstServed.sol -------------------------------------------------------------------------------- /contracts/Migrations.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/contracts/Migrations.sol -------------------------------------------------------------------------------- /contracts/NoScoring.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/contracts/NoScoring.sol -------------------------------------------------------------------------------- /contracts/Scoring.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/contracts/Scoring.sol -------------------------------------------------------------------------------- /contracts/Vertical.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/contracts/Vertical.sol -------------------------------------------------------------------------------- /migrations/1_initial_migration.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/migrations/1_initial_migration.js -------------------------------------------------------------------------------- /migrations/2_no_scoring.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/migrations/2_no_scoring.js -------------------------------------------------------------------------------- /migrations/3_first_come_first_served.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/migrations/3_first_come_first_served.js -------------------------------------------------------------------------------- /migrations/4_scoring.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/migrations/4_scoring.js -------------------------------------------------------------------------------- /migrations/5_vertical.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/migrations/5_vertical.js -------------------------------------------------------------------------------- /testbed/.gitignore: -------------------------------------------------------------------------------- 1 | datasets/ 2 | ethereum/datadir 3 | -------------------------------------------------------------------------------- /testbed/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/README.md -------------------------------------------------------------------------------- /testbed/blockchain.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/blockchain.yml -------------------------------------------------------------------------------- /testbed/docker/Dockerfile.bfl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/Dockerfile.bfl -------------------------------------------------------------------------------- /testbed/docker/Dockerfile.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/Dockerfile.node -------------------------------------------------------------------------------- /testbed/docker/eth_run_miner.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/eth_run_miner.sh -------------------------------------------------------------------------------- /testbed/docker/eth_run_owner.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/eth_run_owner.sh -------------------------------------------------------------------------------- /testbed/docker/run_client.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/run_client.sh -------------------------------------------------------------------------------- /testbed/docker/run_server.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/run_server.sh -------------------------------------------------------------------------------- /testbed/docker/run_vertical_client.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/run_vertical_client.sh -------------------------------------------------------------------------------- /testbed/docker/run_vertical_server.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/docker/run_vertical_server.sh -------------------------------------------------------------------------------- /testbed/ethereum/genesis_poa.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/ethereum/genesis_poa.json -------------------------------------------------------------------------------- /testbed/ethereum/genesis_pow.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/ethereum/genesis_pow.json -------------------------------------------------------------------------------- /testbed/ethereum/genesis_qbft.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/ethereum/genesis_qbft.json -------------------------------------------------------------------------------- /testbed/ml.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/ml.yml -------------------------------------------------------------------------------- /testbed/run_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/run_client.py -------------------------------------------------------------------------------- /testbed/run_server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/run_server.py -------------------------------------------------------------------------------- /testbed/run_vertical_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/run_vertical_client.py -------------------------------------------------------------------------------- /testbed/run_vertical_server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/run_vertical_server.py -------------------------------------------------------------------------------- /testbed/start_round.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/start_round.py -------------------------------------------------------------------------------- /testbed/start_vertical_round.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/start_vertical_round.py -------------------------------------------------------------------------------- /testbed/toolkit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/toolkit.py -------------------------------------------------------------------------------- /testbed/utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/utilities/__init__.py -------------------------------------------------------------------------------- /testbed/utilities/docker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/utilities/docker.py -------------------------------------------------------------------------------- /testbed/utilities/geth.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/utilities/geth.py -------------------------------------------------------------------------------- /testbed/utilities/json.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/utilities/json.py -------------------------------------------------------------------------------- /testbed/utilities/processes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/utilities/processes.py -------------------------------------------------------------------------------- /testbed/vml.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/testbed/vml.yml -------------------------------------------------------------------------------- /truffle-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacdias/blocklearning/HEAD/truffle-config.js --------------------------------------------------------------------------------