BigchainDB: le database blockchain évolutif.

Si on mesure le performances de la blockchain Bitcoin avec les critères des DB traditionnels, on a un retour catastrophique:

  1. le throughput est de seulement quelques transactions par seconde (tps),
  2. la latence avant qu’une opération d’écriture se fasse est de 10 minutes
  3. la capacité est quelques douzaines de GB
  4. il n’y pas de scalability linéaire lors de l’ajout de noeuds: avec un doublement de noeuds, le trafic de réseau quadruple sans aucune amélioration du throughput de la latence ou de la capacité.
  5. l’ajout de noeuds se fait correctement jusqu’à environ 10.000, puis la performance chute.
  6. Il n’y a pas la possibilité de faire des query sur les données, avec ou sans SQL.

En revanche, les DB distribués modernes peuvent avoir un throughput excédant 1 million de tps, la capacité de Petabytes et au-delà, la latence d’une fraction d’une seconde et une sortie et une capacité qui augmentent au fur et à mesure que des noeuds sont ajoutés. Les DB modernes ont aussi des systèmes de query complet, souvent en NoSQL.

Quid si quelqu’un trouvait le trait d’union entre les deux mondes? Si on pouvait faire parler une une blockchain avec une base de données moderne?

BigchainDB est cette base de données scalable, compatible avec Ethereum, Chain, Eris …  IPFS qui comble un gap en se positionnant comme un pont entre une blockchain et le système de stockage.

Mais même en laissant de coté l’aspect Blockchain, BigChainDB offre beaucoup de fonctionnalités manquant au NoSQL et aux bases de données distribuées. Ce fait seul est déjà une raison de l’adopter dans des nombreux cas d’utilisation.

Le potentiel pour que ça soit un big big deal est intact. BigchainDB semble prêt à permettre d’innombrables applications qui étaient jusque ici encombrées par les limitations de scalability des bases de données blockchain.

Les choses vont tellement vite que lorsque je dis que « les appli étaient jusque ici encombrées » je veux surtout dire depuis mi-février 2016 et la sortie de la première version stable de Ethereum: Homestead.

 

La start-up Abscribe

Ascribe est une start-up allemande qui utilise la blockchain Bitcoin pour enregistrer une quantité limitée d’ID uniques aux oeuvres numériques, ce qui les rend traçables et leur donne plus de valeur, en raison de cette quantité finie de copies.

abscribe

Dans son travail Ascribe a rencontré des nombreux problèmes technologiques principalement en raison des limitations de la blockchain Bitcoin. Ascribe a touché de ses mains le grand défi de la scalability d’une vraie application d’entreprise qui repose sur une blockchain.

Ascribe décide ansi de combiner le meilleur des deux mondes, en prenant une base de données NoSQL pas très connue mais très performante ( RethinkDB ) et en y ajoutant une couche blockchain par dessus pour ajouter le contrôle décentralisé, la création et mouvement d’actifs numériques, le suivi de ces actifs, l’immutabilité et un niveau de sécurité supplémentaire.

En écrivant dans une base de données NoSQL via une couche blockchain, Ascribe a ajouté le support transactionnel.

BigchainDB hérite ainsi les caractéristiques des bases de données distribuées modernes:

  • un scaling linéaire en sortie
  • une scalable capacity avec le nombre de noeuds
  • un langage complet NoSQL
  • une interrogation (quering) efficace
  • un système de permissioning

Le système de permissioning permet des configurations qui s’adaptent aux blockchain privées et publiques.

Les performances affichées sont maintenant excellentes :

  • Un throughput de un million de écritures par second,
  • Un stockage avec une capacité pétabyte  (1000 TB)
  • Des query performantes en mesure de satisfaire des réseaux blockchain tant ouverts que privés
  • Des temps de latence sous la seconde

bigchain_perfs

 

Bigchain et Ethereum

BigchainDB obvie au besoin de stocker des données dans Ethereum ce qui est coûteux, inefficace et exige du code supplémentaire pour rendre les données interrogeables (Ethereum ne dispose pas d’une base SQL interne, contrairement à Lisk).

L’architecture idéale est maintenat avoir Ethereum pour la couche de smart contracts qui fonctionnant dans la machine virtuelle EVM, avec BigchainDB comme base de données de la blockchain. Dans ce DB on pourra stocker les éventuels jetons et les autres données de l’appli, tout ce que vous voulez suivre à la trace dans votre système d’une façon décentralisée

BigchainDB résout l’énigme de formuler une architecture décentralisée complète pour une application. En théorie nous avons maintenant

  • Ethereum pour les smart contrats,
  • IPFS comme système de fichiers et
  • BigChainDB pour le stockage de données.

Toutes les pièces sont en place pour le développement, le déploiement et le maintien des applications. BigchainDB devrait permettre aux développeurs de déployer des Proof-of-Concept blockchain ainsi que des applications finies avec une base de données blockchain évolutive (scalable).

Mintenant il est important de aussi souligner  que pour la prod il faudra attendre quelques améliorations majeures:  RethinkDB n’est Byzantine fault tolerant. Pour l’instant tous les noeuds se connectent à un seul DB, ce qui centralise l’application qu’on veut y bâtir par dessus.  Des efforts pour obtenir une tolérance byzantine complète sont sur la feuille de route.

 

2 pensées sur “BigchainDB: le database blockchain évolutif.”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *