JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 141
  • Score
    100M100P100Q84075F
  • License ISC

A JavaScript implementations of the IPFS MerkleDAG implementations (protobufs)

Package Exports

  • ipfs-merkle-dag

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ipfs-merkle-dag) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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]>])

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

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

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

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

(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

used internally

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