├── versions ├── hisory ├── current └── history ├── static ├── favicon.ico └── img │ ├── icon-go.png │ ├── icon-git.png │ ├── icon-ipfs.png │ ├── ipld-logo.png │ ├── icon-bitcoin.png │ ├── icon-node-js.png │ ├── icon-python.png │ ├── ipld-hero-bg.jpg │ ├── icon-ethereum.png │ ├── icon-javascript.png │ ├── ipld-feature-3.png │ ├── ipld-logotext.png │ ├── implementations-hero-bg.jpg │ ├── icon-ethereum.svg │ ├── hex-arrow.svg │ ├── icon-git.svg │ ├── splash │ ├── hex-2.svg │ ├── hex-3.svg │ ├── hex-1.svg │ ├── hex-4.svg │ └── ipld-hero.svg │ ├── protocollabs.svg │ ├── github-mark.svg │ ├── ipld-component-1.svg │ ├── icon-bitcoin.svg │ ├── ipld-component-3.svg │ ├── icon-ipfs.svg │ ├── ipld-component-2.svg │ ├── ipld-tree.svg │ ├── ipld.svg │ ├── bitcoin-to-git.svg │ ├── ethereum-to-ipfs.svg │ ├── ipld-feature-6.svg │ ├── ipld-feature-5.svg │ ├── ipld-feature-4.svg │ ├── ipld-feature-2.svg │ ├── ipld-feature-3.svg │ ├── ipld-feature-1.svg │ ├── ipld-hero.svg │ └── ipld-illustration.svg ├── .gitignore ├── layouts └── partials │ ├── use-text.html │ ├── bundle-th.html │ ├── youtube-preview.html │ ├── youtube-iframe.html │ ├── use.html │ ├── hex.html │ ├── topbar.html │ ├── support.html │ ├── footer.html │ ├── head.html │ └── tree.html ├── data ├── implementation.toml └── example.toml ├── config.toml ├── js ├── example-switcher.js └── youtube-switcher.js ├── LICENSE ├── .circleci └── config.yml ├── package.json ├── dnslink.sh ├── less └── main.less ├── Makefile ├── README.md └── content ├── index.html └── implementations.html /versions/hisory: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /versions/current: -------------------------------------------------------------------------------- 1 | QmTxRvftPnKeR7iJfeVpfsGCYEwZ92ot9zrTksAWUACTs7 2 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /static/img/icon-go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-go.png -------------------------------------------------------------------------------- /static/img/icon-git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-git.png -------------------------------------------------------------------------------- /static/img/icon-ipfs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-ipfs.png -------------------------------------------------------------------------------- /static/img/ipld-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/ipld-logo.png -------------------------------------------------------------------------------- /static/img/icon-bitcoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-bitcoin.png -------------------------------------------------------------------------------- /static/img/icon-node-js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-node-js.png -------------------------------------------------------------------------------- /static/img/icon-python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-python.png -------------------------------------------------------------------------------- /static/img/ipld-hero-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/ipld-hero-bg.jpg -------------------------------------------------------------------------------- /static/img/icon-ethereum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-ethereum.png -------------------------------------------------------------------------------- /static/img/icon-javascript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/icon-javascript.png -------------------------------------------------------------------------------- /static/img/ipld-feature-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/ipld-feature-3.png -------------------------------------------------------------------------------- /static/img/ipld-logotext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/ipld-logotext.png -------------------------------------------------------------------------------- /versions/history: -------------------------------------------------------------------------------- 1 | QmWXXq3155EqDz3AgN2zhG4fgxMV4XScux88n8Ccff67q4 2 | QmTxRvftPnKeR7iJfeVpfsGCYEwZ92ot9zrTksAWUACTs7 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | public 2 | node_modules 3 | npm-debug.log 4 | package-lock.json 5 | static/css 6 | static/js 7 | auth.token 8 | -------------------------------------------------------------------------------- /static/img/implementations-hero-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipld/website/HEAD/static/img/implementations-hero-bg.jpg -------------------------------------------------------------------------------- /layouts/partials/use-text.html: -------------------------------------------------------------------------------- 1 |

2 | {{ .title }} 3 |

4 |

5 | {{ .desc}} 6 |

