Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IPFS - Hands On Intro

IPFS - Hands On Intro

Intro slides for a "Hands On Introduction to IPFS". These slides do not include the demo part-- which is the bulk of that talk.

Juan Batiz-Benet

May 04, 2015
Tweet

More Decks by Juan Batiz-Benet

Other Decks in Technology

Transcript

  1. 1MB

  2. 30

  3. can resolve unix-style paths across dag links 2. Overview QmbTJW4iGGBS

    3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz QmbTQmPMEFgh 1020 biff this node has some data… this node also has some data. but no links! 1 3 5 2 4 suppose links:
  4. can resolve unix-style paths across dag links 2. Overview QmbTJW4iGGBS

    3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz QmbTQmPMEFgh 1020 biff this node has some data… this node also has some data. but no links! suppose H(<1>) = QmW98pJrc6FZ We can resolve: /ipfs/QmW98pJrc6FZ as 1 /ipfs/QmW98pJrc6FZ/foo as 2 /ipfs/QmW98pJrc6FZ/bar as 3 /ipfs/QmW98pJrc6FZ/foo/biff as 3 /ipfs/QmW98pJrc6FZ/baz as 4 1 3 5 1 2 2 3 4 4 3 suppose links: 1
  5. can resolve unix-style paths across dag links 2. Overview QmbTJW4iGGBS

    3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz QmbTQmPMEFgh 1020 biff this node has some data… this node also has some data. but no links! suppose H(<1>) = QmW98pJrc6FZ We can resolve: /ipfs/QmW98pJrc6FZ as 1 /ipfs/QmW98pJrc6FZ/foo as 2 /ipfs/QmW98pJrc6FZ/bar as 3 /ipfs/QmW98pJrc6FZ/foo/biff as 3 /ipfs/QmW98pJrc6FZ/baz as 4 1 3 5 1 2 2 3 4 4 3 suppose links: 1
  6. can resolve unix-style paths across dag links 2. Overview QmbTJW4iGGBS

    3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz QmbTQmPMEFgh 1020 biff this node has some data… this node also has some data. but no links! suppose H(<1>) = QmW98pJrc6FZ We can resolve: /ipfs/QmW98pJrc6FZ as 1 /ipfs/QmW98pJrc6FZ/foo as 2 /ipfs/QmW98pJrc6FZ/bar as 3 /ipfs/QmW98pJrc6FZ/foo/biff as 3 /ipfs/QmW98pJrc6FZ/baz as 4 1 3 5 1 2 2 3 4 4 3 suppose links: 1
  7. can resolve unix-style paths across dag links 2. Overview QmbTJW4iGGBS

    3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz QmbTQmPMEFgh 1020 biff this node has some data… this node also has some data. but no links! suppose H(<1>) = QmW98pJrc6FZ We can resolve: /ipfs/QmW98pJrc6FZ as 1 /ipfs/QmW98pJrc6FZ/foo as 2 /ipfs/QmW98pJrc6FZ/bar as 3 /ipfs/QmW98pJrc6FZ/foo/biff as 3 /ipfs/QmW98pJrc6FZ/baz as 4 1 3 5 1 2 2 3 4 4 3 suppose links: 1
  8. can resolve unix-style paths across dag links 2. Overview QmbTJW4iGGBS

    3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz QmbTQmPMEFgh 1020 biff this node has some data… this node also has some data. but no links! suppose H(<1>) = QmW98pJrc6FZ We can resolve: /ipfs/QmW98pJrc6FZ as 1 /ipfs/QmW98pJrc6FZ/foo as 2 /ipfs/QmW98pJrc6FZ/bar as 3 /ipfs/QmW98pJrc6FZ/foo/biff as 3 /ipfs/QmW98pJrc6FZ/baz as 4 1 3 5 1 2 2 3 4 4 3 suppose links: 1
  9. can resolve unix-style paths across dag links 2. Overview QmbTJW4iGGBS

    3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz QmbTQmPMEFgh 1020 biff this node has some data… this node also has some data. but no links! suppose H(<1>) = QmW98pJrc6FZ We can resolve: /ipfs/QmW98pJrc6FZ as 1 /ipfs/QmW98pJrc6FZ/foo as 2 /ipfs/QmW98pJrc6FZ/bar as 3 /ipfs/QmW98pJrc6FZ/foo/biff as 3 /ipfs/QmW98pJrc6FZ/baz as 4 1 3 5 1 2 2 3 4 4 3 suppose links: 1
  10. blob, tree, commit unix files and dirs any data structures

    are represented as dags blocks, txns, wallets 2. Overview
  11. blob, tree, commit unix files and dirs any data structures

    are represented as dags blocks, txns, wallets kv-stores 2. Overview
  12. blob, tree, commit unix files and dirs any data structures

    are represented as dags blocks, txns, wallets kv-stores 2. Overview
  13. files are dag nodes BIG files may be split into

    many unixfs as a dag 2. Overview
  14. directories are also dag nodes files are dag nodes BIG

    files may be split into many unixfs as a dag 2. Overview
  15. which link to others directories are also dag nodes files

    are dag nodes BIG files may be split into many unixfs as a dag 2. Overview
  16. ipfs paths: blockchain /ipfs/XLYkgq61DYaQ8Nhk/parent/tx/15 parent <hash1> XLYkgq61DYaQ8Nhk data1 tx <hash3>

    <hash1> data2 <hash3> data3 15 <hash5> <hash5> parent <hash2> 14 <hash4>
  17. ipfs paths: blockchain /ipfs/XLYkgq61DYaQ8Nhk/parent/tx/15 parent <hash1> XLYkgq61DYaQ8Nhk data1 tx <hash3>

    <hash1> data2 <hash3> data3 15 <hash5> <hash5> data4 input0 <hash6> parent <hash2> 14 <hash4> output0 <hash7>
  18. in IPFS data forms a dag it’s called the merkle

    dag because the links are hashes 2. Overview
  19. in IPFS data forms a dag it’s called the merkle

    dag because the links are hashes 2. Overview
  20. in IPFS data forms a dag nodes have links and

    data [ (hash, size, name), … ] QmbTJW4iGGBS 3987 foo QmbTQmPMEFgh 1020 bar QmZFJguywFUY 6787 baz anything you want []byte links data 2. Overview
  21. can store part of the dag has pki based identity

    connects to others an IPFS node 2. Overview
  22. has pki based identity connects to others can get more

    from peers an IPFS node can store part of the dag 2. Overview
  23. has pki based identity connects to others can be run

    as a server can get more from peers an IPFS node can store part of the dag 2. Overview
  24. has pki based identity connects to others can be run

    as a server or embedded in apps app
 
 can get more from peers an IPFS node can store part of the dag 2. Overview
  25. 1. Why - The Problems! 2. How - The Overview

    3. What - The Demo - install - run a node - stream media - publish website - boot a vm
  26. 3 ways to install IPFS 1. npm install -g go-ipfs

    2. go get github.com/ipfs/go-ipfs/cmd/ipfs 3. install packages on the website