Skip to content
forked from fluencelabs/nox

Fluence is an efficient decentralized data processing engine

License

Notifications You must be signed in to change notification settings

krivchun/fluence

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Join The Discord Chat

What is Fluence?

Fluence is a decentralized database network that allows to deploy many existing first-class SQL/NoSQL/GraphQL databases such as SQLite or Redis into the decentralized environment. It will support many complex database operations, such as aggregate functions, joins, or stored procedures.

Fluence is built on top of Fluence Core – an efficient trustless computation platform that allows to achieve few seconds request processing latency and cost efficiency similar to traditional cloud computing. To run computations, Fluence uses a WebAssembly virtual machine, which allows to deploy into the decentralized environment applications written in multiple programming languages.

What is Fluence Core?

Fluence Core is essentially a general purpose backend engine for decentralized applications. Because of its cost efficiency, developers generally do not have to worry much about low-level code optimization. Existing software packages can be ported to Fluence as is, once they are compiled into WebAssembly.

As a showcase, we have prepared few example applications that can be launched on the Fluence network:

How does Fluence Core work?

In order to reach low latency and high throughput, Fluence splits network nodes into two layers: the real-time processing layer and the batch validation layer.

The real-time processing layer is responsible for direct interaction with clients; the batch validation layer – for computation verification. In other words, real-time processing is the speed layer and batch validation is the security layer.

The real-time processing layer is able to promptly serve client requests, but provides only moderate security guarantees that returned responses are correct. Later, the batch validation layer additionally verifies returned responses, and if it is found that some of the responses were incorrect, offending real-time nodes lose their deposits.

The network also relies on Ethereum (as a secure metadata storage and dispute resolution layer) and Swarm/Filecoin/Arweave (as a data availability layer).

Check out the Fluence docs to learn more about the general Fluence Core architecture.

Project status

The project is undergoing a heavy development at the moment.
Check out the issue tracker to learn more about the current progress.

Features that were already rolled out:
+ Real-time processing layer: real-time clusters with built-in BFT consensus (Tendermint)
+ Secure metadata storage: real-time clusters state (Ethereum)
+ Arbitrary code execution: WebAssembly VM (Asmble)
+ SDK: frontend (JavaScript) and backend (Rust)

Features that have not been released yet:
Batch validation layer: tx history verification
Secure metadata storage: batch validation state, security deposits
Dispute resolution layer: verification game
Data availability layer: decentralized storage for tx history

While we are working hard to make Fluence bulletproof secure, you can already build and deploy applications to the Fluence devnet! Take a look at the quickstart to learn how to build and decentralize a simple Hello World app, and at the dice game tutorial to learn how to build more involved apps.

Resources

Contributing

You are welcome to contribute. At the current moment we don't have detailed instructions on how to join development or which code guidelines to follow. However, you can expect more info to appear soon enough. In the meanwhile, check out the basic contributing rules.

License

Apache 2.0

About

Fluence is an efficient decentralized data processing engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 71.0%
  • TypeScript 11.0%
  • Rust 10.4%
  • Java 3.0%
  • WebAssembly 1.7%
  • JavaScript 1.1%
  • Other 1.8%