7 | -------------------------------------------------------------------------------- /layouts/partials/bundle-th.html: -------------------------------------------------------------------------------- 1 | {{ $filename := (replace .name " " "-" | lower) }} 2 | {{ $src := (printf "/img/icon-%s.png" $filename) }} 3 | 4 | {{ .name }} 5 | -------------------------------------------------------------------------------- /layouts/partials/youtube-preview.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
{{ .caption }}
5 |
6 |
7 | -------------------------------------------------------------------------------- /data/implementation.toml: -------------------------------------------------------------------------------- 1 | [git] 2 | [ipld-git] 3 | go = "https://github.com/ipfs/go-ipld-git" 4 | 5 | [bitcoin] 6 | [ipld-btc] 7 | go = "https://github.com/ipfs/go-ipld-btc" 8 | 9 | [IPFS] 10 | [dag-pb] 11 | js = "https://github.com/ipld/js-ipld-dag-pb" 12 | go = "https://github.com/ipfs/go-ipld" 13 | [dag-cbor] 14 | js = "https://github.com/ipld/js-ipld-dag-cbor" 15 | go = "https://github.com/ipfs/go-ipld-cbor" 16 | -------------------------------------------------------------------------------- /layouts/partials/youtube-iframe.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
{{ .caption }}
6 |
7 | -------------------------------------------------------------------------------- /layouts/partials/use.html: -------------------------------------------------------------------------------- 1 | {{ $filename := (replace .title " " "-" | lower) }} 2 | {{ $src := (printf "/img/%s.svg" $filename) }} 3 |
4 |
5 | {{ partial "use-text" . }} 6 |
7 |
8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | baseURL = "https://ipld.io" 2 | relativeURLs = true 3 | 4 | [params] 5 | domain = "ipld.io" 6 | name = "IPLD" 7 | title = "IPLD - The data model of the content-addressable web" 8 | description = "The data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD." 9 | author = "Protocol Labs" 10 | github = "https://github.com/ipld/ipld" 11 | specifications = "https://github.com/ipld/specs" 12 | -------------------------------------------------------------------------------- /static/img/icon-ethereum.svg: -------------------------------------------------------------------------------- 1 | Group 41 -------------------------------------------------------------------------------- /static/img/hex-arrow.svg: -------------------------------------------------------------------------------- 1 | -> -------------------------------------------------------------------------------- /static/img/icon-git.svg: -------------------------------------------------------------------------------- 1 | GIT -------------------------------------------------------------------------------- /layouts/partials/hex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/img/splash/hex-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/img/protocollabs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/img/github-mark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /js/example-switcher.js: -------------------------------------------------------------------------------- 1 | (function init (document) { 2 | var links = document.querySelectorAll('[data-example-show]') 3 | forEachNode(links, function (node) { 4 | node.addEventListener('click', onClick, false) 5 | }) 6 | 7 | function onClick (evt) { 8 | evt.preventDefault() 9 | var link = evt.currentTarget 10 | var showKey = link.dataset.exampleShow 11 | 12 | var links = document.querySelectorAll('[data-example-show]') 13 | forEachNode(links, function (node) { 14 | var key = node.dataset.exampleShow 15 | console.log('link', key, key === showKey) 16 | node.classList.toggle('active', key === showKey) 17 | }) 18 | 19 | var nodes = document.querySelectorAll('[data-example]') 20 | forEachNode(nodes, function (node) { 21 | var key = node.dataset.example 22 | console.log('example', key, key !== showKey) 23 | node.classList.toggle('dn', key !== showKey) 24 | }) 25 | } 26 | 27 | function forEachNode (nodes, fn) { [].forEach.call(nodes, fn) } 28 | })(document) 29 | -------------------------------------------------------------------------------- /layouts/partials/topbar.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 |
8 | 16 |
17 |
18 | -------------------------------------------------------------------------------- /static/img/splash/hex-3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/img/ipld-component-1.svg: -------------------------------------------------------------------------------- 1 | Page 1 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Protocol Labs Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /layouts/partials/support.html: -------------------------------------------------------------------------------- 1 | {{ if eq .level 2}} 2 |
3 | 4 | 5 | {{ partial "hex.html" (dict "fill" "#0CC06D") }} 6 | 7 | 8 | 9 | Full support 10 |
11 | {{end}} 12 | 13 | {{ if eq .level 1}} 14 |
15 | 16 | 17 | {{ partial "hex.html" (dict "fill" "#F2B602") }} 18 | 19 | 20 | 21 | In progress 22 |
23 | {{end}} 24 | 25 | {{ if eq .level 0}} 26 |
27 | {{ partial "hex.html" (dict "fill" "#97A0AE") }} 28 | Missing 29 |
30 | {{end}} 31 | -------------------------------------------------------------------------------- /data/example.toml: -------------------------------------------------------------------------------- 1 | [git] 2 | code = ''' 3 | Greetings, Professor Falken. 4 | ''' 5 | cid = ''' 6 | ::= 7 | 8 | ::= 9 | ::= 10 | ::= 11 | 12 | Can't see the trees for the porcelain 13 | ''' 14 | 15 | [bitcoin] 16 | code = ''' 17 | A strange game. 18 | ''' 19 | cid = ''' 20 | ::= 21 | 22 | ::= 23 | ::= 24 | ::= 25 | 26 | A trade union of GPU miners 27 | ''' 28 | 29 | [ethereum] 30 | code = ''' 31 | The only winning move is not to play. 32 | ''' 33 | cid = ''' 34 | ::= 35 | 36 | ::= 37 | ::= 38 | ::= 39 | 40 | what if you could program money 41 | ''' 42 | 43 | [ipfs] 44 | code = ''' 45 | How about a nice game of chess? 46 | ''' 47 | cid = ''' 48 | ::= 49 | 50 | ::= 51 | ::= 52 | ::= 53 | 54 | counterantidisintermediationism 55 | for the win. 56 | ''' 57 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | docker: 5 | - image: circleci/node:10.15.1 6 | steps: 7 | - checkout 8 | - run: 9 | command: make 10 | - persist_to_workspace: 11 | root: . 12 | paths: 13 | - public 14 | 15 | deploy: 16 | docker: 17 | - image: olizilla/ipfs-dns-deploy:1.1 18 | environment: 19 | DOMAIN: ipld.io 20 | BUILD_DIR: public 21 | steps: 22 | - attach_workspace: 23 | at: /tmp/workspace 24 | - run: 25 | name: Deploy website to IPFS 26 | command: | 27 | pin_name="$DOMAIN build $CIRCLE_BUILD_NUMBER" 28 | 29 | hash=$(pin-to-cluster.sh "$pin_name" /tmp/workspace/$BUILD_DIR) 30 | 31 | echo "Website added to IPFS: https://ipfs.io/ipfs/$hash" 32 | 33 | if [ "$CIRCLE_BRANCH" == "master" ] ; then 34 | dnslink-dnsimple -d $DOMAIN -r _dnslink -l /ipfs/$hash 35 | fi 36 | 37 | workflows: 38 | version: 2 39 | build-deploy: 40 | jobs: 41 | - build 42 | - deploy: 43 | context: ipfs-dns-deploy 44 | requires: 45 | - build 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ipld.io", 3 | "version": "1.0.0", 4 | "description": "A static site to show you that IPLD is a thing, and a good one at that.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "say sorry", 8 | "start": "hugo server -ws .", 9 | "deploy": "hugo && ipfs add -r public", 10 | "deploy:surge": "hugo && surge --project public --domain ipld.surge.sh" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/tableflip/ipld.io.git" 15 | }, 16 | "author": "", 17 | "license": "ISC", 18 | "bugs": { 19 | "url": "https://github.com/tableflip/ipld.io/issues" 20 | }, 21 | "homepage": "https://github.com/tableflip/ipld.io#readme", 22 | "devDependencies": { 23 | "dnslink-deploy": "^1.0.7", 24 | "hugo-bin": "0.18.1", 25 | "imagemin-cli": "^3.0.0", 26 | "imagemin-jpegtran": "^5.0.2", 27 | "imagemin-optipng": "^5.2.1", 28 | "imagemin-svgo": "^5.2.2", 29 | "less": "^2.7.2", 30 | "less-plugin-autoprefix": "^1.5.1", 31 | "less-plugin-clean-css": "^1.5.1", 32 | "nodemon": "^1.18.10", 33 | "options": "0.0.6", 34 | "standard": "^10.0.2", 35 | "surge": "^0.19.0", 36 | "tachyons": "^4.7.4", 37 | "uglify-js": "^3.0.23" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /static/img/splash/hex-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/img/splash/hex-4.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/img/icon-bitcoin.svg: -------------------------------------------------------------------------------- 1 | BIT -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /static/img/ipld-component-3.svg: -------------------------------------------------------------------------------- 1 | Group -------------------------------------------------------------------------------- /static/img/icon-ipfs.svg: -------------------------------------------------------------------------------- 1 | IPFS -------------------------------------------------------------------------------- /layouts/partials/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {{ $.Param "title" }} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /dnslink.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # 4 | # Usage: 5 | # DNSIMPLE_TOKEN= ./dnslink.sh 6 | # 7 | # Example: 8 | # DNSIMPLE_TOKEN=trustno1 ./dnslink.sh website.protocol.ai Qmfoobar 9 | # 10 | # Dependencies: 11 | # - bash 12 | # - curl 13 | # - jq 14 | # 15 | # From: 16 | # https://raw.githubusercontent.com/ipfs/infrastructure/master/scripts/dnslink.sh 17 | # 18 | 19 | set -e 20 | 21 | ZONE="$1" 22 | HASH="$2" 23 | 24 | ([ ! -z "$DNSIMPLE_TOKEN" ] && [ ! -z "$ZONE" ] && [ ! -z "$HASH" ]) \ 25 | || (echo "Usage: DNSIMPLE_TOKEN= ./dnslink.sh " && exit 1) 26 | 27 | RECORD_NAME="_dnslink" 28 | RECORD_TTL=120 29 | 30 | record_id=$( 31 | curl -v -s "https://api.dnsimple.com/v1/domains/$ZONE/records?name=$RECORD_NAME&type=TXT" \ 32 | -H "X-DNSimple-Domain-Token: $DNSIMPLE_TOKEN" \ 33 | -H "Accept: application/json" \ 34 | | jq -r '.[].record.id' 35 | ) 36 | 37 | if [ -z "$record_id" ]; then 38 | curl -v -s -X POST "https://api.dnsimple.com/v1/domains/$ZONE/records" \ 39 | -H "X-DNSimple-Domain-Token: $DNSIMPLE_TOKEN" \ 40 | -H "Accept: application/json" \ 41 | -H "Content-Type: application/json" \ 42 | -d "{\"record\":{ \"name\":\"$RECORD_NAME\", \"record_type\":\"TXT\", \"content\":\"dnslink=/ipfs/$HASH\", \"ttl\":\"$RECORD_TTL\" }}" \ 43 | | jq -r '.record' \ 44 | && printf "\\nIt looks like we're good: https://ipfs.io/ipns/$ZONE\\n" 45 | else 46 | curl -v -s -X PUT "https://api.dnsimple.com/v1/domains/$ZONE/records/$record_id" \ 47 | -H "X-DNSimple-Domain-Token: $DNSIMPLE_TOKEN" \ 48 | -H "Accept: application/json" \ 49 | -H "Content-Type: application/json" \ 50 | -d "{\"record\":{ \"content\":\"dnslink=/ipfs/$HASH\", \"name\":\"$RECORD_NAME\", \"ttl\":\"$RECORD_TTL\" }}" \ 51 | | jq -r '.record' \ 52 | && printf "\\nIt looks like we're good: https://ipfs.io/ipns/$ZONE\\n" 53 | fi 54 | -------------------------------------------------------------------------------- /static/img/ipld-component-2.svg: -------------------------------------------------------------------------------- 1 | Group -------------------------------------------------------------------------------- /js/youtube-switcher.js: -------------------------------------------------------------------------------- 1 | (function init (document) { 2 | var previewLinks = document.querySelectorAll('[data-youtube-switcher]') 3 | ;[].forEach.call(previewLinks, function (node) { 4 | node.addEventListener('click', onPreviewClick, false) 5 | }) 6 | 7 | function onPreviewClick (evt) { 8 | evt.preventDefault() 9 | var preview = evt.currentTarget 10 | var player = document.getElementById('active-video') 11 | updatePlayer(player, getYoutubeId(preview), getCaption(preview)) 12 | updatePreview(preview, getYoutubeId(player), getCaption(player)) 13 | } 14 | 15 | function updatePlayer (node, youtubeId, caption) { 16 | var newNode = node.cloneNode(true) 17 | setYoutubeId(newNode, youtubeId) 18 | setCaption(newNode, caption) 19 | setAttr(newNode, 'iframe', 'src', '') 20 | node.parentNode.replaceChild(newNode, node) 21 | setAttr(newNode, 'iframe', 'src', 'https://www.youtube.com/embed/' + youtubeId + '?autoplay=1&showinfo=0') 22 | } 23 | 24 | function updatePreview (node, youtubeId, caption) { 25 | var newNode = node.cloneNode(true) 26 | setYoutubeId(newNode, youtubeId) 27 | setCaption(newNode, caption) 28 | setAttr(newNode, 'img', 'src', 'https://img.youtube.com/vi/' + youtubeId + '/mqdefault.jpg') 29 | newNode.setAttribute('href', 'https://www.youtube.com/watch?v=' + youtubeId) 30 | newNode.addEventListener('click', onPreviewClick, false) 31 | node.parentNode.replaceChild(newNode, node) 32 | } 33 | 34 | function getCaption (node) { 35 | return node.getElementsByTagName('figcaption')[0].textContent 36 | } 37 | 38 | function setCaption (node, caption) { 39 | node.getElementsByTagName('figcaption')[0].textContent = caption 40 | } 41 | 42 | function getYoutubeId (node) { 43 | return node.dataset.youtubeId 44 | } 45 | 46 | function setYoutubeId (node, youtubeId) { 47 | node.dataset.youtubeId = youtubeId 48 | } 49 | 50 | function setAttr (node, tag, name, value) { 51 | node.getElementsByTagName(tag)[0].setAttribute(name, value) 52 | } 53 | })(document) 54 | -------------------------------------------------------------------------------- /static/img/ipld-tree.svg: -------------------------------------------------------------------------------- 1 | logotype_IPLD -------------------------------------------------------------------------------- /static/img/ipld.svg: -------------------------------------------------------------------------------- 1 | logotype_IPLD -------------------------------------------------------------------------------- /layouts/partials/tree.html: -------------------------------------------------------------------------------- 1 | 2 | logotype_IPLD 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /static/img/bitcoin-to-git.svg: -------------------------------------------------------------------------------- 1 | Bit_to Git -------------------------------------------------------------------------------- /static/img/ethereum-to-ipfs.svg: -------------------------------------------------------------------------------- 1 | Ethereum to IPFS -------------------------------------------------------------------------------- /static/img/ipld-feature-6.svg: -------------------------------------------------------------------------------- 1 | GroupV.1V.2V.3 -------------------------------------------------------------------------------- /less/main.less: -------------------------------------------------------------------------------- 1 | @import (inline) "node_modules/tachyons/css/tachyons.min.css"; 2 | 3 | .open-sans { 4 | font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; 5 | } 6 | .ipld-dark-gray { 7 | color: #515561; 8 | } 9 | .ipld-gray { 10 | color: #5A626E; 11 | } 12 | .ipld-light-gray { 13 | color: #97A1AF; 14 | } 15 | .bg-ipld-blue { 16 | background-color: #DEEDFF; 17 | } 18 | .f-30 { 19 | font-size: 30px; 20 | } 21 | .f-18 { 22 | font-size: 18px; 23 | } 24 | .embed-responsive { 25 | position:relative; 26 | overflow:hidden; 27 | height:0; 28 | max-width:100%; 29 | } 30 | .embed-responsive-16by9 { 31 | padding-bottom:56.25%; 32 | } 33 | .embed-responsive-item { 34 | position:absolute; 35 | top:0; 36 | left:0; 37 | width:100%; 38 | height:100%; 39 | } 40 | .bundle-table { 41 | table-layout: fixed; 42 | width: 100%; 43 | text-align: center; 44 | border-collapse: collapse; 45 | } 46 | .bundle-table th, 47 | .bundle-table td { 48 | height: 60px; 49 | vertical-align: middle; 50 | background: #FFF; 51 | border: solid 1px #97A0AE; 52 | } 53 | .bundle-table tbody:hover tr:first-child th:first-child, 54 | .bundle-table tr:hover th, 55 | .bundle-table tr:hover td { 56 | background-color: #FFF7F0; 57 | } 58 | .bundle-table thead tr:hover th { 59 | background-color: #FFF; 60 | } 61 | .hide { 62 | position: absolute; 63 | overflow: hidden; 64 | clip: rect(0 0 0 0); 65 | height: 1px; width: 1px; 66 | margin: -1px; padding: 0; border: 0; 67 | } 68 | .hover-saturate { 69 | transition: filter 0.2s linear, opacity 0.2s linear; 70 | filter: saturate(0%); 71 | opacity: 0.5; 72 | } 73 | .hover-saturate:hover { 74 | filter: saturate(50%); 75 | opacity: 0.6; 76 | } 77 | .hover-saturate.active, 78 | .hover-saturate:active { 79 | filter: saturate(100%); 80 | opacity: 1; 81 | } 82 | .hover-show { 83 | display: none; 84 | } 85 | .hover-trigger:hover .hover-show { 86 | display: inline-block; 87 | } 88 | .hover-trigger:hover .hover-hide { 89 | display: none; 90 | } 91 | 92 | /* ---- Splash animation tricks --------------------------------------------- */ 93 | svg .ipld-logo { 94 | animation: scale 500ms ease-in-out 1s both; 95 | transform-origin: center; 96 | } 97 | 98 | svg .ipld-logo-trunk { 99 | animation: draw-stroke 400ms ease-in-out 1.4s forwards; 100 | stroke-dasharray: 150; 101 | stroke-dashoffset: 150; 102 | } 103 | 104 | svg .ipld-logo-branch { 105 | animation: draw-stroke 600ms ease-in-out 1.6s forwards; 106 | stroke-dasharray: 100; 107 | stroke-dashoffset: 100; 108 | } 109 | 110 | svg .ipld-logo-connector { 111 | animation: draw-stroke 600ms ease-in-out 1.8s forwards; 112 | stroke-dasharray: 200; 113 | stroke-dashoffset: 200; 114 | } 115 | 116 | svg .ipld-logo-leaf { 117 | animation: scale 800ms ease-in-out 1.8s both; 118 | transform-origin: bottom; 119 | } 120 | 121 | @keyframes draw-stroke { 122 | 100% {stroke-dashoffset:0;} 123 | } 124 | 125 | @keyframes scale { 126 | 0% { transform: scale(0) } 127 | 100% { transform: scale(1) } 128 | } 129 | 130 | /* ---- animate outer hexagons on mouse over -------------------------------- */ 131 | .draw-hex { 132 | stroke-dasharray:151 153; 133 | stroke-dashoffset:153; 134 | } 135 | .draw-line { 136 | stroke-dasharray:20 22; 137 | stroke-dashoffset:21; 138 | } 139 | 140 | .hover-trigger:hover .draw-hex { animation: draw-hex-in 800ms ease-out both } 141 | .hover-trigger:hover .draw-line { animation: draw-line-in 800ms ease-out both } 142 | 143 | .hover-trigger.out .draw-hex { animation: draw-hex-out 800ms ease-out both } 144 | .hover-trigger.out .draw-line { animation: draw-line-out 800ms ease-out both } 145 | 146 | @keyframes draw-hex-in { 147 | 0% {stroke-dashoffset:153;} 148 | 100% {stroke-dashoffset:0;} 149 | } 150 | 151 | @keyframes draw-hex-out { 152 | 0% {stroke-dashoffset:0;} 153 | 100% {stroke-dashoffset:153;} 154 | } 155 | 156 | @keyframes draw-line-in { 157 | 0% {stroke-dashoffset:21;} 158 | 100% {stroke-dashoffset:0;} 159 | } 160 | 161 | @keyframes draw-line-2-in { 162 | 0% {stroke-dashoffset:88;} 163 | 100% {stroke-dashoffset:0;} 164 | } 165 | 166 | @keyframes draw-line-out { 167 | 0% {stroke-dashoffset:0;} 168 | 100% {stroke-dashoffset:21;} 169 | } 170 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | DOMAIN="ipld.io" 2 | 3 | IPFSLOCAL="http://localhost:8080/ipfs/" 4 | IPFSGATEWAY="https://ipfs.io/ipfs/" 5 | NPM=npm 6 | NPMBIN=./node_modules/.bin 7 | OUTPUTDIR=public 8 | 9 | ifeq ($(DEBUG), true) 10 | PREPEND= 11 | APPEND= 12 | else 13 | PREPEND=@ 14 | APPEND=1>/dev/null 15 | endif 16 | 17 | build: clean install lint css js minify 18 | $(PREPEND)$(NPMBIN)/hugo && \ 19 | echo "" && \ 20 | echo "Site built out to ./public dir" 21 | 22 | help: 23 | @echo 'Makefile for ipld.io, a hugo built static site. ' 24 | @echo ' ' 25 | @echo 'Usage: ' 26 | @echo ' make Build the optimised site to ./$(OUTPUTDIR) ' 27 | @echo ' make serve Preview the production ready site at http://localhost:1313 ' 28 | @echo ' make lint Check your JS and CSS are ok ' 29 | @echo ' make js Copy the *.js to ./static/js ' 30 | @echo ' make css Compile the *.css to ./static/css ' 31 | @echo ' make minify Optimise all the things! ' 32 | @echo ' make dev Start a hot-reloding dev server on http://localhost:1313 ' 33 | @echo ' make deploy Add the website to your local IPFS node ' 34 | @echo ' make publish-to-domain Update $(DOMAIN) DNS record to the ipfs hash from the last deploy ' 35 | @echo ' make clean remove the generated files ' 36 | @echo ' ' 37 | @echo ' DEBUG=true make [command] for increased verbosity ' 38 | 39 | serve: install lint js css minify 40 | $(PREPEND)$(NPMBIN)/hugo server 41 | 42 | node_modules: 43 | $(PREPEND)$(NPM) i $(APPEND) 44 | 45 | install: node_modules 46 | $(PREPEND)[ -d static/css ] || mkdir -p static/css && \ 47 | [ -d static/js ] || mkdir -p static/js 48 | 49 | lint: install 50 | $(PREPEND)$(NPMBIN)/standard layouts && $(NPMBIN)/lessc --lint less/* 51 | 52 | css: install 53 | $(PREPEND)$(NPMBIN)/lessc --clean-css --autoprefix less/main.less static/css/main.css $(APPEND) 54 | 55 | js: install 56 | $(PREPEND)cp -a js/ static/js $(APPEND) 57 | 58 | minify: install minify-js minify-img 59 | 60 | minify-js: install 61 | $(PREPEND)find static/js -name '*.js' -exec $(NPMBIN)/uglifyjs {} --compress --output {} $(APPEND) \; 62 | 63 | minify-img: install 64 | $(PREPEND)find static/img -type d -exec $(NPMBIN)/imagemin {}/* --out-dir={} $(APPEND) \; 65 | 66 | dev: install css js 67 | $(PREPEND)( \ 68 | $(NPMBIN)/nodemon --quiet --watch css --exec "$(NPMBIN)/lessc --clean-css --autoprefix less/main.less static/css/main.css" & \ 69 | $(NPMBIN)/nodemon --quiet --watch js --exec "cp -a js/ static/js" & \ 70 | $(NPMBIN)/hugo server -w \ 71 | ) 72 | 73 | deploy: 74 | $(PREPEND)ipfs swarm peers >/dev/null || (echo "ipfs daemon must be online to publish" && exit 1) 75 | ipfs add -r -q $(OUTPUTDIR) | tail -n1 >versions/current 76 | cat versions/current >>versions/history 77 | @export hash=`cat versions/current`; \ 78 | echo ""; \ 79 | echo "published website:"; \ 80 | echo "- $(IPFSLOCAL)$$hash"; \ 81 | echo "- $(IPFSGATEWAY)$$hash"; \ 82 | echo ""; \ 83 | echo "next steps:"; \ 84 | echo "- ipfs pin add -r /ipfs/$$hash"; \ 85 | echo "- make publish-to-domain"; \ 86 | 87 | publish-to-domain: versions/current 88 | DNSSIMPLE_TOKEN="$(shell if [ -f auth.token ]; then cat auth.token; else cat $$HOME/.protocol/dnsimple.token; fi)"; \ 89 | ./dnslink.sh $(DOMAIN) $(shell cat versions/current) 90 | 91 | clean: 92 | $(PREPEND)[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) && \ 93 | [ ! -d static/css ] || rm -rf static/css/*.css && \ 94 | [ ! -d static/js ] || rm -rf static/js/*.js 95 | 96 | .PHONY: build help install lint css js minify minify-js minify-img dev stopdev deploy publish-to-domain clean 97 | -------------------------------------------------------------------------------- /static/img/ipld-feature-5.svg: -------------------------------------------------------------------------------- 1 | ipld-feature-5 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | !!! 3 | 4 | The website source repo has **moved**. 5 | 6 | We're now building the website out sources of the [ipld/ipld](https://github.com/ipld/ipld/) meta-repo, 7 | where it's handled in a unified way with all the docs and specs content that needs the publishing! 8 | 9 | All documentation, fixtures, specifications, and web content is now gathered into that repo. 10 | Please update your links, and direct new contributions there. 11 | 12 | The website is still published at https://ipld.io/ , as before. 13 | 14 | !!! 15 | 16 | --- 17 | 18 | # IPLD website 19 | 20 | [![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) 21 | [![](https://img.shields.io/badge/project-IPLD-blue.svg?style=flat-square)](http://github.com/ipld/ipld) 22 | [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) 23 | [![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) 24 | [![build status](https://img.shields.io/circleci/project/github/ipld/website/master.svg?style=flat-square)](https://circleci.com/gh/ipld/website) 25 | 26 | 27 | ![ipld logo animation](https://cloud.githubusercontent.com/assets/58871/26447582/074ed6cc-4141-11e7-9d4d-a28a58597772.gif) 28 | 29 | > Official website for IPLD http://ipld.io 30 | 31 | This repository contains the source code for the IPLD website available at http://ipld.io 32 | 33 | This project builds out a static site to explain IPLD, ready for deployment on ipfs. It uses [`hugo`](https://github.com/gohugoio/hugo) to glue the html together. It provides an informative, public-facing website. The most important things are the words, concepts and links it presents. 34 | 35 | The implementation aims to progressively enhance the content. The styling is done with [tachyons](http://tachyons.io/) to keep things light. The animations are done in SVG and CSS. There is very little JavaScript and the interactive elements that use JS should degrade gracefully on browsers without it. 36 | 37 | ## Install 38 | 39 | ```sh 40 | git clone https://github.com/ipld/website 41 | ``` 42 | 43 | We use `make` to build the site, and `npm` to fetch our build tool dependencies. Running `make` or `make dev` will fetch the dependencies from `npm` for you the first time you run it. 44 | 45 | If you have any problems with building the site, try removing your local `node_module` director and re-run `make`. 46 | 47 | ## Usage 48 | 49 | To work on the site locally with a hot-reloading dev site served at http://localhost:1313/ 50 | 51 | ```sh 52 | make dev 53 | ``` 54 | 55 | When you submit a PR, the site will be built and pinned on IPFS Cluster and a preview link will be added as PR status item. 56 | 57 | When the `master` branch changes, site will be built, pinned to cluster, and the [DNSlink](https://docs.ipfs.io/guides/concepts/dnslink/) for https://ipld.io will be updated with the latest hash. 58 | 59 | To deploy the site to https://ipld.io, run: 60 | 61 | ```sh 62 | # Build out the optimised site to ./public, where you can check it locally. 63 | make 64 | 65 | # Add the site to your local ipfs, you can check it via /ipfs/ 66 | make deploy 67 | 68 | # Save your dnsimple api token as auth.token 69 | cat "" > auth.token 70 | 71 | # Update the dns record for ipld.io to point to the new ipfs hash. 72 | make publish-to-domain 73 | ``` 74 | 75 | The following commands are available: 76 | 77 | ### `make` 78 | 79 | Build the optimised site to the `./public` dir 80 | 81 | ### `make dev` 82 | 83 | Start a hot-reloading dev server on http://localhost:1313 _(requires `hugo` on your `PATH`)_ 84 | 85 | ### `make serve` 86 | 87 | Preview the production ready site at http://localhost:1313 _(requires `hugo` on your `PATH`)_ 88 | 89 | ### `make minfy` 90 | 91 | Optimise all the things! 92 | 93 | ### `make deploy` 94 | 95 | Build the site in the `public` dir and add to `ipfs` _(requires `hugo` & `ipfs` on your `PATH`)_ 96 | 97 | ### `make publish-to-domain` :rocket: 98 | 99 | Update the DNS record for `libp2p.io`. _(requires an `auto.token` file to be saved in the project root.)_ 100 | 101 | If you'd like to update the dnslink TXT record for another domain, pass `DOMAIN=` like so: 102 | 103 | ```sh 104 | make publish-to-domain DOMAIN=tableflip.io 105 | ``` 106 | 107 | --- 108 | 109 | See the `Makefile` for the full list or run `make help` in the project root. You can pass the env var `DEBUG=true` to increase the verbosity of your chosen command. 110 | 111 | ## Dependencies 112 | 113 | * `Node.js` and `npm` for build tools 114 | * `ipfs` to add to IPFS during `make deploy` 115 | * `dnslink-deploy` to update dns `make publish-to-domain` 116 | 117 | ## Contribute 118 | 119 | Please do! Check out [the issues](https://github.com/ipld/website/issues), or open a PR! 120 | 121 | Check out our [contributing document](https://github.com/ipld/ipld/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to IPLD are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). 122 | 123 | Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. 124 | 125 | ## License 126 | 127 | [MIT](LICENSE) © 2016 Protocol Labs Inc. 128 | -------------------------------------------------------------------------------- /static/img/ipld-feature-4.svg: -------------------------------------------------------------------------------- 1 | Group -------------------------------------------------------------------------------- /static/img/ipld-feature-2.svg: -------------------------------------------------------------------------------- 1 | Page 1 -------------------------------------------------------------------------------- /static/img/ipld-feature-3.svg: -------------------------------------------------------------------------------- 1 | Page 1 -------------------------------------------------------------------------------- /static/img/ipld-feature-1.svg: -------------------------------------------------------------------------------- 1 | Slice -------------------------------------------------------------------------------- /static/img/ipld-hero.svg: -------------------------------------------------------------------------------- 1 | Logos -------------------------------------------------------------------------------- /static/img/splash/ipld-hero.svg: -------------------------------------------------------------------------------- 1 | ipld-hero -------------------------------------------------------------------------------- /content/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "head.html" . }} 5 | 6 | 7 | {{ partial "topbar.html" . }} 8 | 9 |
10 |
11 |
12 | {{ readFile "static/img/splash/ipld-hero.svg" | safeHTML }} 13 |
14 |
15 |
16 | {{ readFile "static/img/splash/hex-1.svg" | safeHTML }} 17 |
18 |
19 | {{ readFile "static/img/splash/hex-2.svg" | safeHTML }} 20 |
21 |
22 | {{ readFile "static/img/splash/hex-3.svg" | safeHTML }} 23 |
24 |
25 | {{ readFile "static/img/splash/hex-4.svg" | safeHTML }} 26 |
27 |
28 |
29 |

