Base de données Fluree

Salut à tous,

je viens de découvrir la base de données https://flur.ee/

Fluree is an immutable, time-ordered blockchain database.

Je joue avec depuis quelques heures, et c’est carrément carrément terrible !

Specs :

  • transactions ACID :+1:
  • basé sur une blockchain immutable avec versioning (du git pour les données) :timer_clock:
  • gestion cryptographie asynchrone :closed_lock_with_key:
  • server agnostic pouvant tourner sur réseau distribué avec gestion de consensus :avocado:
  • stockage du type graph-database avec support sémantique RDF :four_leaf_clover:
  • requêtable en GraphQL, SPARQL, et JSON-based FlureeQL :slight_smile:
  • avec support temps réel en mode subscribtion pour les clients :rocket:
  • une bonne doc, plein de ressources, et même une Fluree University :school:

Et il y a même un connecteur avec Storj et Tardigrade (donc IPFS, ping @Frederic_Renault)

Infrastructure de la base de données :
https://docs.flur.ee/docs/infrastructure/db-infrastructure
Infra réseau :
https://docs.flur.ee/docs/infrastructure/network-infrastructure

Si Duniter doit un jour changer de bdd, ça vaudrait le coup de regarder ça…

Dans le genre, mais qui semble moins complet, il y a https://www.bigchaindb.com

1 J'aime

Impossible de trouver leur code source ni la licence logicielle associée, s’il faut installer le truc pour connaître la licence d’une part ça crains et d’autre part c’est très très probablement privateur, ce qui n’est pas envisageable pour Duniter.

Ensuite je vois que c’est en Java, pour moi c’est non, or de question de devoir se trimballer une lourde JVM pour exécuter Duniter, en plus des raspi et autre micro-pc ne pourrais pas suivre.

Enfin c’est overkill, dépendre d’une brique technique qui offre trop de features ce n’est pas bon, car le jours il y a besoin d’en changer c’est beaucoup plus difficile.

Je préfère que Duniter dépende de briques relativement petites et « remplaçables » sans avoir a tout refaire.


Eux au moins donnent le lien vers leur code source et leur licence (qui est libre). Par contre c’est du Python donc j’ai des doutes sur les perf, et puis ça compliquerai la stack.


De mon coté j’ai déjà un avis sur la question, vu que je migre Duniter en Rust, je pense migrer a moyen/long terme de leveldb vers sled, pour plusieurs raisons :

  1. Ça reste une bdd embarquée (= pas de serveur de bdd), ce qui simplifie grandement l’installation et le déploiement, et ça me semble indispensable pour que Duniter reste installable par un utilisateur qui n’est pas adminsys.
  2. Ça exploite les avancées récentes dans le domaine des bdd, permettant ainsi de bien meilleurs perf : https://github.com/spacejam/sled#references
  3. C’est du Rust donc ça simplifierai énormément la stack de Duniter
  4. Il y a un mécanisme de souscription intégré, qu’on pourra utiliser pour les souscriptions de GVA.
  5. C’est conçu pour fonctionner sur architecture arm, ce qui est rare, et indispensable pour nous si on veut conserver une version arm de Duniter.
3 J'aimes