# Components

## 1. FLocKit

* Encapsulates task-specific training logic
* Offers predefined templates for various tasks, such as LLM fine-tuning, time series prediction, and more
* Provides an effortless way to create a federated learning (FL) task (for instance, to create a LLM finetuning FL task, users only need to specify the target model they want to fine-tune in the configuration file, without requiring any changes to the source code)

## 2. FL Client

FL Client serves as both an organiser and an orchestrator, facilitating the interaction between smart contracts and federated learning (FL) training tasks. It also manages all necessary system-level environments, ensuring seamless operation and coordination throughout the process. Specifically, FL Client:

* Interacts with smart contracts
* Allows proposers to train their local models using their own local data
* Allows voters to submit scores based on the performance of the proposers
* Aggregates scores submitted by voters

## 3. Smart Contracts

* Assigns roles to participants randomly
* Allows participants to stake and withdraw rewards
* Slashes malicious behaviours&#x20;
