GithubHelp home page GithubHelp logo

creyes52 / node-ipfs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ipfs/js-ipfs

0.0 2.0 0.0 640 KB

ipfs implementation in node

Home Page: https://github.com/jbenet/ipfs

License: MIT License

Makefile 0.16% JavaScript 99.64% Shell 0.20%

node-ipfs's Introduction

ipfs implementation in node.

See: https://github.com/jbenet/ipfs

Please put all issues regarding IPFS design in the ipfs repo issues.

Please put all issues regarding node IPFS implementation in this repo.

Install

WARNING: this does nothing useful yet!

git clone https://github.com/jbenet/node-ipfs
cd node-ipfs
make
ipfs

The Makefile basically does:

# npm install all deps
cd submodules && ./npm-install.sh && cd ..

# link cli
cd submodules/ipfs-cli && npm link

Example

Suppose we have some files

> tree foo
foo
├── bam
│   └── bam
├── bar
└── baz

1 directory, 3 files

> cat foo/bar foo/baz foo/bam/bam
bar
baz
bam

Let's add them to ipfs

> ipfs add foo
foo: ignored (use -r for recursive)

> ipfs add -r foo
foo/baz: added block /XLM1ZETht3wv8vUPXMkx3JZGP5T9txAz782
foo/bar: added block /XLMCA8WXBNRBwFhzRnHgHFLwGmQzkAQELH7
foo/bam/bam: added block /XLaGqmCUX7sk52P4pkth8S5wV4NMztnf9zd
foo/bam: added tree /XLMLiUaCc7jh3eGFsNR8AhvRSSFySSvTaNb
foo: added tree /XLaoVHd834v62UsW56jew8Mp6FgZBXnZEeL

This added each file + directiory as block and tree objects, including the hash addresses.

We can list the directories (foo/ and foo/bam)

> ipfs ls /XLaoVHd834v62UsW56jew8Mp6FgZBXnZEeL
XLMLiUaCc7jh3eGFsNR8AhvRSSFySSvTaNb 47 bam
XLMCA8WXBNRBwFhzRnHgHFLwGmQzkAQELH7 6 bar
XLM1ZETht3wv8vUPXMkx3JZGP5T9txAz782 6 baz

> ipfs ls XLMLiUaCc7jh3eGFsNR8AhvRSSFySSvTaNb
XLaGqmCUX7sk52P4pkth8S5wV4NMztnf9zd 6 bam

We can cat the files.

> ipfs cat XLaGqmCUX7sk52P4pkth8S5wV4NMztnf9zd
bam

> ipfs cat XLMCA8WXBNRBwFhzRnHgHFLwGmQzkAQELH7
bar

And we can resolve paths through the trees :)

> ipfs cat /XLaoVHd834v62UsW56jew8Mp6FgZBXnZEeL/bar
bar

> ipfs cat /XLaoVHd834v62UsW56jew8Mp6FgZBXnZEeL/bam/bam
bam
> ipfs refs -r /XLaoVHd834v62UsW56jew8Mp6FgZBXnZEeL
XLMLiUaCc7jh3eGFsNR8AhvRSSFySSvTaNb
XLMCA8WXBNRBwFhzRnHgHFLwGmQzkAQELH7
XLM1ZETht3wv8vUPXMkx3JZGP5T9txAz782
XLaGqmCUX7sk52P4pkth8S5wV4NMztnf9zd

In progress:

  • ipfs - (this repo) master library, puts it all together
  • ipfs-bitswap - the Block Exchange protocol interface
  • ipfs-block - ipfs unit of data
  • ipfs-blocks - block service, using ipfs-storage
  • ipfs-cli - cli to a local ipfs node
  • ipfs-core - small hub, wires the core together
  • ipfs-dht - dht implementation (coral + s/kademlia)
  • ipfs-dht-routing - routing system using dht
  • ipfs-errors - errors (deprecated)
  • ipfs-message-stream - stream of packets (replaced by msgproto)
  • ipfs-mount - mount ipfs node using FUSE
  • ipfs-object - base ipfs object structure
  • ipfs-objects-git - git-like objects for filesystem + version control
  • ipfs-packet - packet coding (replaced by msgproto)
  • ipfs-path - ipfs path structure
  • ipfs-path-resolver - resolves paths using ipfs-blocks
  • ipfs-peer - a peer identity, including id and network addresses
  • ipfs-peer-ledger - relationship ledger between local and another peer
  • ipfs-peer-book - keeps track of multiple peer relationships
  • ipfs-routing - routing system interface
  • ipfs-storage - local node storage (kv store)

Todo:

  • ipfs-netmux - manages connections to multiple networks
  • ipfs-bitswap - the Block Exchange protocol interface
  • ipfs-bitswap-standard - the standard bitswap implementation
  • ipfs-datastore - datastore interface for ipfs
  • ipfs-cadag - the ipfs cadag primitives
  • ipfs-versioning - implementation of git analogue tools
  • ipfs-filesystem - a file system interface
  • ipfs-crypto - all crypto functions used by ipfs.

node-ipfs's People

Contributors

jbenet avatar andrewdeandrade avatar

Watchers

James Cloos avatar César Reyes 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.