Coder Social home page Coder Social logo

js-ipfs-merkle-dag's Introduction

IPFS Merkle DAG JavaScript Implementation

Dependency Status js-standard-style

JavaScript Implementation of the DAGService and DAGNode data structure

Architecture

┌────────────────────┐
│   DAGService       │
└────────────────────┘
           │
           ▼
┌────────────────────┐
│   BlockService     │
└────────────────────┘

DAGService - The DAGService offers an interface to interact directly with a MerkleDAG object (composed by one or more DAGNodes that are linked), using the BlockService to store and fetch the DAGNodes as it needs them

BlockService - The BlockService uses IPFS Repo as the local datastore for blocks and an IPFS Exchange compliant implementation to fetch blocks from the network.

A DAGNode and DAGLink are data structures made available on this module.

Usage

$ npm i ipfs-merkle-dag
const ipfsMDAG = require('ipfs-merkle-dag')

// then, to access each of the components
ipfsMDAG.DAGService
ipfsMDAG.DAGNode
ipfsMDAG.DAGLink

DAGNode

Create a new DAGLink

var link = new ipfsMDAG.DAGLink(<name>, <size>, <hash>)

Create a new DAGNode

var node = new ipfsMDAG.DAGNode([<data>, <[links]>])
addNodeLink

creates a link on node A to node B by using node B to get its multihash

addRawLink

creates a link on node A to node B by using direclty node B multihash

updateNodeLink

updates a link on the node. caution this method returns a copy of the MerkleDAG node

removeNodeLink

removes a link from the node by name

removeNodeLinkByHash

removes a link from the node by the hash of the linked node

copy

creates a copy of the MerkleDAG Node

size

size of the node. This is a property, not a function

multihash

returns the multihash (default: sha2-256)

marshal

returns a protobuf serialized version, compatible with go-ipfs MerkleDAG

unMarshal

desirializes a probuf serialized node

(used internally) getPBNode

used internally

(used internally) makeLink

used internally

DAGService

add

stores the node

get

fetches a node by its multihash

getRecursive

fetches a node and all of its links (if possible)

remove

deletes a node

License

LICENSE

js-ipfs-merkle-dag's People

Contributors

daviddias avatar vijayee avatar

Watchers

James Cloos avatar Richard Littauer avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.