Narcoleptic's Patch Mangler
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    ipfs-merkle-dagpublic

    js-ipfs-merkle-dag

    Coverage Status Travis CI Circle CI Dependency Status js-standard-style standard-readme compliant

    JavaScript Implementation of the DAGService and DAGNode data structure

    Table of Contents

    Install

    $ npm i ipfs-merkle-dag

    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

    const ipfsMDAG = require('ipfs-merkle-dag')
     
    // then, to access each of the components 
    ipfsMDAG.DAGService
    ipfsMDAG.DAGNode
    ipfsMDAG.DAGLink

    API

    DAGNode Class

    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 directly 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

    (property) size of the node, in bytes

    links

    (property) an array of DAGLinks belonging to the node

    multihash

    returns the multihash (default: sha2-256)

    marshal

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

    unMarshal

    deserializes a node encoded using protobuf

    getPBNode

    used internally

    makeLink

    used internally

    DAGLink Class

    Create a new DAGLink

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

    DAGService

    put

    stores the node

    putStream

    stores nodes using a writable pull-stream

    get

    fetches a node by its multihash

    getStream

    fetches a node as a pull-stream

    getRecursive

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

    getRecursiveStream

    fetches a node and all of its links (if possible) as pull-stream

    remove

    deletes a node

    License

    MIT © IPFS

    Keywords

    none

    install

    npm i ipfs-merkle-dag

    Downloadsweekly downloads

    61

    version

    0.7.3

    license

    ISC

    repository

    github.com

    last publish

    collaborators

    • avatar
    • avatar
    • avatar