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
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
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
DAGLink
s 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