30 | IPLD is the data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD. 31 |

32 |
33 | 34 |
35 |
36 |

37 | Why IPLD? 38 |

39 |
40 |
41 | 42 |
43 |
44 |

45 | A data model for interoperable protocols. 46 |

47 |

48 | Content addressing through hashes has become a widely-used means of connecting data in distributed systems, from the blockchains that run your favorite cryptocurrencies, to the commits that back your code, to the web’s content at large. Yet, whilst all of these tools rely on some common primitives, their specific underlying data structures are not interoperable. 49 |

50 |

51 | Enter IPLD: IPLD is a single namespace for all hash-inspired protocols. Through IPLD, links can be traversed across protocols, allowing you to explore data regardless of the underlying protocol. 52 |

53 |
54 |
55 |
56 |
57 | 58 |
59 |

60 | Use cases 61 |

62 |

63 | The sky’s the limit as IPLD allows you to work across protocol boundaries. The point is that IPLD provides libraries that make the underlying data interoperable across tools and across protocols by default. 64 |

65 | {{ partial "use" (dict "title" "Bitcoin to Git" "desc" "Reference your latest commits in a git branch to a bitcoin transaction to timestamp your work. By linking your git commit, you can view the commit from your blockchain explorer.") }} 66 | {{ partial "use" (dict "title" "Ethereum to IPFS" "desc" "Have your next contract refer to media on IPFS, perhaps modifying it and tracking its changes on each function execution. Seamlessly jump from function to object through IPLD addressing." "swap" true) }} 67 |
68 | 69 |
70 |
71 |

