## Release 2.2.0
### Major Features and Improvements
> Deployment
* Upgrade from Python 3.8 to Python 3.10
* Upgrade the PyTorch version to 2.x


## Release 2.1.1
### Major Features and Improvements
> Component
* Support server model saving in Homo-NN

> ML
* aggregator support aggregation of torch.bfloat16 data type


## Release 2.1.0
### Major Features and Improvements
> Arch
* Some bugs fixed for spark computing engine

> Component
* Unified IO keys naming format for all components
* Add LLMLoader to support running FATE-LLM v2.0 with pipeline

> OSX
* Compatible with eggroll-v2.x


## Release 2.0.0
### Major Features and Improvements
> Arch 2.0:Building Unified and Standardized API for Heterogeneous Computing Engines Interconnection
* Introduce `Context` to manage useful APIs for developers, such as `Distributed Compting`, `Federation`, `Cipher`, `Tensor`, `Metrics`,  and `IO`.
* Introduce `Tensor` data structure to handle local and distributed matrix operation, with built-in heterogeneous acceleration support. 
  * abstracted PHETensor, smooth switch between various underlying PHE implementations through standard interface
* Introduce `DataFrame`, a 2D tabular data structure for data io and simple feature engineering
  * add data block manager to support mixed-type columns & feature anonymization
  * added 30+ operator interfaces for statistics, including comparison, indexing, data binning, and transformation, etc
* Refactor `Federation`, a unified interface for federated computing. We provide a unified Serdes control and more user-friendly api.
* Introduce `Config`, a unified configuration for FATE, including safety restrictions, system configuration, and algorithm configuration
* Refactor `logger`, customizable logging for different use cases and flavors.
* Introduce `Launcher`, a simple tool for federated program execution, especially useful for standalone and local debugging
* Framework: PSI-ECDH protocol support, single entry for histogram statistical computation 
* Deepspeed integration: support distributed training using deepspeed with Eggroll.
* Protocol: Support for SSHE(mpc and homomophic encryption mixed protocol), ECDH, Secure Aggregation protocols
* Experimental Integrate `Crypten` for SMPC support, more protocols and features will be added in the future

> Components 2.0: Building Standardized Algorithm Components for different Scheduling Engines
* Introduce components toolbox to wrap ML modules as standard executable programs
* spec and loader expose clear API for smooth internal extension and external system integration
* Provide several cli tools to interact and execute components
* Input-Output: Further decoupling of FATE-Flow, providing standardized black-box calling processes 
* Component Definition: Support for typing-based definition, automatic checking for component parameters, support for multiple types of data and model input and output, in addition to multiple inputs

> ML 2.0: Major functionality migration from FATE-v1.x, decoupling call hierarchy
* Data preprocessing: Added DataFrame Transformer; Reader, Union and DataSplit migration completed
* Feature Engineering: Migrated HeteroFederatedBinning, HeteroFeatureSelection, DataStatistics, Sampling, FeatureScale and Pearson Correlation
* Federated Training Migrated: HeteroSecureBoost, HomoNN, HeteroCoordinatedLogisticRegression, HeteroCoordinatedLinearRegression, SSHE-LogisticRegression and SSHE-LinearRegression
* Federated Training Added: 
  * SSHE-HeteroNN: based on mpc and homomorphic encryption mixed protocal
  * FedPASS-HeteroNN: based on fedpass protocol

> Algorithm Performance Improvements: (Comparison with FATE-v1.11.*)
* PSI (Privacy Set Intersection): tested on a dataset of 100 million with an intersection result of 100 million, 1.8+ times of FATE-v1.11.4
* Hetero-SSHE-LR: tested on data of guest 10w * 30 dimensions and host 10w * 300 dimensions, 4.3+ times of FATE-v1.11.4
* Hetero-NN(Based on FedPass Protocol):  tested on data of guest 10w * 30 dimensions and host 10w * 300 dimensions, basically consistent with the plaintext performance, 143+ times of FATE-v1.11.4 
* Hetero-Coordinated-LR: tested on data of guest 10w * 30 dimensions and host 10w * 300 dimensions, 1.2+ times of FATE-v1.11.4
* Hetero-Feature-Binning: tested on data of guest 10w * 30 dimensions and host 10w * 300 dimensions, 1.5+ times of FATE-v1.11.4

> OSX(Open Site Exchange) 1.0: Building Open Platform for Cross-Site Communication Interconnection 
* Implement the transmission interface in accordance with the “ Technical Specification for Financial Industry Privacy Computing Interconnection Platform”,The transmission interface is compatible with FATE 1.X version and  FATE 2.X version
* Supports GRPC synchronous and streaming transmission, supports TLS secure transmission protocol, and is compatible with FATE1.X rollsite components
* Supports Http 1.X protocol transmission and TLS secure transmission protocol
* Support message queue mode transmission, used to replace rabbitmq and pulsar components in FATE 1.X
* Supports Eggroll and Spark computing engines
* Supports networking as an Exchange component, with support for FATE 1.X and FATE 2.X access
* Compared to the rollsite component, it improves the exception handling logic during transmission and provides more accurate log output for quickly locating exceptions.
* The routing configuration is basically consistent with the original rollsite, reducing the difficulty of porting
* Supports HTTP interface modification of routing tables and provides simple permission verification
* Improved network connection management logic, reduced connection leakage risk, and improved transmission efficiency
* Using different ports to handle access requests both inside and outside the cluster, facilitating the adoption of different security policies for different ports

> FATE Flow 2.0: Building Open and Standardized Scheduling Platform for Scheduling Interconnection
* Adapted to new scalable and standardized federated DSL IR
* Built an interconnected scheduling layer framework, supported the BFIA protocol
* Optimized process scheduling, with scheduling separated and customizable, and added priority scheduling
* Optimized algorithm component scheduling,support container-level algorithm loading, enhancing support for cross-platform heterogeneous scenarios
* Optimized multi-version algorithm component registration, supporting registration for mode of components
* Federated DSL IR extension enhancement: supports multi-party asymmetric scheduling
* Optimized client authentication logic, supporting permission management for multiple clients
* Optimized RESTful interface, making parameter fields and types, return fields, and status codes clearer
* Added OFX(Open Flow Exchange) module: encapsulated scheduling client to allow cross-platform scheduling
* Supported the new communication engine OSX, while remaining compatible with all engines from FATE Flow 1.x
* Decoupled the System Layer and the Algorithm Layer, with system configuration moved from the FATE repository to the Flow repository
* Published FATE Flow package to PyPI and added service-level CLI for service management
* Migrated major functionality from FATE Flow 1.x

> Fate-Client 2.0: Building Scalable Federated DSL for Application Layer Interconnection And Providing Tools For Fast Federated Modeling.
* Introduce new scalable and standardized federated DSL IR(Intermediate Representation) for federated modeling job
* Compile python client to DSL IR
* Federated DSL IR extension enhancement: supports multi-party asymmetric scheduling
* Support mutual translation between Standardized Fate-2.0.0 DSL IR and BFIA protocol
* Support using components with BFIA protocol through adapter mode
* Migrated Flow CLI and Flow SDK

> Fate-Test: FATE Automated Testing Tool
* Migrated automated testing for functionality, performance, and correctness

> Easy Deploy
* Supports installation of FATE by PyPi