0.7.3 • Published 9 years ago

ipfs-merkle-dag v0.7.3

Weekly downloads
21
License
ISC
Repository
github
Last release
9 years ago

js-ipfs-merkle-dag

npm.io npm.io npm.io 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

0.7.3

9 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.2

9 years ago

0.6.1

9 years ago

0.6.0

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.3

10 years ago

0.4.2

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.2

10 years ago