72 | Features 73 |

74 |
75 |
76 | 77 |

78 | A canonical data model 79 |

80 |

81 | A self-contained descriptive model that uniquely identifies any hash-based data structure and ensures the same logical object always maps to the exact same sequence of bits. 82 |

83 |
84 |
85 | 86 |

87 | Protocol independent resolution 88 |

89 |

90 | IPLD brings isolated systems together, making integration with existing protocols simple. 91 |

92 |
93 |
94 | 95 |

96 | Upgradeable 97 |

98 |

99 | With Multiformats support, IPLD is easily upgradeable and will grow with your favorite protocols. 100 |

101 |
102 |
103 | 104 |

105 | Operates across formats 106 |

107 |

108 | Express your IPLD objects in various serializable formats like JSON, CBOR, YAML, XML and many more, making IPLD a cinch to use with any framework. 109 |

110 |
111 |
112 | 113 |

114 | Backwards compatible 115 |

116 |

117 | Non-intrusive resolvers make IPLD easy to integrate within your existing work. 118 |

119 |
120 |
121 | 122 |

123 | A namespace for all protocols 124 |

125 |

126 | IPLD allows you to explore data across protocols seamlessly, binding hash-based data structures together through a common namespace. 127 |

128 |
129 |
130 |
131 |
132 | 133 |
134 |
135 |

Media

136 |

137 | IPLD is an open source project from the IPFS community. There are many ways you can contribute by getting involved. Learn more about IPLD from the community. 138 |

139 |
140 |
141 | {{ partial "youtube-iframe" (dict "id" "Bqs_LzBjQyk" "caption" "Juan Benet: Enter the Merkle Forest")}} 142 |
143 |
144 | {{ partial "youtube-preview" (dict "id" "bi-4YGZXxwA" "caption" "Jeromy Johnson Shares IPFS Blockchain Fun")}} 145 |
146 |
147 | {{ partial "youtube-preview" (dict "id" "skMTdSEaCtA" "caption" "Why We Must Distribute The Web")}} 148 |
149 |
150 | {{ partial "youtube-preview" (dict "id" "1Ck029slvCU" "caption" "IPLD Sprint Call")}} 151 |
152 |
153 | {{ partial "youtube-preview" (dict "id" "Pjyo2uILcOs" "caption" "Martin Becze: Interplanetary OS")}} 154 |
155 |
156 |
157 |
158 | 159 | {{ partial "footer.html" . }} 160 | 161 | 170 | 171 | 172 | 173 | -------------------------------------------------------------------------------- /static/img/ipld-illustration.svg: -------------------------------------------------------------------------------- 1 | ipld-illustration -------------------------------------------------------------------------------- /content/implementations.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "head.html" . }} 5 | 6 | 7 | {{ partial "topbar.html" . }} 8 | 9 |
10 |

