Skip to content

Commit

Permalink
Add Flare System Protocol concept page FSC-219
Browse files Browse the repository at this point in the history
  • Loading branch information
AnnemarieJ authored and segfaultxavi committed Apr 30, 2024
1 parent 9e7a45a commit 9697478
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 3 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 46 additions & 0 deletions docs/tech/flare-systems-protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Flare Systems Protocol

The Flare Systems Protocol (FSP) is the core protocol that provides basic functionality to support current and future Flare protocols.

By taking care of tasks common to the rest of Flare protocols, the FSP greatly simplifies them and the dapps that interact with them.

Interaction with the FSP depends on your role:

* As a Flare user, common activities such as governance voting, delegating, and staking do not require direct access to the FSP.
* As an infrastructure provider, access is required because you participate in decentralized data acquisition and validation for all Flare protocols. An update to infrastructure provider procedures is in progress.
* As a developer, writing dapps requires access to the FSP, which simplifies development by using a similar approach for all Flare protocols. A more detailed introduction for developers is in progress.

The FSP manages the results of infrastructure providers' votes and rewards in a way that brings scalability to Flare protocols.
With the FSP, only a representation of the data validation results (called a [Merkle Root](glossary.md#merkle_root) hash) is stored on-chain, so it is more lightweight and scalable than, for example, storing all prices for the FTSO.
Because only the hashes are stored on-chain, applications retrieve the actual data directly from infrastructure providers and then verify it using the on-chain hash.

## Flare System Protocol Components

The FSP coordinates several components, including smart contracts, indexers for easier access to the [C- and P-chain](./flare.md#flare-chains) states, the Flare Systems Client running on all infrastructure providers, and the data protocols that they support.

<figure markdown>
![Flare Systems Protocol Architecture](flare-systems-protocol-architecture.png){ loading=lazy .allow-zoom }
<figcaption>Flare Systems Protocol architecture.</figcaption>
</figure>

## Data Protocols

These protocols receive data from other blockchains and internet APIs:

* The [Flare Time-Series Oracle (FTSO)](./ftso.md).
* The [Data Connector](./state-connector.md) (formerly the State Connector).

The FSP has also been designed to accommodate future data protocols, such as Fast FTSO and Stake mirroring.

## Flare Systems Client

Each infrastructure provider runs an instance of the Flare Systems Client, which aggregates their votes for all Flare protocols and submits them to the Flare network in a single transaction.
The option to relay them to other EVM chains is being developed.

The Flare systems client provides these functions:

* Signing: Signs transactions on behalf of data protocols before submitting them to the blockchain.
* Scheduling: Schedules all transactions from off-chain services.
* Validation: Submits infrastructure providers' votes each voting round.
* Finalization: Sends finalization transactions on behalf of infrastructure providers when enough signatures (votes) have been collected and therefore the voting round ends.
* Rewarding: Aggregates reward calculation results for the final rewards result for each reward epoch (currently under development).
7 changes: 4 additions & 3 deletions docs/tech/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ Select one of the topics below:

* [What Is Flare?](./flare.md)
* [Automatic Claiming](./automatic-claiming.md)
* [The FlareDrop](./the-flaredrop.md)
* [Flare Beta](./flare-beta.md)
* [Flare API Portal](./api-portal.md)
* [FAssets](./fassets/index.md)
* [Flare API Portal](./api-portal.md)
* [Flare Beta](./flare-beta.md)
* [Flare Systems Protocol](./flare-systems-protocol.md)
* [The FlareDrop](./the-flaredrop.md)
* [FTSO](./ftso.md)
* [Governance](./governance.md)
* [Personal Delegation Accounts](./personal-delegation-account.md)
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,7 @@ nav:
- tech/index.md
- tech/automatic-claiming.md
- tech/flare-beta.md
- tech/flare-systems-protocol.md
- tech/governance.md
- tech/personal-delegation-account.md
- tech/the-flaredrop.md
Expand Down

0 comments on commit 9697478

Please sign in to comment.