Skip to content

michelegranatiero/blockchain-project

Repository files navigation

FedEthML

Blockchain project - Sapienza University of Rome

Our Dapp, FedEthML, shows how the blockchain technology can be adopted to address two of the main issues of Federated Learning. The first is centralization: the central server is replaced by the blockchain, and any adversarial behavior of the central node is therefore prevented. The second issue is represented by the lazy/adversarial behavior of training nodes. This problem is (partially) solved by introducing an incentive mechanism based on the proof-of-stake upon which the Ethereum environment relies

Different workers with different datasets will participate in the training, which will be coordinated by a smart contract deployed on an Ethereum blockchain.

For further details check the Report.


USAGE:

'cd' into the root folder.

If it's the first time you open this project, run: 'npm install' to install all the dependencies.

'npx hardhat node' to spin up a local developement blockchain.

In another terminal:

'npx hardhat compile' to compile the contract inside the contracts folder.

'npx hardhat run --network hardhat ./scripts/deploy.js' to deploy the smart contract.

'python ./scripts/python/number_oracle.py' starts and oracle sending random numbers to the smart contract (they are needed for some stuff).

In another terminal:

'npm run dev' starts the web app.


IMPORTANT: This project uses IPFS from Pinata. To correctly create and visualize the tasks you need to correctly place your Pinata credentials in the ipfsFunctions.jsx file.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •