Fermer

juin 4, 2018

Blockchain et stockage de données –


Depuis que j'ai écrit ce post beaucoup de choses ont changé pour BigchainDB et dans l'espace blockchain donc il me semblait qu'il était grand temps de revisiter de l'effet que peut avoir la blockchain sur l'une des parties les plus fondamentales de l'espace informatique traditionnel: le stockage de données.

Initialement conçu comme une technologie destinée à remplacer le blockchain Bitcoin dans le projet Ascribe de traçage numérique, BigchainDB est devenu une composante du abandonné IPDB et maintenant comme couche de stockage pour le protocole océanique gras .

Ce changement d'utilisation a entraîné des changements dans les fondements et la mise en œuvre de BigchainDB, tout comme la fermeture de ] RethinkDB forçant l'équipe à basculer le moteur de stockage vers le vaillant MongoDB . La couche blockchain au-dessus de la base de données qui fournit le support transactionnel qui aide à garantir un changement de base de données a été ajoutée et ajoute un contrôle et une sécurité supplémentaires, mais a atteint sa maturité, avec BigchainDB en 2018 .

Tous ces changements signifient maintenant que BigchainDB vous encourage à utiliser leur réseau public au lieu de déployer vos instances. Cette approche est en contradiction avec la pratique traditionnelle des bases de données distribuées, mais elle est plus adaptée à l'évolution des projets Blockchain au cours des dernières années, permet à BigchainDB de monétiser leur plateforme (avec un modèle ICO ou SaaS) et constitue un changement intéressant. Le temps nous dira si les clients sont à l'aise pour stocker des données sur un réseau public, mais avec des jetons d'accès garantissant la sécurité et la confidentialité, il n'est pas très différent d'utiliser une base de données hébergée dans le cloud.

installez vos propres instances BigchainDB mais je pense que l'entreprise vous encouragera de plus en plus à ne pas le faire

Quelle que soit l'option choisie, vous pouvez utiliser le Python JavaScript ou des pilotes communautaires. Par exemple, avec JavaScript, installez le paquet avec npm install bigchaindb-driver créez une connexion et écrivez et lisez les assets dans la base de données en utilisant les clés appropriées pour le writer et le lecteur.

pour le pilote ici et la base de données ici mais l'exemple ci-dessous crée un article pour auteur et l'affecte ensuite à cessionnaire :

 const driver = require ('bigchaindb-driver')
const auteur = nouveau driver.Ed25519Keypair ()
const assigné = nouveau driver.Ed25519Keypair ()

console.log ('Auteur:', author.publicKey)
console.log ('Assignee:', assignee.publicKey)

const assetdata = {
    'article': {
        'titre': 'Blockchain DBs',
        «corps»: «corps de l'article»,
    }
}

const txCreateAuthorSimple = pilote.Transaction.makeCreateTransaction (
    assetdata,
    [driver.Transaction.makeOutput(
        driver.Transaction.makeEd25519Condition(author.publicKey))
    ],
    author.publicKey
)

const txCreateAuthorSimpleSigned = pilote.Transaction.signTransaction (txCreateAuthorSimple, author.privateKey)

let conn = new driver.Connection ('https://test.bigchaindb.com/api/v1/', {
    app_id: '',
    app_key: ''
})