11 | IPLD Components 12 |

13 |
14 |
15 |
16 | 17 |

CID

18 |

Self-describing content-addressed identifiers for distributed systems. This is the standard format all hash-chain based data structures can be expressed as per the IPLD standard.

19 |
20 |
21 | 22 |

IPLD Tree

23 |

A cross-protocol data model based on JSON and Protobuf, and path navigation, meant to be easy to interoperate with and to have pluggable format-dependent resolvers.

24 |
25 |
26 | 27 |

IPLD Resolvers

28 |

IPLD Resolvers bring new systems into the IPLD family of protocols. They can express paths that reach into tool/protocol-specific data structures, allowing you to cross-link and traverse them in their native formats.

29 |
30 |
31 |
32 |
33 | 34 | 93 | 94 |
95 |
96 |

97 | IPLD Implementations 98 |

99 |

100 | IPLD provides ready-to-use bundles for different formats and different languages. You can use these to get all the functionality in one package. See it as a quickstart. 101 |

102 | 103 | 104 | 105 | 106 | 107 | 110 | 113 | 114 | 115 | 116 | 117 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 216 |
108 | {{ partial "bundle-th" (dict "name" "JavaScript" "class" "f4-ns fw5") }} 109 | 111 | {{ partial "bundle-th" (dict "name" "Go" "class" "f4-ns fw5") }} 112 |
118 | {{ partial "bundle-th" (dict "name" "Git" "class" "pl2-l fw6") }} 119 | ipld-git{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-git")}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-git")}}
128 | {{ partial "bundle-th" (dict "name" "BitCoin" "class" "pl2-l fw6") }} 129 | ipld-btc{{ partial "support" (dict "level" 0)}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-btc")}}
138 | {{ partial "bundle-th" (dict "name" "Ethereum" "class" "pl2-l fw6")}} 139 | eth-block{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-ethereum")}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-eth")}}
eth-block-list{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-ethereum")}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-eth" )}}
eth-tx-trie{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-ethereum")}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-eth")}}
eth-state-trie{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-ethereum")}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-eth")}}
eth-storage-trie{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-ethereum")}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-eth")}}
168 | {{ partial "bundle-th" (dict "name" "IPFS" "class" "pl2-l fw6") }} 169 | dag-pb{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-dag-pb")}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld")}}
dag-cbor{{ partial "support" (dict "level" 2 "url" "https://github.com/ipld/js-ipld-dag-cbor" )}}{{ partial "support" (dict "level" 2 "url" "https://github.com/ipfs/go-ipld-cbor")}}
217 |
218 |
219 | {{ partial "support" (dict "level" 2 "label" true )}} 220 |
221 |
222 | {{ partial "support" (dict "level" 1 "label" true )}} 223 |
224 |
225 | {{ partial "support" (dict "level" 0 "label" true )}} 226 |
227 |
228 |
229 |
230 | 231 | {{ partial "footer.html" . }} 232 | 233 | 234 | 235 | --------------------------------------------------------------------------------