conn.postTransactionCommit (txCreateAuthorSimpleSigned)
    .then (retrievedTx => console.log ('Transaction', retrievedTx.id, 'Posté avec succès.'))

    .then (() => {
        const txTransferAssignee = driver.Transaction.makeTransferTransaction (
            [{tx: txCreateAuthorSimpleSigned, output_index: 0}],
            [driver.Transaction.makeOutput(driver.Transaction.makeEd25519Condition(assignee.publicKey))],
            {prix: '100 dollars'}
        )

        let txTransferAssigneeSigned = pilote.Transaction.signTransaction (txTransferAssignee, author.privateKey)
        console.log ('Publication de la transaction signée:', txTransferAssigneeSigned)

        return conn.postTransactionCommit (txTransferAssigneeSigned)
    })
    .then (res => {
        console.log ('Réponse du serveur BDB:', res)
        retourner res.id
    })
    .then (tx => {
        console.log ('Le destinataire est-il le propriétaire?', tx ['outputs'][0]['public_keys'][0]  == assignee.publicKey)
        console.log ('Était l'auteur du précédent propriétaire?', tx ['inputs'][0]['owners_before'][0]  == author.publicKey)
    })
    // Recherche d'actif en fonction du numéro de série du vélo
    .then (() => conn.searchAssets ('Blockchain DBs'))
    .then (assets => console.log ('Found assets with title:', assets))

Autres alternatives

BigchainDB n'est plus la seule base de données en mode blockchain en ville, selon votre définition, et ce que vous voulez accomplir.

FlureeDB encapsule un graphique base de données de style avec une couche blockchain, qui – quand on considère la nature de Blockchain – a du sens. Grâce aux sous-graphes Graph, il s'intègre bien avec GraphQL et React. Il est encore en développement actif et suit des modèles de financement familiers pour les bases de données, avec une version communautaire limitée, et une capacité supplémentaire, la sécurité et le support pour les utilisateurs premium. L'implication de FlureeDB dans la technologie Blockchain semble utiliser des jetons pour remplacer l'argent et une certaine forme de consensus. Le projet n'est pas open source, donc il est difficile de dire ce qui est sous le capot

De mémoire, OrbitDB existe depuis environ aussi longtemps que BigchainDB, mais conçu pour des applications plus simples. Bien qu'il utilise IPFS pour le stockage (que certains pourraient revendiquer comme une sorte de base de données), il ne prétend pas être une "base de données blockchain", mais plutôt un choix pour les applications décentralisées.

TiesDB fait beaucoup de réclamations audacieuses sur son site, mais avec peu de détails sur la façon dont il les accomplit, et avec un dépôt clairsemé et une documentation plus sommaire sur la façon d'exécuter la base de données, il est difficile de confirmer si ça délivre. Il y a une poignée de livres blancs dans le readme du référentiel que vous pouvez passer au crible, mais ils couvrent surtout la théorie plutôt que la pratique. Curieusement, cela vous permet également de supprimer des données qui, bien qu'elles soient une partie fondamentale des bases de données traditionnelles, contredisent quelque peu les idéaux de la chaîne de blocs. Il n'y a pas de mal ou de juste dans cette décision; certains développeurs doivent envisager des compromis pour pousser les technologies blockchain dans le courant principal.

Swarm est un composant Ethereum qui est le mécanisme de stockage par défaut pour les applications distribuées ( Dapps ). Il ne propose pas une méthode aussi simple pour commencer, mais si vous étudiez déjà Ethereum pour ses autres composants, alors lisez la documentation pour plus de détails .

Filecoin fait quelque chose de différent. Il offre un mécanisme de suivi des transactions entre les blocs de stockage de réserve autour des centres de données et Internet. Il vous permet d'utiliser le stockage traditionnel, mais via une couche blockchain qui permet aux utilisateurs d'enchérir sur l'espace que vous proposez et de suivre leur utilisation.

Ces deux technologies sont décrites plus en détail dans ce post .

Partie d'un futur décentralisé

Ignorant un instant son héritage Blockchain, BigchainDB fournit des fonctionnalités manquantes à partir des bases de données distribuées NoSQL et actuelles. Ce seul fait peut être une raison de l'essayer et peut fournir un cas d'utilisation / utilisation valide.

Pour les passionnés de blockchain parmi vous, BigchainDB et d'autres alternatives complètent également le puzzle pour une pile d'application décentralisée complète – avec Ethereum pour les applications, IPFS en tant que système de fichiers et BigchainDB pour le stockage de données. Les pièces sont en place pour une manière différente de développer, déployer et maintenir des applications, conduisant à un avenir fascinant que j'aimerais entendre vos opinions.




Source link