From c39fb9a3b9ceb0f00f0bc29255983aae3719a9f4 Mon Sep 17 00:00:00 2001 From: Rafael Matias Date: Tue, 25 Jun 2019 11:12:07 +0200 Subject: [PATCH 1/2] docs: add swarm-guide --- docs/swarm-guide/Dockerfile | 9 + docs/swarm-guide/Makefile | 198 + docs/swarm-guide/README.md | 25 + .../build/doctrees/apireference.doctree | Bin 0 -> 87733 bytes .../build/doctrees/architecture.doctree | Bin 0 -> 124976 bytes .../build/doctrees/configuration.doctree | Bin 0 -> 47791 bytes .../build/doctrees/environment.pickle | Bin 0 -> 101894 bytes .../build/doctrees/gettingstarted.doctree | Bin 0 -> 59630 bytes docs/swarm-guide/build/doctrees/index.doctree | Bin 0 -> 6891 bytes .../build/doctrees/installation.doctree | Bin 0 -> 28010 bytes .../build/doctrees/introduction.doctree | Bin 0 -> 52247 bytes docs/swarm-guide/build/doctrees/pss.doctree | Bin 0 -> 32120 bytes .../build/doctrees/resources.doctree | Bin 0 -> 38907 bytes .../build/doctrees/up-and-download.doctree | Bin 0 -> 80354 bytes docs/swarm-guide/build/doctrees/usage.doctree | Bin 0 -> 242675 bytes .../build/doctrees/usage/act.doctree | Bin 0 -> 62163 bytes .../build/doctrees/usage/bzz.doctree | Bin 0 -> 27570 bytes .../build/doctrees/usage/encryption.doctree | Bin 0 -> 13481 bytes .../build/doctrees/usage/ens.doctree | Bin 0 -> 15736 bytes .../build/doctrees/usage/feed.doctree | Bin 0 -> 77418 bytes .../build/doctrees/usage/fuse.doctree | Bin 0 -> 18217 bytes .../build/doctrees/usage/manifests.doctree | Bin 0 -> 35317 bytes docs/swarm-guide/build/html/.buildinfo | 4 + docs/swarm-guide/build/html/_images/chunk.png | Bin 0 -> 42877 bytes .../build/html/_images/dapp-page.svg | 658 + .../build/html/_images/distance.svg | 583 + .../build/html/_images/dpa-chunking.svg | 698 ++ .../build/html/_images/kademlia.svg | 334 + .../build/html/_images/storage-layer.svg | 345 + .../build/html/_images/swarm-intro.svg | 983 ++ docs/swarm-guide/build/html/_images/swarm.png | Bin 0 -> 137201 bytes .../build/html/_images/syncing-high-level.svg | 2463 ++++ .../build/html/_images/topology.svg | 464 + .../build/html/_sources/apireference.rst.txt | 302 + .../build/html/_sources/architecture.rst.txt | 356 + .../build/html/_sources/configuration.rst.txt | 96 + .../html/_sources/gettingstarted.rst.txt | 392 + .../build/html/_sources/index.rst.txt | 45 + .../build/html/_sources/installation.rst.txt | 204 + .../build/html/_sources/introduction.rst.txt | 187 + .../build/html/_sources/pss.rst.txt | 120 + .../build/html/_sources/resources.rst.txt | 297 + .../html/_sources/up-and-download.rst.txt | 498 + .../build/html/_sources/usage.rst.txt | 16 + .../build/html/_sources/usage/act.rst.txt | 269 + .../build/html/_sources/usage/bzz.rst.txt | 211 + .../html/_sources/usage/encryption.rst.txt | 53 + .../build/html/_sources/usage/ens.rst.txt | 59 + .../build/html/_sources/usage/feed.rst.txt | 445 + .../build/html/_sources/usage/fuse.rst.txt | 112 + .../html/_sources/usage/manifests.rst.txt | 175 + .../build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes docs/swarm-guide/build/html/_static/basic.css | 676 + .../build/html/_static/comment-bright.png | Bin 0 -> 756 bytes .../build/html/_static/comment-close.png | Bin 0 -> 829 bytes .../build/html/_static/comment.png | Bin 0 -> 641 bytes .../build/html/_static/css/badge_only.css | 1 + .../build/html/_static/css/theme.css | 6 + .../build/html/_static/doctools.js | 315 + .../html/_static/documentation_options.js | 296 + .../build/html/_static/down-pressed.png | Bin 0 -> 222 bytes docs/swarm-guide/build/html/_static/down.png | Bin 0 -> 202 bytes docs/swarm-guide/build/html/_static/file.png | Bin 0 -> 286 bytes .../html/_static/fonts/Inconsolata-Bold.ttf | Bin 0 -> 109948 bytes .../_static/fonts/Inconsolata-Regular.ttf | Bin 0 -> 96964 bytes .../build/html/_static/fonts/Inconsolata.ttf | Bin 0 -> 63184 bytes .../build/html/_static/fonts/Lato-Bold.ttf | Bin 0 -> 656544 bytes .../build/html/_static/fonts/Lato-Regular.ttf | Bin 0 -> 656568 bytes .../html/_static/fonts/Lato/lato-bold.eot | Bin 0 -> 256056 bytes .../html/_static/fonts/Lato/lato-bold.ttf | Bin 0 -> 600856 bytes .../html/_static/fonts/Lato/lato-bold.woff | Bin 0 -> 309728 bytes .../html/_static/fonts/Lato/lato-bold.woff2 | Bin 0 -> 184912 bytes .../_static/fonts/Lato/lato-bolditalic.eot | Bin 0 -> 266158 bytes .../_static/fonts/Lato/lato-bolditalic.ttf | Bin 0 -> 622572 bytes .../_static/fonts/Lato/lato-bolditalic.woff | Bin 0 -> 323344 bytes .../_static/fonts/Lato/lato-bolditalic.woff2 | Bin 0 -> 193308 bytes .../html/_static/fonts/Lato/lato-italic.eot | Bin 0 -> 268604 bytes .../html/_static/fonts/Lato/lato-italic.ttf | Bin 0 -> 639388 bytes .../html/_static/fonts/Lato/lato-italic.woff | Bin 0 -> 328412 bytes .../html/_static/fonts/Lato/lato-italic.woff2 | Bin 0 -> 195704 bytes .../html/_static/fonts/Lato/lato-regular.eot | Bin 0 -> 253461 bytes .../html/_static/fonts/Lato/lato-regular.ttf | Bin 0 -> 607720 bytes .../html/_static/fonts/Lato/lato-regular.woff | Bin 0 -> 309192 bytes .../_static/fonts/Lato/lato-regular.woff2 | Bin 0 -> 182708 bytes .../html/_static/fonts/RobotoSlab-Bold.ttf | Bin 0 -> 170616 bytes .../html/_static/fonts/RobotoSlab-Regular.ttf | Bin 0 -> 169064 bytes .../fonts/RobotoSlab/roboto-slab-v7-bold.eot | Bin 0 -> 79520 bytes .../fonts/RobotoSlab/roboto-slab-v7-bold.ttf | Bin 0 -> 170616 bytes .../fonts/RobotoSlab/roboto-slab-v7-bold.woff | Bin 0 -> 87624 bytes .../RobotoSlab/roboto-slab-v7-bold.woff2 | Bin 0 -> 67312 bytes .../RobotoSlab/roboto-slab-v7-regular.eot | Bin 0 -> 78331 bytes .../RobotoSlab/roboto-slab-v7-regular.ttf | Bin 0 -> 169064 bytes .../RobotoSlab/roboto-slab-v7-regular.woff | Bin 0 -> 86288 bytes .../RobotoSlab/roboto-slab-v7-regular.woff2 | Bin 0 -> 66444 bytes .../_static/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../_static/fonts/fontawesome-webfont.svg | 2671 ++++ .../_static/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../_static/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../_static/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes .../build/html/_static/jquery-3.2.1.js | 10253 ++++++++++++++++ docs/swarm-guide/build/html/_static/jquery.js | 4 + .../build/html/_static/js/modernizr.min.js | 4 + .../build/html/_static/js/theme.js | 3 + docs/swarm-guide/build/html/_static/minus.png | Bin 0 -> 90 bytes docs/swarm-guide/build/html/_static/plus.png | Bin 0 -> 90 bytes .../build/html/_static/pygments.css | 69 + .../build/html/_static/searchtools.js | 482 + .../semantic-ui-2.2.10/menu.min.css | 1 + .../semantic-ui-2.2.10/segment.min.css | 9 + .../semantic-ui-2.2.10/tab.min.css | 9 + .../sphinx_tabs/semantic-ui-2.2.10/tab.min.js | 10 + .../build/html/_static/sphinx_tabs/tabs.css | 43 + .../build/html/_static/sphinx_tabs/tabs.js | 85 + .../build/html/_static/theme_overrides.css | 32 + .../build/html/_static/underscore-1.3.1.js | 999 ++ .../build/html/_static/underscore.js | 31 + .../build/html/_static/up-pressed.png | Bin 0 -> 214 bytes docs/swarm-guide/build/html/_static/up.png | Bin 0 -> 203 bytes .../build/html/_static/websupport.js | 808 ++ docs/swarm-guide/build/html/apireference.html | 698 ++ docs/swarm-guide/build/html/architecture.html | 506 + .../swarm-guide/build/html/configuration.html | 506 + docs/swarm-guide/build/html/genindex.html | 313 + .../build/html/gettingstarted.html | 645 + docs/swarm-guide/build/html/index.html | 427 + docs/swarm-guide/build/html/installation.html | 429 + docs/swarm-guide/build/html/introduction.html | 396 + docs/swarm-guide/build/html/objects.inv | Bin 0 -> 765 bytes docs/swarm-guide/build/html/pss.html | 344 + docs/swarm-guide/build/html/resources.html | 327 + docs/swarm-guide/build/html/search.html | 234 + docs/swarm-guide/build/html/searchindex.js | 1 + .../build/html/up-and-download.html | 733 ++ docs/swarm-guide/build/html/usage.html | 1404 +++ docs/swarm-guide/build/html/usage/act.html | 460 + docs/swarm-guide/build/html/usage/bzz.html | 387 + .../build/html/usage/encryption.html | 248 + docs/swarm-guide/build/html/usage/ens.html | 259 + docs/swarm-guide/build/html/usage/feed.html | 612 + docs/swarm-guide/build/html/usage/fuse.html | 301 + .../build/html/usage/manifests.html | 354 + .../contents/_static/theme_overrides.css | 32 + docs/swarm-guide/contents/apireference.rst | 302 + docs/swarm-guide/contents/architecture.rst | 415 + docs/swarm-guide/contents/conf.py | 388 + docs/swarm-guide/contents/configuration.rst | 96 + docs/swarm-guide/contents/gettingstarted.rst | 359 + docs/swarm-guide/contents/img/bmt.png | Bin 0 -> 113770 bytes docs/swarm-guide/contents/img/chunk.png | Bin 0 -> 42877 bytes docs/swarm-guide/contents/img/dapp-page.svg | 658 + docs/swarm-guide/contents/img/distance.svg | 583 + .../swarm-guide/contents/img/dpa-chunking.svg | 698 ++ .../contents/img/high-level-components.svg | 1466 +++ docs/swarm-guide/contents/img/kademlia.svg | 334 + .../contents/img/storage-layer.svg | 345 + .../swarm-guide/contents/img/swarm-inside.png | Bin 0 -> 68276 bytes docs/swarm-guide/contents/img/swarm-intro.svg | 983 ++ docs/swarm-guide/contents/img/swarm-logo.jpg | Bin 0 -> 235243 bytes docs/swarm-guide/contents/img/swarm.png | Bin 0 -> 137201 bytes .../contents/img/syncing-high-level.svg | 2463 ++++ docs/swarm-guide/contents/img/topology.svg | 464 + docs/swarm-guide/contents/index.rst | 45 + docs/swarm-guide/contents/installation.rst | 205 + docs/swarm-guide/contents/introduction.rst | 187 + docs/swarm-guide/contents/pss.rst | 120 + docs/swarm-guide/contents/resources.rst | 297 + docs/swarm-guide/contents/up-and-download.rst | 498 + docs/swarm-guide/contents/usage.rst | 16 + docs/swarm-guide/contents/usage/act.rst | 269 + docs/swarm-guide/contents/usage/bzz.rst | 203 + .../swarm-guide/contents/usage/encryption.rst | 53 + docs/swarm-guide/contents/usage/ens.rst | 59 + docs/swarm-guide/contents/usage/feed.rst | 445 + docs/swarm-guide/contents/usage/fuse.rst | 112 + docs/swarm-guide/contents/usage/manifests.rst | 175 + docs/swarm-guide/img-src/dapp-page.odg | Bin 0 -> 167049 bytes docs/swarm-guide/img-src/distance.odg | Bin 0 -> 21352 bytes docs/swarm-guide/img-src/dpa-chunking.odg | Bin 0 -> 22946 bytes .../img-src/high-level-components.odg | Bin 0 -> 19222 bytes docs/swarm-guide/img-src/kademlia.odg | Bin 0 -> 140182 bytes docs/swarm-guide/img-src/storage-layer.odg | Bin 0 -> 16105 bytes docs/swarm-guide/img-src/swarm-intro.odg | Bin 0 -> 268027 bytes .../img-src/syncing-high-level.odg | Bin 0 -> 22896 bytes docs/swarm-guide/img-src/topology.odg | Bin 0 -> 21188 bytes docs/swarm-guide/requirements.txt | 3 + 185 files changed, 49265 insertions(+) create mode 100644 docs/swarm-guide/Dockerfile create mode 100644 docs/swarm-guide/Makefile create mode 100644 docs/swarm-guide/README.md create mode 100644 docs/swarm-guide/build/doctrees/apireference.doctree create mode 100644 docs/swarm-guide/build/doctrees/architecture.doctree create mode 100644 docs/swarm-guide/build/doctrees/configuration.doctree create mode 100644 docs/swarm-guide/build/doctrees/environment.pickle create mode 100644 docs/swarm-guide/build/doctrees/gettingstarted.doctree create mode 100644 docs/swarm-guide/build/doctrees/index.doctree create mode 100644 docs/swarm-guide/build/doctrees/installation.doctree create mode 100644 docs/swarm-guide/build/doctrees/introduction.doctree create mode 100644 docs/swarm-guide/build/doctrees/pss.doctree create mode 100644 docs/swarm-guide/build/doctrees/resources.doctree create mode 100644 docs/swarm-guide/build/doctrees/up-and-download.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage/act.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage/bzz.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage/encryption.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage/ens.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage/feed.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage/fuse.doctree create mode 100644 docs/swarm-guide/build/doctrees/usage/manifests.doctree create mode 100644 docs/swarm-guide/build/html/.buildinfo create mode 100644 docs/swarm-guide/build/html/_images/chunk.png create mode 100644 docs/swarm-guide/build/html/_images/dapp-page.svg create mode 100644 docs/swarm-guide/build/html/_images/distance.svg create mode 100644 docs/swarm-guide/build/html/_images/dpa-chunking.svg create mode 100644 docs/swarm-guide/build/html/_images/kademlia.svg create mode 100644 docs/swarm-guide/build/html/_images/storage-layer.svg create mode 100644 docs/swarm-guide/build/html/_images/swarm-intro.svg create mode 100644 docs/swarm-guide/build/html/_images/swarm.png create mode 100644 docs/swarm-guide/build/html/_images/syncing-high-level.svg create mode 100644 docs/swarm-guide/build/html/_images/topology.svg create mode 100644 docs/swarm-guide/build/html/_sources/apireference.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/architecture.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/configuration.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/gettingstarted.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/index.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/installation.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/introduction.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/pss.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/resources.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/up-and-download.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage/act.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage/bzz.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage/encryption.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage/ens.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage/feed.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage/fuse.rst.txt create mode 100644 docs/swarm-guide/build/html/_sources/usage/manifests.rst.txt create mode 100644 docs/swarm-guide/build/html/_static/ajax-loader.gif create mode 100644 docs/swarm-guide/build/html/_static/basic.css create mode 100644 docs/swarm-guide/build/html/_static/comment-bright.png create mode 100644 docs/swarm-guide/build/html/_static/comment-close.png create mode 100644 docs/swarm-guide/build/html/_static/comment.png create mode 100644 docs/swarm-guide/build/html/_static/css/badge_only.css create mode 100644 docs/swarm-guide/build/html/_static/css/theme.css create mode 100644 docs/swarm-guide/build/html/_static/doctools.js create mode 100644 docs/swarm-guide/build/html/_static/documentation_options.js create mode 100644 docs/swarm-guide/build/html/_static/down-pressed.png create mode 100644 docs/swarm-guide/build/html/_static/down.png create mode 100644 docs/swarm-guide/build/html/_static/file.png create mode 100644 docs/swarm-guide/build/html/_static/fonts/Inconsolata-Bold.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Inconsolata-Regular.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Inconsolata.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato-Bold.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato-Regular.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bold.eot create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bold.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bold.woff create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bold.woff2 create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bolditalic.eot create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bolditalic.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bolditalic.woff create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-bolditalic.woff2 create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-italic.eot create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-italic.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-italic.woff create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-italic.woff2 create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-regular.eot create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-regular.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-regular.woff create mode 100644 docs/swarm-guide/build/html/_static/fonts/Lato/lato-regular.woff2 create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab-Bold.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab-Regular.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff create mode 100644 docs/swarm-guide/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 create mode 100644 docs/swarm-guide/build/html/_static/fonts/fontawesome-webfont.eot create mode 100644 docs/swarm-guide/build/html/_static/fonts/fontawesome-webfont.svg create mode 100644 docs/swarm-guide/build/html/_static/fonts/fontawesome-webfont.ttf create mode 100644 docs/swarm-guide/build/html/_static/fonts/fontawesome-webfont.woff create mode 100644 docs/swarm-guide/build/html/_static/fonts/fontawesome-webfont.woff2 create mode 100644 docs/swarm-guide/build/html/_static/jquery-3.2.1.js create mode 100644 docs/swarm-guide/build/html/_static/jquery.js create mode 100644 docs/swarm-guide/build/html/_static/js/modernizr.min.js create mode 100644 docs/swarm-guide/build/html/_static/js/theme.js create mode 100644 docs/swarm-guide/build/html/_static/minus.png create mode 100644 docs/swarm-guide/build/html/_static/plus.png create mode 100644 docs/swarm-guide/build/html/_static/pygments.css create mode 100644 docs/swarm-guide/build/html/_static/searchtools.js create mode 100644 docs/swarm-guide/build/html/_static/sphinx_tabs/semantic-ui-2.2.10/menu.min.css create mode 100644 docs/swarm-guide/build/html/_static/sphinx_tabs/semantic-ui-2.2.10/segment.min.css create mode 100644 docs/swarm-guide/build/html/_static/sphinx_tabs/semantic-ui-2.2.10/tab.min.css create mode 100644 docs/swarm-guide/build/html/_static/sphinx_tabs/semantic-ui-2.2.10/tab.min.js create mode 100644 docs/swarm-guide/build/html/_static/sphinx_tabs/tabs.css create mode 100644 docs/swarm-guide/build/html/_static/sphinx_tabs/tabs.js create mode 100644 docs/swarm-guide/build/html/_static/theme_overrides.css create mode 100644 docs/swarm-guide/build/html/_static/underscore-1.3.1.js create mode 100644 docs/swarm-guide/build/html/_static/underscore.js create mode 100644 docs/swarm-guide/build/html/_static/up-pressed.png create mode 100644 docs/swarm-guide/build/html/_static/up.png create mode 100644 docs/swarm-guide/build/html/_static/websupport.js create mode 100644 docs/swarm-guide/build/html/apireference.html create mode 100644 docs/swarm-guide/build/html/architecture.html create mode 100644 docs/swarm-guide/build/html/configuration.html create mode 100644 docs/swarm-guide/build/html/genindex.html create mode 100644 docs/swarm-guide/build/html/gettingstarted.html create mode 100644 docs/swarm-guide/build/html/index.html create mode 100644 docs/swarm-guide/build/html/installation.html create mode 100644 docs/swarm-guide/build/html/introduction.html create mode 100644 docs/swarm-guide/build/html/objects.inv create mode 100644 docs/swarm-guide/build/html/pss.html create mode 100644 docs/swarm-guide/build/html/resources.html create mode 100644 docs/swarm-guide/build/html/search.html create mode 100644 docs/swarm-guide/build/html/searchindex.js create mode 100644 docs/swarm-guide/build/html/up-and-download.html create mode 100644 docs/swarm-guide/build/html/usage.html create mode 100644 docs/swarm-guide/build/html/usage/act.html create mode 100644 docs/swarm-guide/build/html/usage/bzz.html create mode 100644 docs/swarm-guide/build/html/usage/encryption.html create mode 100644 docs/swarm-guide/build/html/usage/ens.html create mode 100644 docs/swarm-guide/build/html/usage/feed.html create mode 100644 docs/swarm-guide/build/html/usage/fuse.html create mode 100644 docs/swarm-guide/build/html/usage/manifests.html create mode 100644 docs/swarm-guide/contents/_static/theme_overrides.css create mode 100644 docs/swarm-guide/contents/apireference.rst create mode 100644 docs/swarm-guide/contents/architecture.rst create mode 100644 docs/swarm-guide/contents/conf.py create mode 100644 docs/swarm-guide/contents/configuration.rst create mode 100644 docs/swarm-guide/contents/gettingstarted.rst create mode 100644 docs/swarm-guide/contents/img/bmt.png create mode 100644 docs/swarm-guide/contents/img/chunk.png create mode 100644 docs/swarm-guide/contents/img/dapp-page.svg create mode 100644 docs/swarm-guide/contents/img/distance.svg create mode 100644 docs/swarm-guide/contents/img/dpa-chunking.svg create mode 100644 docs/swarm-guide/contents/img/high-level-components.svg create mode 100644 docs/swarm-guide/contents/img/kademlia.svg create mode 100644 docs/swarm-guide/contents/img/storage-layer.svg create mode 100644 docs/swarm-guide/contents/img/swarm-inside.png create mode 100644 docs/swarm-guide/contents/img/swarm-intro.svg create mode 100644 docs/swarm-guide/contents/img/swarm-logo.jpg create mode 100644 docs/swarm-guide/contents/img/swarm.png create mode 100644 docs/swarm-guide/contents/img/syncing-high-level.svg create mode 100644 docs/swarm-guide/contents/img/topology.svg create mode 100644 docs/swarm-guide/contents/index.rst create mode 100644 docs/swarm-guide/contents/installation.rst create mode 100644 docs/swarm-guide/contents/introduction.rst create mode 100644 docs/swarm-guide/contents/pss.rst create mode 100644 docs/swarm-guide/contents/resources.rst create mode 100644 docs/swarm-guide/contents/up-and-download.rst create mode 100644 docs/swarm-guide/contents/usage.rst create mode 100644 docs/swarm-guide/contents/usage/act.rst create mode 100644 docs/swarm-guide/contents/usage/bzz.rst create mode 100644 docs/swarm-guide/contents/usage/encryption.rst create mode 100644 docs/swarm-guide/contents/usage/ens.rst create mode 100644 docs/swarm-guide/contents/usage/feed.rst create mode 100644 docs/swarm-guide/contents/usage/fuse.rst create mode 100644 docs/swarm-guide/contents/usage/manifests.rst create mode 100644 docs/swarm-guide/img-src/dapp-page.odg create mode 100644 docs/swarm-guide/img-src/distance.odg create mode 100644 docs/swarm-guide/img-src/dpa-chunking.odg create mode 100644 docs/swarm-guide/img-src/high-level-components.odg create mode 100644 docs/swarm-guide/img-src/kademlia.odg create mode 100644 docs/swarm-guide/img-src/storage-layer.odg create mode 100644 docs/swarm-guide/img-src/swarm-intro.odg create mode 100644 docs/swarm-guide/img-src/syncing-high-level.odg create mode 100644 docs/swarm-guide/img-src/topology.odg create mode 100644 docs/swarm-guide/requirements.txt diff --git a/docs/swarm-guide/Dockerfile b/docs/swarm-guide/Dockerfile new file mode 100644 index 0000000000..3372a48ab0 --- /dev/null +++ b/docs/swarm-guide/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.7.1 + +RUN pip install \ + Sphinx==1.8.2 \ + sphinx-rtd-theme==0.4.2 \ + sphinx-tabs==1.1.10 + +RUN mkdir -p /src +WORKDIR /src diff --git a/docs/swarm-guide/Makefile b/docs/swarm-guide/Makefile new file mode 100644 index 0000000000..caeba7d5e0 --- /dev/null +++ b/docs/swarm-guide/Makefile @@ -0,0 +1,198 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build +SOURCE = contents + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCE) +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCE) + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " applehelp to make an Apple Help Book" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " coverage to run coverage check of the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +html-docker: + @which docker &> /dev/null || (echo "please, install Docker to use this target" >&2 && exit 1) + @docker build --tag swarm-sphinx . + @docker run --rm --volume $$PWD:/src swarm-sphinx make html + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/homesteadguide.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/homesteadguide.qhc" + +applehelp: + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp + @echo + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." + @echo "N.B. You won't be able to view it unless you put it in" \ + "~/Library/Documentation/Help or install it in your application" \ + "bundle." + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/homesteadguide" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/homesteadguide" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +coverage: + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage + @echo "Testing of coverage in the sources finished, look at the " \ + "results in $(BUILDDIR)/coverage/python.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/docs/swarm-guide/README.md b/docs/swarm-guide/README.md new file mode 100644 index 0000000000..1ff8cc09c5 --- /dev/null +++ b/docs/swarm-guide/README.md @@ -0,0 +1,25 @@ +# Swarm Guide + +Swarm's documentation in sphinx, hosted on read the docs: +http://swarm-guide.readthedocs.io + +## Building the source + +After building the source you will find `index.html` in `./build/html/` folder. + +### Requirements + +- GNU Make +- Docker or Python (pip) + +### Using Docker + +After you have `docker` available just call `make html-docker`. + +### Native with Python + +Execute +``` +pip install -r requirements.txt +make html +``` diff --git a/docs/swarm-guide/build/doctrees/apireference.doctree b/docs/swarm-guide/build/doctrees/apireference.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1f50f99808ae069d6842d122994402d6d6451511 GIT binary patch literal 87733 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 literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/configuration.doctree b/docs/swarm-guide/build/doctrees/configuration.doctree new file mode 100644 index 0000000000000000000000000000000000000000..74a83cde9d8f3ceeb5d32642721c777e39d19a60 GIT binary patch literal 47791 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 literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/environment.pickle b/docs/swarm-guide/build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..701fb1d0687b26163663f276a3e11f1c684e88ee GIT binary patch literal 101894 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 T5pWv{c*3f28r{3r-1L6~%Cdi- literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/gettingstarted.doctree b/docs/swarm-guide/build/doctrees/gettingstarted.doctree new file mode 100644 index 0000000000000000000000000000000000000000..10dc0630ffcf378c79cefc88dbd2c5f771602883 GIT binary patch literal 59630 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 G;r{`1U>Vu~ literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/index.doctree b/docs/swarm-guide/build/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..448e24466ee298e71dd81b4a67cc337c648a3d33 GIT binary patch literal 6891 zcmdT}-D@1z6_>5=uazuE4VC3)9Ahdg-j%UiFoM#AG$}!i`sFrHWimT+ckirb=1%6` z(Mkl<2AbA}3ng^=SPJQTpp>?R5=!ac(APHfrGG*o5a{pR`P`K(*-xehd3Vme_nb55 z{OqToE!$2}^Ni{cz|cp;bzC zh|{%wbpp0)ef_p|!)$N@>^EH6f#{2Z=J%srD_}jf zkem7{-k-k!n_t7A;Gtt|xy9G@;j>XEt8TzE(*Q2}c8>r3(ql7l zhlu)3cg>ZC%h9*4r^t@A`iLJJ{0F$B{Bgh}e0-0D0Tko7pb&Ztz`#d=a8{ufXO>yBE2GG0Pm>dcwSLL%qrok zgf$aeVa~_hX1;-3Ncj=T7sg6_lXAEA^^%V#0lb?6;}@BsAlL?o=TveKrPXIj`B5L_ z1eegzR?@hQ%hmS8Fbaf|6Q@&2>6Xq+#!{LuOHS+~k0YE%C~s(K8TRe@{WPg1EIA2k z9)&U|P4Z3i3Ck-A;=)KxH%L9!^MhP-{s;a?{wMwy{xSb6|AhaI|DFGX>ABE3@>r~R zwl|3?!->s1peE@DqMJQJvh_WH1>cqnh81BhO2aO+^s+bqJE<2;RfTIF9A}Rx6#l-z z%sRaGyK$iDmBJzIA@U|7P3AOnJe~h->Ft~krP?~`eK->JEJVNn$uN=#ct8ZwBb9M4 zvoPlGzDj|RlIN=;3`HcZSBesgQtWr~Qx7`UeX(%pvmv6DE8^okt=4RBS%<##mBp2c zcXxJ7a0O35kXUv^(%&f*kUQPuojaY|J5}Z#J|kW0+@+tH3h?1Sn-`s`r5f9H9Mdm7 zt!0rkp6W~;eJGKCIu6Jt`t%G`q`Hv*hk*DmdWp3AWJ&r)iQ47?{o*ihFxpDAfy{PZ zkd7p6T!5m`)z^#NWjkVakEZx**k07bq~biJPBvmZ)$$8viBNVvDJt>ukoPqz_B$qXj1z!!Wl_j^>bk)Zhdk2}f1b5l59&IBF(mH|C~a zo}%>DQ@QEqr*LSR>C7AU0S=$)rc&FpoYaQV-#bTo(@C`d!TI|i>!io0COwmf*^GaS z?tBYE>N}rD<&i|ShAT*!!Bnb6W~dWWxoVokYW0jfgiwE$Zp8$QZ<8@D=oZ>knvmJm zWNfLVm>|8c=VVb=XZjLlPctR#p_Rux3qg10$4-zUmsQccwXf$93KQ)FP5ThnqEJui4}6&uf-A`+XUeF;#i8x7K0$ zNB3WE--Gl;(!lhOqzek67;uGX!nQU|j6@eR91c72F{U_?X<#t**}+b^lj(Ij zK^*CXjS`H8m9Xj@=nm~cvU$!QZ46s5r8Wcht1ibt*M)!cYXy%{{IPNRAdR66 z{X${d-Qv2VIR?d#dT@1l|JNuY$h14UZb9p4d)dPwsLIc;z&Wk;x@g)cXDii`DY=fqsem&4@Bh>td0+7M2 zS3OXxL%%VAK1;;>`xgJ4e>V6ScXaS)%1e5l)~FgaKTGh>_s!yd%3q)<{bzj9?Bidg zdb#OD!*?0=sevoOC8y9uEBECu(4^%1FzJUY!>$M_T$ruTjS;Ke^CKMROR472+6aF$ zmZ2cMKF+IHK{bXjP;F~rz>nL5UtMTglQXPt`v`flA{%Edcocw&yGkW++U@)g259BM literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/installation.doctree b/docs/swarm-guide/build/doctrees/installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a2dc1c0202fe09ab0ea776f97e2a2d63c85a7222 GIT binary patch literal 28010 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 literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/introduction.doctree b/docs/swarm-guide/build/doctrees/introduction.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7b2b9438165710781642fb4d6b5e9bbb33716629 GIT binary patch literal 52247 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%0Dxj4{}br`%9&F@?06nc_9uua>+|t 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 p+9K+Wz@D(LyX=Tsk|o!1?%tY?M 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 literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/up-and-download.doctree b/docs/swarm-guide/build/doctrees/up-and-download.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9fe2b16a3c9ca96dffb70358896c997f81db81c6 GIT binary patch literal 80354 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

XVh#9(MS4x*Q+ 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℞ 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 ~l=A|0SscvKwofKIGxQ`5}kX;Cbl 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 literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/usage/act.doctree b/docs/swarm-guide/build/doctrees/usage/act.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3ec8286dfe1d8c3b257bde0d9ae26925e40e06bb GIT binary patch literal 62163 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

R5m+ypr^C4@j&%kL6P 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 literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/usage/encryption.doctree b/docs/swarm-guide/build/doctrees/usage/encryption.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2beb6a7cee3ac476f664ce0228b3d643f01c9168 GIT binary patch literal 13481 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 BDB=JB literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/usage/ens.doctree b/docs/swarm-guide/build/doctrees/usage/ens.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d009823949d15c918bd06b3df367bbc03ead2015 GIT binary patch literal 15736 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 Vv4Si@31)0E?70o3umO$D{{zoi(GCCr literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/doctrees/usage/feed.doctree b/docs/swarm-guide/build/doctrees/usage/feed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1f7686d03b7ca9cb9b17c8359cd4c6afd56aeea2 GIT binary patch literal 77418 zcmeHw3z%GId7f^o%Su{Z>@`@%_;`%1-PK;CUEREvWMo-3vaR(+D_a=so!ObQJ2RS{ zGoFj2H8_}3QXCF`pezJPb0HT}htNLc)&yt@^eG7eLYuaE(x$+JpQbb+A;oFaJWZa^ z_xt|qIdf*tnc0;s92vB`=bZoY-Tv?YzVHA4?|*jPhgPpzy^8+x`*L2kQ7@Egqh&AW z)|UK@^kTs+*OxxHH2BV?XO;&1P1VfBn%Agi-6ek&N@VkeQm*Qjm!4S4uktt4+-$wz zm38@iPkw!V!xKvb_}Eh~)Jv}Q$?v(xb#t{PDuD0nrrk@_lY0H`CGHYU?DW@HGU%kf zl;56TonPy(mmo~}>q>>PyEN69&G@~Udc9hhZPWoefx5PUwx3w?H)KnhS`9DpcTYL9 zApY8zYgEj`Y$kiY>dsM_hQFbnnWs-n`M&(F{ATJge}n(Jv061dmi5YY08$%k)H3t# z*c=cTt=0h8>+WCEm?bRAUOj;1FENtCPNnKzD0q!pY0)`f_AZv4OwAcO-Kb|~ORn>X zD=>1-R&p62Ff{BGYEGu?xR)w!wLm<`l$<#?Q*Tt=VJCATQz&u8TA`eEoii6R)dlCF z2Tx3lI;ZMXwNcKwRVM>(TyUM7d%-Pv6>4SJsd?OJw(ivPh4OsOse4W~pDE9~qly!o zK<&(YHB-r3+{%v$M)vzRw83aebFFvw!8@$dB=I@Z8^!trhhUkW3uMhx&0B&0N%x?T95z%5qccA)^hdtO{~u>8kp<`TE(E>mI&x$=nH=;9#%pd^iX}@Z zMn%TCSSXdKT&}0!PlEez6-sl8ncsf=DaqQPgeD*@UzpCjPNUWUS&4bxoO9lFE5zwK zKGdM4or+h0PG(-P9;1&eE~EyDe_Zq=%2(aSf-^;R&bZYJ1t`velT&8~N1Zo$7oj4n zP>w8{cq!GdR~|u|5HPKJ3w39qFrTkG(DTkLKxh<%3ZL_;5Ugw-eL|Qs_`!`$Duwkb zz{K#l1ZEXG=kX?s$E*BpZW-1^74uzgri8&|%>c$~*hF7u3UznE`s^P*33e?y4W2D& z6k@6*u0bPsC45qh2G0)PNzvRNW!JJOUhSo;;ck*-pG8!~Qc_*-YSDbEC;=UP$ z-w{{%85DY2kXb3xAJK~RF)`CiIjnfKT7gUn;3}qb7JD8Da~WtZ3=qun{E|pcPY`1F zqBC3avgd^kUVt%`3zO(0l0=uSKSRNf0N;L}K-fPrhHC*6%!eiwP7AiBE+<=@TI-}}^ zdJSrQ0mgT=P+x?WspruhMo|qj1Y7~dy(=6_BN~4IV*mTj75R3>Bbztp*20lIHAka| zEjlsz4l(tH*h=%t#YUMuL`k}k)+QUU3a4e*@ycYNm0eUTuu+Bg(`4$McZqedCFOLX26l;DueyWz zqek7p*r3+A@d2J{lrh1txCPR_mbyjDgF*-f^8NmfCSn-pBlnZi_iYENRGVt>`%U8JkgZ$zk4}Rzv4tOBvP%_ zH2K164%itry#0^783Q}ZHbkL(o`y$83=UXW8Pc59-8E+#I+4a@CY$vd@QVm4emi#sI9^!Zu>MMJ-rRV&O6(} zAic#tqNoT{TxXF<8~gqnr^)6m)DS>(Y85vNA3n=+%W_G|JuI2Jl#okBo8>p8NmSe| z#NpPi#NozBJl{{8t?^K$0Y}qYrc99!F}B1EO+iSW-{ioRvnIzs5d3ppOurFhbC{=h zp#@yTC+FrUe66$%Ww+OQZG7V zQXr&JgBgqlVJjgv#xXL4k12Fa3L32z%CLSHxSFg3?VW{HrCd%Ain_`?uZ{Nh-b0qQ zSH9qu3obmTVJDrQBRQCIFEXA3gXy#iveDcj<8moP1LoZnUd%2MQq?L#KGMd97NY@* zP>ffl&^AaTh$rVDK|cxZEWjDhbs1t!;W|m4Y zSB246Ys~UcsY!ED2A;S(;U-`l0c?ulXBY-R?0{jB+S_6?K%(E%M!FnwfAce#vBQ-p;74t7xT6I~Y zmIeB%ww!vooHhG0SdwtSnkVlv3u+De026f~OA8RxHJIkk)-e4DeZYMcAY8cuNDApy z%n9%XSQ5(ASV4%YQNQ3(By>b6Wl|ee{*71l2vYORs~k(CbWaJTdoO;qGZkzbH3ie+ z1eZ7AymJq)S+(k_@*%Z(Rrx?gt*G*WKi?!;wm;we5fXYnj>4}Z%bo@vuK8Z30g#L2}FgPM+UD!rE2a#!Xb>?k3^MXujej-ZQhRCaa_SK5| z+(@(xUA5dWbgo)%Dx@RqN@=+%C73MqbgQ1$+m!ERkOacwnt^jFwG( z>?z>DvT*Zrh%-?P%QAqek~2WAD?BE0m&qobEtJ{w86+nQ!DL!rB)=L(>mJHg7ll`V zC4f4u|B5X09Fi}6SB@wf<-DOju^W5&7f z%!5;o3_eP?3VX2%W%8X}__b_ez?&t%CY`4E1|B#x+9XzmQFoL>PjIa>rNYyYpLCk2 zKs7kLiLD4{DC9 zsPhuQOLC*Mrr**6Ucds&9bf|!uhkaY)L$8yKS+h%H*3|L) z<{+jcO2yTdGHU0k_@dXU>5H`&Rqv0I%NR6OwV6UU(O{@iOj8XH>y2h^@vk830QCFx zEAebj6X*AI4W2m1?TOQWY?>GL*ut7{as?~|&=zfqZxo~TX}2-= z!z$l#;%K3n=*O3hz`#hPl0RG8)N1d3i`DG~ZlmIyk~i~0Lt4BIWI&5=pkEz{+s(QL zi`$|0u2t9BTixI+;LI_W2k?O?1I)cHagb_lx zsEkwLV&%;S(Vh3Ybzyuf)--Kb+|g7-52EHT2L8td{O9m1PT?sfa|}>VCn%4dg++?u zi@`}ljSly;Je!dJO8%?)uL1Sn&wrg(2e5fi6Gu*>$Lx{n?@y=iJvr@+%|89~2u;$H zV|TKnfAq-ogAbiLaqKp7{*N9xd*os6af+dp%BDJP9L8-bp2>JKLW2BIOF21Nn{;nYM*lf=Gg|L^RsPc5K2i6Uvgh*6sT1g+jqGf<3$&@bhR` z>Lrrye;waX@v~G#sj${v(O$z}Fs&07KbxTSpAoGq(=C64^fHH)0q6hO9$Jvl0!DFY zZ-KVc!fz19KMpeE$dvLao_4EPf7p9z@7}$mqobHru&E}UrZWpikI>I!2rLhH6`J!h zr9o;=9)%=71Si+THYa+IRSq};XqbHuj^R=RX!1Dk%E87cC`2j=$ADnMZ(1E8Z>HFQ z=RsdZ*XcAGr>#-so6!!a(6Sg;6yg5j7eEq)y_gwn&40%-h!NKN2i8ix4|{Db+O-A* zKZ1vcP^2*%oEH*~_B*+1Yb%u`M$QbP7eF!A3433B_7fJw9aV*7ENSf83bi(#?nC*B zc$9ct(r!jrmu5D2Xr+ZP%*r%+r$9)H7+jXQSq2~h=`^P5^jZfT8HK`&Djk=fh zN{@=ObSXr-_YRxGCI1jn*Am6r;rC-?zxaBHO7SN8;oyhArdV4lrtsHu#ar;R>BP%J z0YPgM72Hm7a}lB7jVets!EK=eYNBj?tLRt9YA79)4x>MxOs5}u5OKd`@lYQBM~^&k^3jtI9J`GM zKf;&wv;&wtn1Wq5nd|ij;;+^QUT^QLi z(EH+xY9XEtkhS>nCU>Uz3G3ClpU1$pB8aT(!x2CTl00-qVZd4BsNrZKDRC;w$AQ8j zM=rsLY|bbR8{mff|$wW746`d}7$TnFZzUB3dgliBK7t)M23b%NFl^6(g0R zs~*kx93{DiO%pFZcE}WoREh&!rT96kJK+q+_{W1fQVm{Z2Z}qRA{)x;0x0> zj|L)Wn<&D(5D%ns8HxhVe*ZPC;4%blSp;+u?Ife)9LmqdgBVT6H>T6eQ&C|;KOaqK z2(j!(ROt76_&GEqd@vplMe6q}QXlG4xtgy1uA2bq1sus(HIMRsJc`k*x*dw8yQv_| zqhE{W5e9?kK(S~YJsL8xh5TFb;42ROhT_mZn?s2vFVm^tMP*P~^qq_=d6fT^c(kIq zawMJZev%C{=D$WW1}Bo5`cORD7W!f+$L#u6JYI@j|4p&$4PsVkZzPz0{AA@pWYI&w z@br7w+ECc6-fP-r_+RQ2{$wmK0GdCFZ#tUgXVPhH(5#eU6qba(p2+!XYoKdIwM`nF z5cRG>D+vwk?OYT#!95tPD`4pvNLH*x@Jv9NjK@Wk-x5!NXdd6bJTuhBrwez6uu3Xj5H=_a~XH!?bl%7a-Rs!#T%LV7JI*i`~P;&>qT3zZZGd zXk#w&*Dc+@8Uc?s`-%G=!G=CswhQj348Jz)t_XIQ=~v>I1nn$7uWRsTN-q$Ixp~^! z*eF23hDIcD#xf(jX*!yFOLIxy5!CoM@hGto^EobOE&88a5xEX?^Uu)@ zhf+Yf7MnJ{$B+d1*TqWzU&kY^cqw`WL=#<%TuTtUstz8B{*&?aX_Wu7c+{eK`ctje z*H>Q0bgf}5>-UENTvAJ~ZADf~Hd>bfL$6;?Q+-h66RNBfS534}N%R7E`+_rx1!ee4 z3)m8EmN?J_WD`j?ON3@K3;eFCx4<#tR6)Wy5)^JaKM+^dAi=iZn>wXkGUf3$;MyPG zw52>+x7*S&qgm%S6KE*f24b9srfneC!x5OrX%{4Okk_n)U4=F!jDt`Cy6C7(zY_a1 z%8`AC1!BNK$RoEV@7vGi#8ymLR3iLIsVA^;2;1}NB$8|UI9TYy=1JPZg3NWg{6M2z zxa3gfL9y!vN3}|xcOJ`Ijfy!sxudB^BQk!(M?n7e5Y9pUk|<#N?s#EQlPL8D8uj}F zNl9QKki5>y;PsI%@VW_EMB1`S3!NWZGy;p(Bh6m-!i5BS&;%s%VDp5_i_wvXph(*A zA$m3cS4nJy?>ZiGXq5fItUK@#z zCb1v=JpuzGOYI!XAG3%bAo^5Cdyfn2lBOU&0nZIUA&>2iZs}Q=JoE)^SY`Ylo9z9D~U2e?R>y?pA zrC_@7`JE%)1+$}sQQ#XKbspGRLU}`Z!x&nQPW1>$!7rcyap(0#zV|PLZc|s!_THAp5cBRjl_%t zWff6>Jj30w4E#*@{<4~h#UDNu&FnH(PIRP4(>-JVOI=`(dz7>^<-Z;QhZ%nD=IxJK zA{7v&_YuEwx;sOcFKQ+twc;!##)H1(Lxd)`Epzn&Xwq7p6Tb@$%bD*proQlW)fQE8 zSiZ!S)aFciuznt=Jj$pih-bubiw%~c01Pn;TsjK(#g!1tuOw#-^~YklJxn7D%I0se zkY3-C#A-nG&q1On>wbU*rdJlRZ+3x6pPVKo6HSW<7Y5k7V)Xug7f_CMC{q?19aoLz zR-)m)ZewC)r=_ZCxQFFC*>L}fR>S>izHox_PLz=SQ5^IQ$Q2K2WW=n)o#gdVnocg_ z)(d-1(RzYjQpgIUnhbck@mfZ^GEUaTg&8oouoGKaS$vaL6ATuwb~JwkF0TVA?KwT@ z7+9&dd2A34YSie|+wzO)ipR^X$$3OD@W{UzHe`GHm`?lzg=6tcIJq9~0vF1Ro1BAs zCh|M07lC0iIsVC3a{RU9xeFP-$C2;urW|!fD3QCX)Ig3>2YGr$RxwN(B&H;#rFjq6 z{pA;UVO(CODZX)HEi)NXWi%?jjZS$dN(~&S5E_wFrD9~LizSg8?>z5`=j$e&r`ST2 zCpPGEV>)Vt3p;bTJA|4==9fktDOPb&7K}FK?ZRr<*^HJYOHp4zpoiNIj)cPVcyi&P z{&*lffPt`Ll(z6(*>+vO8GKO3=a*NuyYS`?CZm`uX=&XfbYw{I8NJD8?@dNa$ zBNy^{U4z}Vp9Nexp5XsA8LjEG1jaaQ3z_p!Qpmrd?rGxd(D{NlQW&&77e0Aa;s8Z0 zu1m!qa-wZYcg|Ox(#4yYb!)hd2sfhQ;3F!Cw$LaNTZuc(RoZBB_i-b)zU8ML2`h|U zgiAOjdd9hcgx5J7Zstf3hG2has{Ao?KD4%k(MKU!aH%KCe#^OIm zLkay#>XWtC$CY1s#j?R5>HiP_i*d7J{QPVe{Jc~0GeT66O<4&mr&Ep=SFHwgtRSMP z1XABj2c!4e`RG3n3MxGk&>uf>JfJ-&**lx>l!?@&pT{8NBcQOi`Nn!O+&O0{+bPzq zb2MCYZpod8Rc_8$BB7|dmrUNEjQe9aWK>m}h@5n#dZbn|gM7_#J8VQxK<7WL)ByiR za)F>ed4NC9Y4NWdN*VdO(jbfAR5FqML_lOs9a@g$nYVd@S6|ee95=<&RN7{WkH`-! zL-!G1GzW@nH}OQjntpXO(f_@cXrAa_0CcUBwm$xdO6g0nF*$Xa`5)7zh|<#C*mG4} zIEZT%GPrhxQbg)Q+H3;Yxp`4~vMJHSn=e~eJoS>_zS-)+nwkQyArIGqrr|AZ9Zcmn zarL&#Kq^EmdIDr8)KtCmCO{+~qoo$;vi2CZ#cYDoq=PN^Fb;ZKHB z*%an*ue&plb%suqaOG!x&_ViO(*06^2ZVb&#BrmC$<-a!Yev|sggbw04_5CMH;9Og z8iUS&C@ot+Zq#bks}3rw?q%#zs{r=l?v9~&Q{oofUED5l%csCaMc!u3VCTb|KMR9d z>x9uWZvAegE8yrG+5XlScmezxvo_r(BNk>ei~KjGIDiw5Ph@vXoy*Y%HuwwmCOt9t z^7N~f2Hjs`8wTPTWO@seJ{ZXBx6n2OQBtx)N{=Cy8MDmITnsm@#2}(~sE#%_wM0R< z(}GYkMuDfi%27H8IWQQ4?P3?O9TdU2PI+#6_PcFC^Cy||`ZUTv7LOn+uW6JMQ?68A z*2#m36SQcLD{%N^7^xhVe3{3RvfU%iur)YvjJ8R@$2)IB3u_P8wdf~b0KJbfdO>mB z9)?tj!WJ6=(;N%w&&AV8&2OSl2(6wZ4=Zz^eL@ zhTl{SBP>(?J~jNDIKr7ea06Eikx8LY%l3p3#CBI}J}6|bi)NI8gM}{B1+E(;t4&kB zeiaM(1}Pv4%(V~~(-6Z{?*gW=4h7D1iKEn=$!a`zuW#08>QXOTi?WxPl#yb;8{mpX&-DFfjlTJ;y?X1Nb}@NDEePtlDh7HLdcX`g#}8ZPM~&8uP7} zv2d;za;Qf8npDa(#8AE11yms}7C(zNBqZSwH=}YpK3DcqivRf$an`r8zRCVj%loPvzih-lqW!jb}nP5 zX8P9x1hUNZOlupDe0*W2r_+))nELb?a0=bl=ny-C`64C+lL2!m`|rvI#w^O}B6Ka) zidmNT#?Z;KqEB#9xYoS}F{8c$Z$T_7Z4bJjWsEqZrifC98{`|)CUf%fE+BN`sBHRx zogc#yngH8l)8%2#g)T5_+Wj4d%qZt}Yl;7%l{kM4E4UnQBE+s9#7bl}iY5 z=7a_0f6|^45@)!d_zV7m_9vkM-1-R-q#7inN5_cd@jAIX}xVCs-jGZ8XsW^o*)ol*1UL`KcFlb4WNA3MBp zPLVGDR5I1{Ue9I4FOaw*Qy2Z}$b|WvuE8eEABJZ2b7!#5F*fGhrOsuMSnG3wn3?Eq zjPsa~pd7IW9U1qlr1h)F%-GV5vzi)nHq*cJlNZ7gT*ccv`k>Li@MeM5xMVG>?(!J zP3`uw6HlbALIxzS&4*cTmI8&?oHv#z<8laf?Tw4a~bCm=bXS-=!est-Hu zsxBx5BFHLi@DLor9vqF@A~EcwQiHw7F^KgZ=Vp+zP?A>zHR^>@ZS)?j-k0VEQYUFM z1UlgBzez_DZt}A4N$1vDiaQ(SVgrMNz0WWeNgb0O2a|Y5uYyc3kH6&!T2vTFJti2y zgu%@w)xvyU*d?__xx5JK=Q7yAaS=vt-fNU{*fv~+#mg6kKlBJ2F!Q)45SOR8<)XKk z0surG-e4f4MWJ{UIDme&x>y3I5^i9pRSyhT^FA-O>!J1SgEXf(b zohlF_`<6rc>hP*u9bN-hhZha?6&+rBW@O9YYcZBVr(WJ4VX9RVXJDmzo6L_oGVhJ> z%x#XNs80@5p#0SSL<**2%h*_t7K7;!@Fr0*gt#OGC%grCk-3ova7bHO8e0M{H8G1X z2{Yq=X`>-Y@PLvK{DrQ;X2#zHA|-rs{KNyNC@F)uB$iBkn#_S>Jzw=2^Lf75=N_7= zor_)-$3)o$sKEN*qi>ERJWk$GaF}LVI&lTf?woi4g(>nfiy3OMB0L9?!F-!{n??V@`ZI!7}#jE6_KX^!J)cQHN;ykououSCVQ)z13!eG@YZVsnOg><-zS>mbEn1$dYLsvLZ)FOO| zUA#uS=+4yG*wOSYq<|gMWOWfb&QJXw42JHGxcqcqhJWM%b;Pd3*4K6 zhGEDOsn^qMgTfPg|KR{`xTEpJzA7i2RGu=OY2ipAjhQ*UJaRF!Sext}g5sr(?<2Ss z0}%s?F^WJr6&B6l1q^{qb+&*o1+Mp#xBTVZOY(xwQL7b7uiL7T@NM-}b`&}A9p@hS z+j6QHW?*D9S$2T=Tph1%)77_jUVM1s3oiC{LR+wZ%*abULWU2!ln4&@%vK2>W z*H`e*df3!!lS1tL9~m)7$zez@5D{q1GKFeUNGO705R(&caG-cCh>Q5e0%HKoX6DuI|0(rgtwD?g%14-)WWY#)r-_mH} z836x;0C)y>Ug(>uu{xt5U{{f0=-mpQSll$zt2Kty|xO{C+7x z^YYraFUA**o;$uvx@cL3UqEj4RNln5E5+=KoooJdnH2dUqep0NI<`FQ^#rv^w_}ZF z>m`Q7p{?Xt2mRCzjKMc@^+X5rMNd#)2+BAc}GQdZK&7oYtgThN9dY$shx zz;1a&Omqa%8}D2rnqIrAZO{z(TZx7Gy$P_C-j>GlElpU$QczBN3lkx!+isELv8HZT zCNe-)fWW2gfYMd~d*P)7bdpwp7UV-_e0H_t8PV1OyQ_}rsu(Wkpm&dX| zQRysrcJ#sw7S>qbjF$}M*-?+YiuR*d2GtBE{*?j|v_yNpAQMB7)rvb??AHb}=F#`N z;L#e$keTP`DFU{(15oR-E#%RtAr)Ayc?x0=dB&Nz@@^&k$RX=cxQWmGVc76)I}8Hx zrx+6^=9^CMbr3JdK%@XK*Hc$vaHL9(7ZP0hXvW0}(=}Yi?mD*!blf!8B_>4Q-oAEY z5=W*avWn?F{A|ErZeN2&5-uxIe>@_0CncW|iNsYR@Jc2(eL=Y?ZnJ~C$KD{0syIUK zv8+v3a!ihmv1-IY;QA!3REt#`X$*_dltU@~6$O{ujHU;ZemI8o;f*}&%1Ck6F3-~G z?Lit?6VW{aDO#1_#TgQB&Q)5gr|4cjEY9Hn*rr%O7E{WrfVqQ)k-7^Cxy~1nYe5m> zzR2b{pJc5L`>K;BHBpMkNT7EWkI=79m*P)f8^k@x|C3$uUqr3X$j(7q(n- zH8P)^fs6SB5u4eVBQF~q6gNWdu>Y@ptlQ*VDo>1BxW%EA#r|6~&S`k;gcC+@et!67a=Bj@;v z!jYV_n@pFZq~dQQK|6W`0;vV+*lkLXj_%tXZR3r>^&Pnfd)g+)lptK*PBep96?{EL zz&bbjoFM(IX?}ayq*Dktf6zb{zfFT^SMgi)t79YV4MA9fyv#Q9k}a&G#_U)zmcA@~ zX`(S_|6;{Cds~p2W;oGlz5T({dgfk3W#X%mfO5N^pb%Pq6Zjh1yZ(bjXZRv=MkmQ8 z-MfuNX(RngEK0OpwMW;W?W(7TS3}S0Ek6ElPg^%V&`8E?FVjF`|EkO~C+rNdwVATA zOkYXfCFqaQZJoZTo!amwYM2=de4PRF}C`_m%{BnCZz+R2;;+P7^O`P-}cOBgzO{iD~gNddP$60Y$Ca7n95!}XdLoVNgN zStJVbz>)@Xov{2Uu-D?rG|aR-nE+;KUuc+bY%7nZ13#u<1pN6Un(XU^U@O?yk(isd z8TfPYz~}Ffy|5Hq7d=c&vwo`*?P1*@2bu!5hsT|1mZ3f0DYUPT8Mj*9`*9^Bpf}39 z&0&tyqonbb_6wa}_NO`tVn~f-1+n1WA3S{Uz`-p3H#fd_LJ@DJo7H4uF8t#dE_811 z>;gl8j<3Mfdm+{M86VGWa{|A{vfUT0K*5)RYE@{HAGA{Du&oKki6)$aeiBU4w1c<3ZciS1O7UE^xGja8>tos8lfg zu27!y$Z|bCk6X*k)C8y3)FXoucTTGHF20zFo&o|k>fGgG#hK6ksoGT0#9D4i0F{|t z{Y1qvv_h$0wm;r_S*fRm#lO7$L{QQUrgqlE z2^xV)9>dnekxq0N$s*RyNNNHLV#{kp6Ob9ad3$>XcWx=14B~Hy=3hg@59(%wq-{hh z26Mb!eHP}c{v0~u9(1Ko^GI)V0`%H|GCC^~$|$jq{-_C58~|~^%-iT!Vhe=S(Ji_L ztE2k@>ge2RERr5C;W|V*lunAn90SdHZjIL2|2}br&m0^aflX#y$d|T&Nj`{E2p?;I*6O5X0y*|1Ir0S|-hDXTW~V^eDxfC=h-W zO(aye)Elc?kv@mS=w;-yMb=lQ|5$osCx#S7HQFQn)rY#Ec&`y|iw^eNSm+=PdJOZ0#)@bW?Q``fj;+2jIPjUCkfb;Ii%^tiEKyXZs-D$5R zi1hNuZllSL*BN#zwyjuuni4$my*-AwolksIL8=&1`qu^~KB=>fEv~&Jfni_|CYBMum zf5Ka+AorL`c0e~(!Bs#eNX7X!B{VOKFMyAb#$Tjg9nH}{uWRreJxz0T>)R8r19c^| zq-t}8c?{p?3!nNUiz$R!d^O1Ywm{}{_!Tn^=$(6ylGOcXf(p-|+^+|4?)b945Xl|| z$zo5`@O{&QT(l4^=mX~q2ePxcHv%jd2iUFC`IEhS9B1DM-$H|fW_2&?m7EK1mCtk! zU}dt3H3Y1F?;WIqhqz!3=>v0QT;k?fI{5B6d+FoExcth&8+tRoSH2mn&q-^jX4Fg6UPF=Zbyn-N1!RwLtrF9Bkv7ujdCNPnl0lYspDW3MD#S z)ir|kEg@Lnh?f)lAmt3n)_>tTou4zmH4z5|etMay_*VodPLdfn!tXXS77~X;|Cr{jc<~ZliW!qa(heA9}RN0-d zq9RM;@`f&7CAfDLe=h-=iY{5A%a;;Vh@;D$C%iJOOg0{|hd}MnrhVA3{MB|tCGkj(r& zG=|VOU64LDboNxae)xE`npqqg6J*r%xC=SbiHw@ecQ8HaJ5i?1XXPh9D&1rpD*=p@ zUat9zN{k-*LdEMyaVL1lG*TUsIE;!s@z9LZ9=}&ej#4;pl*>b6z+$XK)U){kVSyi8L8XD>>n+O_yEy~>Ru?Iny7p?q~lRM4xl|r4Jv_fM-59UhM!br6fuso zI1+T2q9OP^9Om+%gRJ;-g(?mj%|fOq+@QFvA}JzopQyj*Xh68Ba>>nLk%?kmW%p9u zImGSM=n^Upvka;*%hPVvV+PSW5zECWmVQoVAOLE33|vrh5DohUiLQiY4+|0Afkv9y zE7>TpqhU@&5n-MY8Rh{`EaFa#YwD^I<5s+EepGm9^=iXqz$J(F9Ce_Zh_6-~hC#t5 zShHBQ_W)^BB@MA6m|_$vqROFH^5zGu;X+bToA%!1UK$|DWnp6RW$~kH74%@VYSr?Y ziB4L%LtYQTnol}Rz5F0#-s<)(2Zr|@*pGk1`wku$J~;jaKmem8*|7eN>r4i2a#*W;n$H$Dlx9QC>xEG4>Pyoe5iu~*KYQNml zs3LIJoy?x>|ZAh^C>LH`lZdbnuwXxR3eeYk>j^H?Ik3+m! z+}JZj=M-1_eb7s^v_2!>Px)Ka8{Shg*#6izfvXAeuvv67gSOA(u~$CQ@$e~sD^~qyW^pkf zeMNUYfUCN=9ETwE{2N1GLQND)7>$0PXxG5db9VZk zk;CXe_#sr;-%dExK&U)OR02**{?-ywlQeKg5-5)ACjB*Td5JdsX1!`|Cg)ZlALs^G z7=jM#;a80nmc3HWGTtkXD$?K1tFr_W^jQ3ZRG$W63Pu~ zK;(z~EkK6OOkmrJS4N{-Ww9B$nW47y#FF1vaVsPdu z>uCQSbyN2|-0xU$>vP;qzP?aG7n|ytSqy<(J->ASM*l_(mW3HTwlw%NHC#IGEu9Y%TkXx!+J7>X~YD zPJOEQXSg}5_#OK3UaSTb-$OtCmVW#V{dkc+e2ad3lzRR!{cz~Vjr8LK^y7K@ag1QS zgMJ*O9~1b|@HY`kxG{|p7f4MpLQ{;)6eBWK{3Hrb6@Qt3eu{q*Oj8Wc6vHyba7-}_ zQ{4X)_dUh^PH~@8jr>i|EDbQ#@|y+8-bZv}lF>d#CRy=jQ`>T0uXuIhcNI)inIA_ON70*^2Bhtbj-Xh&QA{nJ-l#GPgf>b0>WdSF4)rZBxv%%41o*`DkQY$c?d(CCI*EZriH zS_2Vlr0K-G11((|*$2;jJmn0?XJ=eRvixHmG=U^*0IMD9RbO^95uZiKwun2=VxV#=}JPcCntvE+>=3rpTU6GyQ-;_yy!ayVKC zkx3@iDO5wdJLB2_?OL@GLB+!{)KR1MKukHFGm}&C%N7-BqP3{_uS~r1=VQVlu(&%ao3AaNu;DReHWcBZtLzKN+!7yMNtwXD<}KJSeA~GMd?mw#8}SG^m1l7 zJF}Sw9|mm52%Ov@4J3zK8?bY}&xXGRc{#~n5a)p;1`;GN^5K9W`C!C>fgq0$L4MUe z-7~WycPUDD5n>6@a;K*s)zwwMs;;iy`}@A}^S`u9{u3ikXs3zi$5TP*@VG4osi4V& zr2TID_QFO^?WDdLHkQ>cb6E5xt(}nVCuVlZofP5rS>>p z_9b58^TI2!Z~pG$)i%Ay>wS0lIt`SSe!VRRLX*Vy`B?;C^2CBRve=c-}?fqslE+5X)AxIS@ufA>r^Kd1Btav zuiEa2d(_=eBf8IvW0g3vD|Q$pASAA&v9-)A^)%*FQ4GS4UEiD5Fo_{hYAr`r%Pr3H zgDXLpxIAKO)&>jf%tJ4c1x^LaY|Tqtwzy_RP3Fa{w!xZV8pti^Vvun3L%dXtIb|PkLu4lW<<$jCWI3W>|xL!OZS8?1O z6L&t0xwefod`SIcr6<)&FSy4bPqdVf2(Tf5q-*JS`@}CkBHNX;k3Asd{h;6iCV!uJW*w6E{Z2pkh%*nzlyaQ|D~1U46` zn>*;dyDoG{6W?-GY0{r^pLb6IK}ZB7+{h)_2goQ%-v3B_4>)&XmV~Uvp@DH?`9618 z7_be1GP~IVu1N4$R8Ub5Bj_iOIkUrN(+X7EwJ=(lVsChX6RyPsI~a?_X{!}R33>wv z(O45K4$F-JR=&@uHAeI|2m)?+LApM{UbAd=bCF>HHV?%3%;Kw4Y#w80B!VW8NDome z4Fn^?6v>Mi2N-kwnwkwE3XOgorK)O;`{9}b7I_5YhQAKZVh zgEt@C|4t`&j5LEWN8OcfNK%x!K~!GuRhetSRDw$IIBeD-Gw-9iK#X<}s}b*k@|@&f z#Qt#&rYDCL#YWV`Ncp{8sd1CC$KZcCd3qvh$!1Hbs_St-=3TDYEOGmw**c z$gEZ}38SHPoDs4QXYZP!(~3f1RI$)@!?l22LbZr&+2y%Q%TcKOu*9BZr>__T^O9Q3VVIfcJTK0pY6R}7Hb z8-#KDZ873{%dU_ANfjoXTwl_VKgvwXA-%L%(%;e=nrXu~^s}fc^d26*3SSgnD&aKj z3SmF7@9VPF4nCL-x2ANRyI`!Bey+irr%{1YZ~-mK2i zt=X*^*sV&=R1&~{?Z#B&RJ#90{3Z90NEs7jo33kNc3V_X9c<70`8ia^Dt50-F!)#7 zghBWB+~0Tq0K)!Bsxmk*Z0uGIsxxlO!AKnzi+*y#5Zj@kbMA=6lSdxwiT~L zVc4wDmkPa_q;I+!eK-1(>4#pW$KP>jZ5w0ogt{%S`={;?+&{}O#Qlr6-M=h@#q(gU zG^@o`5Tn`5;g?NjzI(PaDZY|8pS$(M%j9b|8W}9##BM8^9hzZ9=9_UwcotxGQ zm;NbmjsTHcu?NT`#~02mx0(daPUfwSiO1h@&WcwQD=wRfZHE=w>v*}q60o9f#Q(S7 zaCwl07^Gh+mfb*Fj2r|U_mj@ z>_!l^!AsiE&=9&W*&4BjFkN=pQtiuMcBZ_Ry`&_=;Cy3&rY@sPW8$4Bj_v|JK7qtx z{cnMNSo>XKR7U2iX6s$__J%vzKPCqCg5)y<%pPrgQTEqW6&v?x$@I|O!Cs5%3Dm#Q zyK5KQlnyQLu~X@LjY4f2ZnCFbzcv)9YxL)#pe8XbB-ETLLCrtk47l`>U@8z_3st-i z+N1QwwPKg8dX`cXY|Skh`D3wbMWkhQZY3!N=WLtDu~+lCtSz_Fd7zM~Na575jPbFw z<%gDoojrzA!>HIE6g`Qo04^tmSFxerR<9GRk-{Z}d*{_jYc~K2peRnl2t!CB{0)PE zKQr^q1?Sh5;C$VP!NUOa1f*CCP*HI1y^8Mcbczc$2{ITz0VzQsI$LQ3ZUE3(usUCK z6*nfFU0RA|#5rxTOS+58OH10)O%1;ZaJQ|1Sw3PwN_-%RK<$>#6Kn%Q-+|T30?}D# zlamp*(ioP@$d|x*g(%y!#5E~l{SO6j1ucP1R1uHAuQ$9X_G;+KOuDkp>LxZ zRM%8Nsg-F=3&H1PcwD|FJ!Y~1iV~*2!}vOO`o;i3c^u|MpzP$F)OYgYKliw}nZw{? z>=R<}ZifH?sj>5uyYeDJKfA?hYG8Y2leNxCmdO1+M(XA|!ij3UN7N{yAeUoec4yL( zkG$g^HepTUJD|?^FfVD2bQ4L<9;Vo{b=90=$*bSl0k3}JNs@m9RN{#uYm-&oo_|n5 z%K~ENJGm(Yqa@7L;|wz{X&{*-thvlC$-}lui5!=;Ks;?+U<=Gf# zR~(>tI$yU4f)$8C3Co3slE#mevi<}8*|zVZ9j=RI5^{#l_GDkAw z&n)(uo^Ro}MQvqZB5`a%FK|ktd_5SlY~RBoZT#X?I&$^Y-!O~%e@}?vc;mm7ApPf# z1nHGBtBoMtJBIGABnZQ|F5abDmiV+jM{h zTE}b<1sHPUJHN;}{%Q31^dplZ=O?H4>CH&WH0CLvdhy8!s)UCAJ>A`yUfBDYvb^Td z@NM#kn@HXu=hb4z=Pd-t=isn9i2N`fMSx}`X(0AP=@6XVM#2OS9OaQBX9Bx4ITO5} z0|p?pw4N}BTMk8w0O~eQb-8mq>j~Q`a)1$OqLbbbTPo@{B+!UF4)2>A&w9U1 zA`T5d93tuLQBC;a$TTa}cn+%sMt_|CJhW~4+*V8U-D~;`90$s@frg))p?0LU(6tDs z-8`C*yATTTWjKygDvS2f;IP{N7Wo@fz7FwQ*#o&f2aYT)ZKk$MOB2kSLY!-9$&cBl zws1)Wv1tF%{75Ozz1WX>V650n9cx{7*Pq*po7!>s*k;VmCnR-$vWM;$wlGAE+`%*i779RaoL z6wB%o#P7c%y&1i3`Z3piiv;0lqe_3at@{+d|7Fuc#?&aXXW;qXui@pLELyxlPF#20 zr@)3z!BhEnvQdCDOUafjv;_=aDIYl~^=E7J>{8uh$W0 zp;$+bQx2jZDjSl{B|_vR0+k-@TZVV!0Ehyme!@3!WW*&6GUnkZgxEnL86qggQGeb@@tewVz`g2)V5AEB$R)5{9Cd?7sz;;+H3^kn z3pTID5v}w?1a-#Mgb~a^#1hTqDTL&z98}w2(?2*GgOSKram@3$3c3dX&}|)y!Hb%;A|G7i-#Y81dZ+oOHh$7lQd}S=)6}%ag_*AbdWi| zSAotv#hZu28)I6Za&ISS{h$`)PLj@9*15{$66p}x&4No(N|)$YTZn>Zm6vpPt$G|* z4%}7tRcoJlHWJWyU+L3(9eUmMKvw2Pe9N?u&eiRrb0zp4oB(Otu1}8YF;0u5xrNW; z!9c3KFS3+3=-}lwGXExXLgj%?=qw_Otzi2VWL8velJirUgQekeR1qC7umImPWGetG z?<)3ZhX6#XVVVr@;G&0NngpxgMMu5BDm(t5F$t{1YmayOhM>pY@g{uQo`^4^r4|g# z*aYu{U5El}!6*gNhcC04Gkj)xnp042x;|4oJ8e7X5S5#?rZ3K7i!fckfX_1yzgRzS zpFeYcnqPEI*X*#41eB375xDB>5J)(pL|Q7c1{tbhk1K zcH*M1#32c$d)+s$@9u^O<{GklirViMBS?OtNK(~YPd=ba=$NOyAO>Te(19neRv$KZ zt&v|#mx>+S(RtnSQ`}EB7nepB#LzMi=u%S{q5TlWn2^cdY~f+Q8U}Zrf)zXtXOC&* zU_5?Qm(Rx{iB!O7mnBtlE2{c(HAc)DWVfvs#DR#@eZs1b6DuE?_hQ(!eDl~R4#OycR|)bN zV_m6F^x+6MUB+-DIDePU=y=o7MPmaRBt}%fISqYx@61nL z!1(1C9gW2ynnMgm;c|7$$DG>YpuXb+jyrhX!-KYX2EJMtIaP-v80labgpa|8e!3uq zX@Vo3Q$?6FyVo^hrAb)Li^LueLUqtdo2{x5JTO)k$bd3(8mPljSt2t*Y5DV_R?KnH ztBPw$sC9_1x5Aj?9yy}xSxYG;c2ZsSVo!!HB~}e8 z;3RJQ`k;6L0@bV<-7<;PRdt)|ZSiqQ4T8lyqM$w`j(FrikoV&U70e?P?@+uEB-VP> z-0Q-vFFF8jivw{JcCq>^DbzPc%V*@XdaTN{TNHzXFTl5_Ul-t!QY)+&;ZGHU z83XpHjBlmxZ$n5z+Y9PgYOViA2od76R<3u5H*2_F87CV!*>E{e(A$`ebo#lron z<>1F4OqQd=~(84R@IerN%3I}1gS{y;}hVGL%+oE6<}4V zlx_^lV)Rxw4|IK;e&_+!2dGeeAJ49tySE#s5L0ZNppP3+*~T^ccoS}O<8}J@CVjk1 zA3vdwAJfOHROJdjQZYnb(nU%dV7&2t6uu>UT#&sj$etEtFAK7V1=)Hbbw5G%zkvF% zN4MP@k^=XuYIwSdqK2oeH8ngPZ>iyF%PohO7B&?Ji&7;gdeHU&n#3tgUX_sM>w1c# z#S&Eyk^$Lj)L31eUK5Aw62SDGnoB`NPgfaPP~eoWY30DGY`t`fi|3m(N7pKTCzEIoUSSz zH@n+U^{S6_32K4lhN+I&(BG0Ibh&M-qJl>oKkQM@y={rU%ogqz`_%Q^eb*M|Z<0Zh zN!)D!r20h@{F(?dZvUF(r+kTOAgwk22E{tn7497UdP=_Cn7e9jK{Im3aQa8i^eTB4 z@|r&k3gxm*o&l4lkF)XYnN6S6Zt~@a=mLD3ri_qcH)UV*r#<+h`S+6^^&Vhe#03 zrbp8~T&`u=5{w{{(SZYG0^6_^Cx=)t4CE3ZKmx>v7|AV%06`KUmp~8@AVGitKI9Z6 z->d5G>Y1ILAMSD`$18~Bbai#rt5@%@UcGwt*3m!s_jeER|Dr|Pw|b%14DxN?Wesl;mEZ1w=UDocu)^`s@#{*`Cp5IREyL0X_ z_xNl5^LRNIdSR1gUPbd)jJD^nAPo9c33ZNMWjCp}?5p4I^RCg<+2~luKxbj!J>wpB zk3`2}P}ZWOO|Q-RYdzD57K||LdS)-g5D4TWo*e+Z=(yE1f&hj1J=Zo`;@1hg*O3pV zVO{SshwAjACA)w)5{P`6AJc>V$5wL*Bv-{EF z;Aj1wd%^t-`Z_A1b1(9K=Yb|;y=!#b47#tKIDF{P^KE6FwOQ9_DoOW&Vl$wo%M?Rt zdO@i8juHTa?e#zb!hFj!LS`$QUg#>X5a5by1TG8m%9Cju_z_wtQ$k;1Hw`OnZYh47 z@tRAD(Y6&YRDiPp?FZC>><1pk!H=k-@OR(JeH7WbT7Nvfq#-7QW&hSyH0DctlG zziYJDnbI*jtP8>hNrI@{u+>z&w#{xTj@M+I{<9x-Y)46iV2~GldMo-Sk2d0(GtlSndVpS?8>s6+-{Y|A8Fm8V|8l3T!UZ>H3Zfe2w zf(_&2x#=5Z&9IE_Lb))r@FP`iEhsbPhSv>yu-pO&Z=sCNyXT@ihdS%07}@>`&<0uE zK{k7=3NlI{I+X=D(RwG6F~|;J+~4PZV;sr}S6`=Ip?1zipWCy+%Q5aKjFX{=R;WBA(^JJ<*97KQh}}A3lck{(=(f%rL4n-*@Q}vrY%z% z=GVTqY;?Sa;&*6W1*HN7YqPE-9x{Ac(s%$X8HO&I?O338;-14%`9HZ9^ zI|kOmJ6XD@2EqZ?!q5#nt1B=)X|*5oH=HXhT!G{t`d%qqMq$3`uPZO7`{?Y!&0KB%Y9CzFj?PUTd@NOr=u?RDF*cFC82GdX zG2?{+7D(}+;rlu7!3BfG9JzW3H?+9sh}{CZvG|9Exj^d-sRc>a!ndeE!-T%&H{pbxfM2vaF${bBg79d66 zz{(n~1@2zVttwyP3vDW-|8m6PD9x43qERifQqf@LlCIS%s!=Y~Du${XhQVrs*~ znq4jxs!U^sQ8cx(Q&H7owP>g%-Oeo~EymK|>Q;wQ!y#PReEs`)>cQ{Jeah}aqfT@ zxKHnZ7k;IAL0T#BA#5DO*3>vfHOaiwGD_!rshZSVhV|kr&2+?~x%)Qmn=t6CmthS^x@U^| zBNjF3Fs`X+;7YPn$&FX+kt9ZJJ%ru@hTx{gW*#{k$YD*!o7nE7pRx5uTQ_+HOM4$> zUD3eJFj&HF9rksG8Vuk*2;o*BnGTcLhnF4I+RB#SLuo)8LcEu3&oII_;g?@uqHRMw zbo?Oj$Y~8H1byK-VqY&7%K~(m>2Qw0_{5k9>;Nu#>>a+|W8JO1@+<}u`zx0C>(r`` zZP&o{drdgM;dSAfyVC@6r0IF>QwPYSozqFklP2T=#>8IpM2vy8mqA=klH@Nk z%g~REI+e@m#N;=ykGz20bFsY=Pm_p?67TlTANVUd_LQ198#Z^zhF{7M)j}eq(J~Km zyE7?>PQOGh;wuytg?*kx7!8%CkZrsz==_^A(K({hHol&I!DDUA0r%$nPm)dR^qPu; z2pQVgfjce{2s~JdiwW#Vk@VoQ0r4@R3+s!5y}t1B=Y#wL%)9_rGR&zq-_3+vXknvB zxJi@7uvLVBtdMVM@#q5D;Dj(5kU)?z6j7#l4w-eE_(cYI5T8zkGkfV=kqrU5?*@9kfQDeAbu`3dm0o29Kch(W3P z|3O3vI37YyX%mBoMhdn}Le>ONCmYR@Sxx^27I0T#1Yo(#Ssw0oijYEh0{9zT8;b*q z0b0j8h&GH-J9eh>wIAQqwhYJwLqSNLL+dypLb&D7;{kSYY(pGItROzD68q%xh=WB% z9)W>QNEX1=C!-p!?CI#FksR%D!6)DC%BD0DiF;1-gBwL0OJ;CQa%iK}_!E3F~cX_K22H0kN?IuHGi1FMC~huY4% zVqAmjBjTEGilbG86UGe9l@c|c3K)!(cb;G1k=ltxf(R4}lN62{axl<&0|9G`;#4SF z3cjdKX7ZN1kaU|}#6KZGg|-xdG9F2VC{Zq<5XoheyyLI{mj(}(8VMDjl5{c&R@-l3 zV)M!?zI0K=T9xxJ?LfZ$k&}j$9v=r_z(xPEv;4a_Jsl?!^3&51zQh8Tp&w2uLkU(c zLr-S-Mz$3V6ptU;hynusfGp?jXkGn&2I-#-R&iHB4HKZ|4hzc%JM0#PP>Bd>X>N zOmX^+#s#v_8;#wDL^K-Gj@M>}C?kz;;bUM%0d@zR>2FH6%)oGy>7P$SHDup>o-Rz7 zr^GU+9=TST;~12!L~+4*sGi;nlqZAv_1(^%gr4Kz(yTZ*oR=*`co;GE>EyzV0V#0)*R(DkAiDI(uTiUAd2U1gK2N z=kSVzlrz~Tz8j|yNYK!(9ktH|&BYmJC8f$}maj&PMzUaX0(8`Q&o?qu3|OT)UteA( zULsOiSy;w@I23|sO+2KJv>eSNc8*s`N(%#};={t=hiR1r%lp<}ieNsMzc*nnCvEh7 zV-SCm`+o*kJg4dI5f$QfH4Z^J z-c1%hrkefQ)zezR4Pt>Q;d6_g)STt6ja04 z-&pd)n;;Hf2U0pbw@2fUJQVF&lfeBS4f8P0@#8!>!cnrvMeZ4m#f0|GZbz{Mmy^j) zCy)tPe&Z(uihzi7{o{O+_|fB;r%84n)oyvNNycr%k2J5&4AVk_j#F6@k&tji{A@BJ z=m;6_mt*0RJ5pH6h|$h9sqH)e2&6aT29iH4Ud^R0=BMs!c;L zm<7G0S6`gX0B8QoVaO$#FDrG=?`I#r5zVb}Ih4AX_K-Ma^4x(PuYPM6W zl&Wgc!WkRQW@W=PG_#`Xj-wfRsaP`sidrhEMx|84-VyVnZ<)Vq0-~@|Y6xaF5 zh82{?t11!woy$fD)4V5A^E0&DFUFK$7*nP#^Z&1^>MH+#XAIMsy|Q7KHC?S%N{;53 z6@%%;f>|lx369u`g%M!{R<&vtScO@|no~jOx><0TUa%ziRuJqT*s6h1R`nt)YL4Zo zwuWO%hJ^!5w!wgDMA@q~W|XvQQM0s)ZB;B=E8AKHlZ0^mQbB?Z6@zHb4h0&n44k;x zzrmPVRj=qy4HHo`om$DMmCIE`xoZ{8QmdwJ*|oCe*lIy7+65a!(n^(TsRC**lq;;9 zp>l+_?-SkBs#O)@qwGLlsAWUf3y>Kl&_u=7nN_Q@vJKwFi%Ln?b**IR7EY2G*sW7* zHL$9j0B_%5#^H(@$huZ4-~d4t;!UkW8mTq2STMAzql0o()h??wl5{m)FBNJyn*n&4 zR;v|sUBbMvkEC9xm2{lOV@$JgjG$O7X$&j!5-T$cETC3_R?Vuhs^(O*8sxcZRSdmm zYdA(>=#H*Qs1d4seIEhW3QRL0Cv;n{Fk3Hx!mXkXf`KF~uo6PVYL-zo%N5%&!La3; zrWOko9Rl7cn8osTT28$x!v|nSi1eaXtWKkN=p;pYkm5k`Cbq$W;tdZJZ(@#REwTf} zd!Ts9jGxKKJW#v`ig$R$ClqhGz~(FWf10pzpXBNK_TY*-^>kgk8=K#2NTkAD(v1c! zTj5utaCC}5+oH4K+y+Nb5Kf0H&+|h#ifky7W#eI+h7^8b0M>0KbZCzyy^cBracutTuXjog4CO2FTOV@O{Bf} zZ8S_lyW${|h}ez;8o1t0g002DaAZOi*-T-nA-U@fI?IG?c+v8#NkKOu#93UTHfNn#P|+-SrM$B(h26I4gHnH(tF zHV_&xNO8J~hhw8<0Y5f?VeY1*Ku4b2`)14~>}2 z*o__{(&PC@|C>BxKn6!`1*sMpWmPn=N}(-Uq;wN2k|gUo=C$h^2+YT_04oRV)?2iq zz~Fu0u7xSx-UNli14E)aKGcA+Jlg(d8(8EAe~hLum(mH!0p9CDE(r<145o=AdDuST z8p-AWXXv(&e$oVKZ+bQeqRp5sg6fk)ML-3g7ET5d>G1&qA1UzLHqYwLH^XG?-zRq9 z$&6vPV->JEJF?>vW`a51#+Q@AX~?{y9{A#A_0}asW-z;HW&C&-2jx(*4q1@GNrJ&e z?c1|rV2;Z+*-8`_jEC#dsf1wy?!yxWr|h4PqCe{>J|jfSRB~7L70vY7c#I$fVo;nX zgFlrmmVNVazCY_YkCNDwjYQ&kJY)|~R4NIm4~|tnvRe-OU(O2q`Dt~R>?oT4oAEfn zdA!N4kH4FBMBfsb7d}$$nnBjb0-W*lFrO;Xgy!bBY>=biwDqsE&ctVTXPLW$D{ z?fnx+C#vC%W2h7N$u;p^8Tf_WCL4`Lyc`9ubjwUM`V#0L7-t(w2>6`bKY3U@U@f&S zAibtDEoDa}@uvJ{JO-xZwET=?y7mAZI3H^R7@_9e1g22)I4*Wyjo_3Ou2J^5k2R`3 z(zU{NJAXRYA~}mQu0`n#ptO3gQU-&}K1`!=>j9dMG_q-t$ix1`#?N5t1@LPo-BRp+ zNPP`USUcmSg`biT1kX@$)lbxopjfmoJe==(f;o21U2AlkwQPbBJ*gnmn0dCkZE~tQ)gp@L0@^ zsg{V6k`b^?ClKGqmm>w@9T14ma`{0r0n?T}tU(7ggkLRymrUU+Kj9Fi`E4{j__>74 ziKjf3XsI(0o<@g!ulz^?E;itDili3Kud~OnK@Le}^G0aPoFrMJ(L%Su3fevo-%_uO zzNF{!f^cOu8gwrkzi*7>?k3-O=fW_Sc--wtP*TWXqhae>yAV zS9e7#IM_0ZS|m`>%e!iSBrQ@6jp12^PoI&t}Ed{bOifwjGVFHXe3t zN@rLi0e?O%lfCc}{QayW$W7)-*+n!>?eXJ*7c|S`$$&B!6Uy%Rh(4TkL}y3H4Jo2W zy&VDZbmICa_;QrEj<#OHwoD*4Qs7L)F%5`GE;JFwj-T=68(vo-|9|4}N3;{)o#1DH z%rWAqd6veoSos+~9Y?4ms{mWj&OfENVsXb^=ps9&VVI=RFEPQA>a4JO=Q?i61k|v(us0S(qYwP-O_`b$Mn{F zen5#14Jh)Wsw%lF*m(3hO)&OSrib$t(wA@A&;aJXIyB{N$!J zgVNlQ7KN`|?46Nyv&C6l0x9f~ov&)b=IiPTnoW(S6=+PrNolfhik5PQi{jZet&#u&Ff~GxBMIyYlLO?Ke|c8S-@BuDkS#}JDvcUD zu6#-*OERkCafxh|!^>uc_Y{e!L{!PfqQUY}P|a+S-JA)w=@inR0>@fxTZ6$ed~3@Y%L!Rz;uOAd1-?-}Sm9CJ>+{%a{9@SQG&4xxlIdbTHPSWjA(*RB0FG^UPFtSd;D0Qoebe8}bJ;ooT1*dR%soxFjO<26m{tI_R z3y6J8ALpXG*i8?(;-*DXX)c=Z?fw-j>O6HNo(_%EJ{yWj4*Y5Pf zIxa@>Dg9(Wn&;OWEe9TcKQQ>R&bnQ{TgO=h+!Njfo(WVd>_>MZgZ5x6bG(&)^x)8& zp(Zx|2Gk!digqOob6>dn?6Qvj2VV?*9G#&t1V9w7O2^#^bT{(pqmmvMAv<5l|WyHwuCU%hCa>QiPuYDIjp z=05ihue`=9uJzo9=oN40q^rA+i$>@w0Nw~!a=qwumH;@cr!5cijRplcMF}x!Qcny% zTO#UV5P+?koexSwqq*wmY*@5=?K`RpQ=Z4#g-yrk=A|$Q0h{R;z zJm5Yc2Qtyu*;G9Jyq6aYE^J~w(NctjC^k7BO fZH{PDfw literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/html/.buildinfo b/docs/swarm-guide/build/html/.buildinfo new file mode 100644 index 0000000000..c6ef9c06fb --- /dev/null +++ b/docs/swarm-guide/build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: e27bad955dd42dfce0742bc11852fab2 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/swarm-guide/build/html/_images/chunk.png b/docs/swarm-guide/build/html/_images/chunk.png new file mode 100644 index 0000000000000000000000000000000000000000..dea1a8c499d1ccac5bf4b85f41f7f3bb5af41569 GIT binary patch literal 42877 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 literal 0 HcmV?d00001 diff --git a/docs/swarm-guide/build/html/_images/dapp-page.svg b/docs/swarm-guide/build/html/_images/dapp-page.svg new file mode 100644 index 0000000000..31bf762e38 --- /dev/null +++ b/docs/swarm-guide/build/html/_images/dapp-page.svg @@ -0,0 +1,658 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Request bzz:/<root-hash> + + + + + + + + + + + + + Responds manifest + + + + + + + + + + + + + Resolve manifest entries + + + + + + + + + + + + + + + + + + + <hash: 8afec4234...> + + + + + + page.html + + + + + + <hash: 7d32a09df...> + + + + + + page.css + + + + + + <hash: ac43498e1...> + + + + + + page.js + + + + + + <hash: 5bb35788e...> + + + + + + img1.jpg + + + + + + <hash: 102ef1e28...> + + + + + + other.js + + + + + + + + + + + + + + + + + + + <….> + + + + + + . + + + + + + <….> + + + + + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + 2 + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + root-hash: 6a4eb323… corresponds to manifest, represents a directory: + + + + + + + + + + 4 + + + + + + Renders page (via page.html) + + + + + + + Page.html contains referecences as localdirectory entries:<img src=”img1.jpg”> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_images/distance.svg b/docs/swarm-guide/build/html/_images/distance.svg new file mode 100644 index 0000000000..717f2b3c79 --- /dev/null +++ b/docs/swarm-guide/build/html/_images/distance.svg @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + 0 + + 1 + + 1 + + 1 + + 0 + + 0 + + 1 + + 1 + + 0 + + 0 + + 1 + + 0 + + 0 + + 0 + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + 0 + + 0 + + 0 + + 0 + + 0 + + 0 + + 1 + + 0 + + 0 + + 1 + + 0 + + 1 + + 1 + + 0 + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + 0 + + 1 + + 1 + + 1 + + 0 + + 0 + + 0 + + 1 + + 0 + + 1 + + 1 + + 1 + + 1 + + 0 + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Address x + + + + + + Address y + + + + + + + + + + + + + + + xXORy + + + + + + XOR + + + + + + + + + + + + + + + binary + + + + + + 14524 + + + + + + + + + + + + + + + + int(Proximity(x,y)) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + log2(distance) + + + + + + distance (maxdistance = 16) = log2(2^16) + + + + + + 2.174 + + + + + + + + + + + + + + + log2(maxdistance) – log2(distance) 16 – 13.826 + + + + + + 13.826 + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + The higher the proximity number,the closer to each other the two addresses are + + + + + + Proximity(x,y) + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_images/dpa-chunking.svg b/docs/swarm-guide/build/html/_images/dpa-chunking.svg new file mode 100644 index 0000000000..1976260db7 --- /dev/null +++ b/docs/swarm-guide/build/html/_images/dpa-chunking.svg @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LocalStore + + + + + + + + + + + + + + + + + DPA + + + + + + + + + + + + + + + + + + + Syncing process + + + + + + + 0 + + 1 + + 2 + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 3 + + 2 + + 3 + + 1 + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + Split into chunks + + + + + + Chunks + + + + + + Source blob + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Content-addressed chunks are syncedto nodes in the bin they fall into + + + + + + + Nodes upon receiving chunks sync them toother nodes in the same address space + + + + + + Swarm node + + + + + + Swarm upload process + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_images/kademlia.svg b/docs/swarm-guide/build/html/_images/kademlia.svg new file mode 100644 index 0000000000..2dca3d4152 --- /dev/null +++ b/docs/swarm-guide/build/html/_images/kademlia.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Node address(overlay) + + + + + + + + + + + + NearestNeighborSet (NNS) + + + + + + Number of nodes connected + + + + + + Number of nodes known to node + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Connected nodes + + + + + + Known nodes + + + + + + + + The node will subscribeto all nodes and all bins in the NNSThis means all chunks will be shared + + + + + + + + The Node will only subscribe to the binthe peer belongs to for nodes outside the NNS + + + + + + + + + + + + + + + Proximity order + + + + + + further + + + + + + closer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Most proximate bin + + + + + + + + + + + + MinProxBinSize: Minimum number of nodes in the most proximate binMinBinSize:Minimun number of nodes in a binMaxBinSize:Maximum number of nodes in a bin + + + + + + Kademlia table for swarm nodes + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_images/storage-layer.svg b/docs/swarm-guide/build/html/_images/storage-layer.svg new file mode 100644 index 0000000000..783a2122df --- /dev/null +++ b/docs/swarm-guide/build/html/_images/storage-layer.svg @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FileStore + + + + + + + + + + + + + + + + + + + + + + Memstore + + + + + + + + DBStore + + + + + + LocalStore + + + + + + + + + + + + + + LevelDB + + + + + + + + LDBDatabase + + + + + + Swarm storage layer + + + + + + + + LRU cache + + + + + + + + + + + + + + + + + Streamer + + + + + + swarm/network/stream + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Node + + + + + + swarm/storage + + + + + + NetStore + + + + + + FileStore + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_images/swarm-intro.svg b/docs/swarm-guide/build/html/_images/swarm-intro.svg new file mode 100644 index 0000000000..a038cb1a41 --- /dev/null +++ b/docs/swarm-guide/build/html/_images/swarm-intro.svg @@ -0,0 +1,983 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Swarm: distributed p2p storage and message routing system + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_images/swarm.png b/docs/swarm-guide/build/html/_images/swarm.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7f89fc9b883cc5dd176cead3e6828338946f75 GIT binary patch literal 137201 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�a0HW#hfbP;6@Zv`|NyU603r?tu+IF-d^r@c~=Q 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%0AL``&MP%h~??A>Ue5$$T3;jB5h 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Node + + + + + + + 0 + + 1 + + 2 + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Peer + + + + + + + + + + + + + RequestSubscription + + + + + + + + + + + + + Subscribe + + + + + + + + + + + + + SendOfferedHashes + + + + + + + + + + + + + WantedHashes + + + + + + + + + + + + + Deliver + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kademlia table + + + + + + Bin number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + For every peer, depending on the addressdistance, a different number of subscriptionsare established + + + + + + Loop + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_images/topology.svg b/docs/swarm-guide/build/html/_images/topology.svg new file mode 100644 index 0000000000..19773bf067 --- /dev/null +++ b/docs/swarm-guide/build/html/_images/topology.svg @@ -0,0 +1,464 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 01001 + + 10101 + + 00010 + + 10001 + + 00111 + + 11100 + + 01110 + + XOR distanceto00110 + + 15 + + 19 + + 4 + + 23 + + 1 + + 26 + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + 10101,10001,11100 + + 1 + + 01001 + + 2 + + 01110 + + 3 + + 00010 + + 4 + + 00111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SaturationDepth + + + + + + Node 00110 haskademlia connectivity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 01001 + + + + + + 00110 + + + + + + 10101 + + + + + + 00010 + + + + + + 10001 + + + + + + 00111 + + + + + + 11100 + + + + + + 01110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unconnected nodes in the network can be reached through nodes in the bin they fall into + + + + + + + + + + + + + + + 11110 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_sources/apireference.rst.txt b/docs/swarm-guide/build/html/_sources/apireference.rst.txt new file mode 100644 index 0000000000..207f659518 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/apireference.rst.txt @@ -0,0 +1,302 @@ +.. _API Reference: + +************************* +API reference +************************* + + + +HTTP +========================= + ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Method | Descriptors | | ++===============+========+===============+=============================================================================================================================================================================================================================================================================================================================================================+ +| bzz | GET | Purpose | retrieve document at domain/some/path allowing domain to resolve via the :ref:`Ethereum Name Service` | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz:// | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | domain part: mandatory - ENS name or a valid Swarm hash. path part: optional - a case insensitive path to match for in the manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 300; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | The content stored at the resolved ENS entry (or the matched path) with the appropriate Content-Type as stored in the manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | POST | Purpose | post an application/x-tar or multipart/form-data (or any other Content-Type for that matter); create an appropriate manifest and retrieve the associated hash. if an existing manifest address is given with the according path to update - a copy of the manifest will be created with the updated entry and the hash of the new manifest will be returned | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz:/// | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | manifest hash - optional - an existing manifest address to update a resource included in the manifest. resource path - optional - which resource to update in the manifest. encrypt - optional flag to enable encryption | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | a hash of a newly created manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | DELETE | Purpose | delete a resource from a manifest by unlinking it from the existing manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz:// | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | domain part - mandatory - a valid ENS hash or a valid Swarm manifest hash. path part - mandatory - a path to the resource to be removed from the manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | the hash of the new manifest which does not have component ``path`` | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| bzz-immutable | GET | Purpose | The same as the generic scheme but there is no ENS domain resolution. the domain part of the path needs to be a valid hash. This is also a read-only scheme but explicit in its integrity protection. A particular bzz-immutable url will always necessarily address the exact same fixed immutable content. | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz-immutable:/ | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | hash part - a valid Swarm hash that points to a manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | the resolved content at the specified address with a valid content-type as stored in the manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | use bzz-hash to resolve the ens name into a hash then use it with immutable | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| bzz-raw | GET | Purpose | When responding to GET requests with the bzz-raw scheme swarm does not assume a manifest but just serves the asset addressed by the url directly. The ``content_type`` query parameter can be supplied to specify the mime type you are requesting otherwise content is served as an octet stream per default. | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz-raw:/?content_type= | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | content hash - mandatory - a valid Swarm content hash. content type - optional - the mime type to serve the content as. defaults to application/octet-stream | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | a pdf document (not the manifest wrapping it) resides at hash 6a182226... then the following url will properly serve it: GET http://localhost:8500/bzz-raw:/6a18222637cafb4ce692fa11df886a03e6d5e63432c53cbf7846970aa3e6fdf5?content_type=application/pdf | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | POST | Purpose | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| bzz-list | GET | Purpose | Returns a list of all files contained in under grouped into common prefixes using ``/`` as a delimiter. If path is ``/`` - all files in manifest are returned. The response is a JSON-encoded object with ``common_prefixes`` string field and ``entries`` list field. | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz-list:// | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | domain part - mandatory - a valid ENS entry that points to a valid manifest hash or a valid manifest hash. path part - optional - path to look for inside the manifest | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| bzz-hash | GET | Purpose | responds with the hash value of the raw content - the same content returned by requests with bzz-raw scheme. Hash of the manifest is also the hash stored in ENS so bzz-hash can be used for ENS domain resolution | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz-hash:/ | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | domain part - mandatory. a valid ENS name | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | text/plain | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| bzz-feed | GET | Purpose | Retrieve a Feed update | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz-feed:/?user=&topic=&name=&time= | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | hash - optional - manifest hash of the Feed, otherwise user param required. user - optional - Ethereum address of the user who publishes the Feed. topic - optional - Feed topic, encoded as a hex string, default: 0. name - optional - subtopic that is combined with the topic, default: "". | +| | | | time - optional - The last update before that time (unix time) will be looked up, default: most recent update. meta - optional - Just return the Feed metadata, default 0 (false). | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 400; 404; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | The content stored in the requested Feed update | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | GET | Purpose | Get Feed metadata, used to help publishing updates | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz-feed:/?user=&topic=&name=&meta=1 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator Parts | hash - optional - manifest hash of the Feed, otherwise user param required. user - optional - Ethereum address of the account that owns the Feed. topic - optional - Feed topic, encoded as a hex string, default: 0. name - optional - subtopic that is combined with the topic, default: "". | +| | | | meta - required - Return the Feed metadata instead of the Feed content. | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | HTTP Codes | 200; 400; 500 | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Responds with | application/json | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Example | | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | POST | Purpose | Post an update to a Feed | ++---------------+--------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Locator | bzz-feed:/?user=&topic=&level=&time=

\ + --ens-api @ws:
+ +Will use the ``geth.ipc`` to resolve ``.eth`` names using the contract at address ```` and it will use ``ws:
`` to resolve ``.test`` names using the contract at address ````. For all other names it will use the ENS contract at address ```` on ``ws:
``. + +Using an external ENS source +---------------------------- + +.. important:: + + Take care when using external sources of information. By doing so you are trusting someone else to be truthful. Using an external ENS source may make you vulnerable to man-in-the-middle attacks. It is only recommended for test and development environments. + +Maintaining a fully synced Ethereum node comes with certain hardware and bandwidth constraints, and can be tricky to achieve. Also, light client mode, where syncing is not necessary, is still experimental. + +An alternative solution for development purposes is to connect to an external node that you trust, and that offers the necessary functionality through HTTP. + +If the external node is running on IP 12.34.56.78 port 8545, the command would be: + +.. code-block:: none + + $ swarm --ens-api http://12.34.45.78:8545 + +You can also use ``https``. But keep in mind that Swarm *does not validate the certificate*. + + +Alternative modes +================= + +Below are examples on ways to run ``swarm`` beyond just the default network. You can instruct Swarm using the geth command line interface or use the geth javascript console. + +Swarm in singleton mode (no peers) +------------------------------------ + +If you **don't** want your swarm node to connect to any existing networks, you can provide it with a custom network identifier using ``--bzznetworkid`` with a random large number. + + +.. tabs:: + + .. group-tab:: Linux + + .. code-block:: none + + $ swarm --bzzaccount $BZZKEY \ + --datadir $HOME/.ethereum \ + --ens-api $HOME/.ethereum/geth.ipc \ + --bzznetworkid + + .. group-tab:: macOS + + .. code-block:: none + + $ swarm --bzzaccount $BZZKEY \ + --datadir $HOME/Library/Ethereum/ \ + --ens-api $HOME/Library/Ethereum/geth.ipc \ + --bzznetworkid + + .. group-tab:: Windows + + .. code-block:: none + + $ swarm --bzzaccount $BZZKEY \ + --datadir %HOMEPATH%\AppData\Roaming\Ethereum \ + --ens-api %HOMEPATH%\AppData\Roaming\Ethereum\geth.ipc \ + --bzznetworkid + +Adding enodes manually +------------------------ + +By default, swarm will automatically seek out peers in the network. This can be suppressed using the ``--nodiscover`` flag: + +.. tabs:: + + .. group-tab:: Linux + + .. code-block:: none + + $ swarm --bzzaccount $BZZKEY \ + --datadir $HOME/.ethereum \ + --ens-api $HOME/.ethereum/geth.ipc \ + --nodiscover + + .. group-tab:: macOS + + .. code-block:: none + + $ swarm --bzzaccount $BZZKEY \ + --datadir $HOME/Library/Ethereum/ \ + --ens-api $HOME/Library/Ethereum/geth.ipc \ + --nodiscover + + .. group-tab:: Windows + + .. code-block:: none + + $ swarm --bzzaccount $BZZKEY \ + --datadir %HOMEPATH%\AppData\Roaming\Ethereum \ + --ens-api %HOMEPATH%\AppData\Roaming\Ethereum\geth.ipc \ + --nodiscover + +.. https://github.com/ethersphere/go-ethereum/issues/864 + +Without discovery, it is possible to manually start off the connection process by adding one or more peers using the ``admin.addPeer`` console command. + +.. tabs:: + + .. group-tab:: Linux + + .. code-block:: none + + $ geth --exec='admin.addPeer("ENODE")' attach $HOME/.ethereum/bzzd.ipc + + .. group-tab:: macOS + + .. code-block:: none + + $ geth --exec='admin.addPeer("ENODE")' attach $HOME/Library/Ethereum/bzzd.ipc + + .. group-tab:: Windows + + .. code-block:: none + + $ geth --exec='admin.addPeer("ENODE")' attach %HOMEPATH%\AppData\Roaming\Ethereum\geth.ipc + +(You can also do this in the Geth Console, as seen in Section 3.2_.) + +.. note:: + + When you stop a node, all peer connections will be saved. When you start again, the node will try to reconnect to those peers automatically. + +Where ENODE is the enode record of a swarm node. Such a record looks like the following: + +.. code-block:: none + + enode://01f7728a1ba53fc263bcfbc2acacc07f08358657070e17536b2845d98d1741ec2af00718c79827dfdbecf5cfcd77965824421508cc9095f378eb2b2156eb79fa@1.2.3.4:30399 + +The enode of your swarm node can be accessed using ``geth`` connected to ``bzzd.ipc`` + +.. tabs:: + + .. group-tab:: Linux + + .. code-block:: none + + $ geth --exec "admin.nodeInfo.enode" attach $HOME/.ethereum/bzzd.ipc + + .. group-tab:: macOS + + .. code-block:: none + + $ geth --exec "admin.nodeInfo.enode" attach $HOME/Library/Ethereum/bzzd.ipc + + .. group-tab:: Windows + + .. code-block:: none + + $ geth --exec "admin.nodeInfo.enode" attach %HOMEPATH%\AppData\Roaming\Ethereum\geth.ipc + + +.. note:: + Note how ``geth`` is used for two different purposes here: You use it to run an Ethereum Mainnet node for ENS lookups. But you also use it to "attach" to the Swarm node to send commands to it. + +Connecting to the public Swarm cluster +-------------------------------------- + +If you would like to join the public Swarm cluster operated by the Ethereum Foundation and other contributors, you can use one of the bootnodes avaible from this list: + +https://gist.github.com/homotopycolimit/db446fa3269a199762e67b2ca037dbeb + +The cluster functions as a free-to-use public access gateway to Swarm, without the need to run a local node. To download data through the gateway use the ``https://swarm-gateways.net/bzz:/
/`` URL. + +Metrics reporting +------------------ + +Swarm uses the `go-metrics` library for metrics collection. You can set your node to collect metrics and push them to an influxdb database (called `metrics` by default) with the default settings. Tracing is also supported. An example of a default configuration is given below: + +.. code-block:: none + + $ swarm --bzzaccount \ + --debug \ + --metrics \ + --metrics.influxdb.export \ + --metrics.influxdb.endpoint "http://localhost:8086" \ + --metrics.influxdb.username "user" \ + --metrics.influxdb.password "pass" \ + --metrics.influxdb.database "metrics" \ + --metrics.influxdb.host.tag "localhost" \ + --verbosity 4 \ + --tracing \ + --tracing.endpoint=jaeger:6831 \ + --tracing.svc myswarm + diff --git a/docs/swarm-guide/build/html/_sources/index.rst.txt b/docs/swarm-guide/build/html/_sources/index.rst.txt new file mode 100644 index 0000000000..1d3c0ef348 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/index.rst.txt @@ -0,0 +1,45 @@ + + +Welcome to the Swarm documentation! +=================================== + +.. image:: img/swarm.png + :height: 300px + :width: 238px + :scale: 50 % + :alt: swarm-logo + :align: left + +Swarm is a distributed storage platform and content distribution network, a native base layer service of the Ethereum **web3** stack. + +This documentation was created with curious end-users, third web enterpreneurs and developers in mind. It should make you thoroughly educated about Swarm within a reasonable amount of time. + +| + +Table of contents: + +.. toctree:: + :numbered: + :maxdepth: 3 + + introduction + installation + gettingstarted + up-and-download + usage + pss + apireference + configuration + architecture + resources + + +This document is licensed under the @emph{Creative Commons Attribution License}. To +view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/swarm-guide/build/html/_sources/installation.rst.txt b/docs/swarm-guide/build/html/_sources/installation.rst.txt new file mode 100644 index 0000000000..73b82c3b25 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/installation.rst.txt @@ -0,0 +1,204 @@ +************************* +Installation and Updates +************************* + +Swarm is part of the Ethereum stack, the reference implementation is currently at POC3 (proof of concept 3), or version 0.3.x + + +Swarm runs on all major platforms (Linux, macOS, Windows, Raspberry Pi, Android, iOS). + +Swarm was written in golang and requires the go-ethereum client **geth** to run. + +.. note:: + The swarm package has not been extensively tested on platforms other than Linux and macOS. + +Installing Swarm on Ubuntu via PPA +================================== + +The simplest way to install Swarm on **Ubuntu distributions** is via the built in launchpad PPAs (Personal Package Archives). We provide a single PPA repository that contains our stable releases for Ubuntu versions trusty, xenial, bionic and cosmic. + +To enable our launchpad repository please run: + +.. code-block:: shell + + $ sudo apt-get install software-properties-common + $ sudo add-apt-repository -y ppa:ethereum/ethereum + +After that you can install the stable version of Swarm: + +.. code-block:: shell + + $ sudo apt-get update + $ sudo apt-get install ethereum-swarm + +Setting up Swarm in Docker +============================= + +You can run Swarm in a Docker container. The official Swarm Docker image including documentation on how to run it can be found on `Github `_ or pulled from `Docker `_. + +You can run it with optional arguments, e.g.: + +.. code-block:: shell + + $ docker run -e PASSWORD= -t ethdevops/swarm:latest --debug --verbosity 4 + +In order to up/download, you need to expose the HTTP api port (here: to localhost:8501) and set the HTTP address: + +.. code-block:: shell + + $ docker run -p 8501:8500/tcp -e PASSWORD= -t ethdevops/swarm:latest --httpaddr=0.0.0.0 --debug --verbosity 4 + +In this example, you can use ``swarm --bzzapi http://localhost:8501 up testfile.md`` to upload ``testfile.md`` to swarm using the Docker node, and you can get it back e.g. with ``curl http://localhost:8501/bzz:/``. + +Note that if you want to use a pprof HTTP server, you need to expose the ports and set the address (with ``--pprofaddr=0.0.0.0``) too. + +In order to attach a Geth Javascript console, you need to mount a data directory from a volume: + +.. code-block:: shell + + $ docker run -p 8501:8500/tcp -e PASSWORD= -e DATADIR=/data -v /tmp/hostdata:/data -t-t ethdevops/swarm:latest --httpaddr=0.0.0.0 --debug --verbosity 4 + +Then, you can attach the console with: + +.. code-block:: shell + + $ docker exec -it swarm1 /geth attach /data/bzzd.ipc + +You can also open a terminal session inside the container: + +.. code-block:: shell + + $ docker exec -it swarm1 /bin/sh + +Installing Swarm from source +============================= + +The Swarm source code for can be found on https://github.com/ethereum/go-ethereum + +Prerequisites: Go and Git +-------------------------- + +Building the Swarm daemon :command:``swarm`` requires the following packages: + +* go: https://golang.org +* git: http://git.org + + +Grab the relevant prerequisites and build from source. + +.. tabs:: + + .. tab:: Ubuntu / Debian + + .. code-block:: shell + + $ sudo apt install git + $ sudo apt install golang + + .. tab:: Archlinux + + .. code-block:: shell + + $ pacman -S git go + + .. tab:: Generic Linux + + The latest version of Go can be found at https://golang.org/dl/ + + To install it, download the tar.gz file for your architecture and unpack it to ``/usr/local`` + + .. tab:: macOS + + .. code-block:: shell + + $ brew install go git + + .. tab:: Windows + + Take a look `here `_ at installing go and git and preparing your go environment under Windows. + +Configuring the Go environment +------------------------------- + +You should then prepare your Go environment. + +.. tabs:: + + .. group-tab:: Linux + + .. code-block:: shell + + $ mkdir $HOME/go + $ echo 'export GOPATH=$HOME/go' >> ~/.bashrc + $ echo 'export PATH=$GOPATH/bin:$PATH' >> ~/.bashrc + $ source ~/.bashrc + + .. group-tab:: macOS + + .. code-block:: shell + + $ mkdir $HOME/go + $ echo 'export GOPATH=$HOME/go' >> $HOME/.bash_profile + $ echo 'export PATH=$GOPATH/bin:$PATH' >> $HOME/.bash_profle + $ source $HOME/.bash_profile + +Compiling and installing Swarm and Geth +---------------------------------------- + +Once all prerequisites are met, download and install packages and dependencies for go-ethereum. + +.. code-block:: shell + + $ mkdir -p $GOPATH/src/github.com/ethereum + $ cd $GOPATH/src/github.com/ethereum + $ git clone https://github.com/ethereum/go-ethereum + $ cd go-ethereum + $ go get github.com/ethereum/go-ethereum + $ cd $GOPATH/src/github.com/ethereum/go-ethereum + +This will download the master source code branch. + +Finally compile the swarm daemon ``swarm`` and the main go-ethereum client ``geth``. + +.. code-block:: none + + $ go install ./cmd/geth + $ go install ./cmd/swarm + +You can now run :command:``swarm`` to start your Swarm node. +Let's check if the installation of ``swarm`` was successful: + +.. code-block:: none + + swarm version + +If your ``PATH`` is not set and the ``swarm`` command cannot be found, try: + + .. code-block:: shell + + $ $GOPATH/bin/swarm version + +This should return some relevant information. For example: + +.. code-block:: shell + + Swarm + Version: 0.3 + Network Id: 0 + Go Version: go1.10.1 + OS: linux + GOPATH=/home/user/go + GOROOT=/usr/local/go + +Updating your client +--------------------- + +To update your client simply download the newest source code and recompile. + +.. code-block:: shell + + $ cd $GOPATH/src/github.com/ethereum/go-ethereum + $ git checkout master + $ git pull + $ go install ./cmd/geth + $ go install ./cmd/swarm diff --git a/docs/swarm-guide/build/html/_sources/introduction.rst.txt b/docs/swarm-guide/build/html/_sources/introduction.rst.txt new file mode 100644 index 0000000000..2e4e2afd08 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/introduction.rst.txt @@ -0,0 +1,187 @@ +******************* +Introduction +******************* + +This guide walks you through understanding, installing, and using Swarm. It also explains how to contribute or ask for help. Swarm is in active development and it is untested in the wild, so use it at your own risk. To interact with Swarm, you will need to use the command line. If you are not comfortable using it, it might be worth to familiarise yourself `here `_ first. + +What is Swarm? +============== + +.. * extension allows for per-format preference for image format + +.. image:: img/swarm.png + :height: 300px + :width: 238px + :scale: 50 % + :alt: swarm-logo + :align: left + + +Swarm is a distributed storage platform and content distribution service, a native base layer service of the ethereum :dfn:`web3` stack. The primary objective of Swarm is to provide a sufficiently decentralized and redundant store of Ethereum's public record, in particular to store and distribute dapp code and data as well as blockchain data. From an economic point of view, it allows participants to efficiently pool their storage and bandwidth resources in order to provide these services to all participants of the network, all while being incentivised by Ethereum. + +.. raw:: html + + + + + +Objective +========== + +Swarm's broader objective is to provide infrastructure services for developers of decentralised web applications (dapps), notably: messaging, data streaming, peer to peer accounting, mutable resource updates, storage insurance, proof of custody scan and repair, payment channels and database services. + +From the end user's perspective, Swarm is not that different from the world wide web, with the exception that uploads are not hosted on a specific server. Swarm offers a peer-to-peer storage and serving solution that is DDoS-resistant, has zero-downtime, fault-tolerant and censorship-resistant as well as self-sustaining due to a built-in incentive system which uses peer-to-peer accounting and allows trading resources for payment. Swarm is designed to deeply integrate with the devp2p multiprotocol network layer of Ethereum as well as with the Ethereum blockchain for domain name resolution (using ENS), service payments and content availability insurance. + +Please refer to our `development roadmap `_ to stay informed with our progress. + +Overview +======================== + +Swarm is set out to provide base layer infrastructure for a new decentralised internet. +Swarm is a peer-to-peer network of nodes providing distributed digital services by contributing resources (storage, message forwarding, payment processing) to each other. These contributions are accurately accounted for on a peer to peer basis, allowing nodes to trade resource for resource, but offering monetary compensation to nodes consuming less than they serve. + +.. image:: img/swarm-intro.svg + :alt: Swarm storage and message routing + :width: 500 + +The Ethereum Foundation operates a Swarm testnet that can be used to test out functionality in a similar manner to the Ethereum testnet (ropsten). +Everyone can join the network by running the Swarm client node on their server, desktop, laptop or mobile device. See :ref:`Getting Started` for how to do this. +The Swarm client is part of the Ethereum stack, the reference implementation is written in golang and found under the go-ethereum repository. Currently at POC (proof of concept) version 0.3 is running on all nodes. + +Uploaded content is **not guaranteed to persist on the testnet** until storage insurance is implemented (see `Roadmap `_ for more details). All participating nodes should consider participation a voluntary service with no formal obligation whatsoever and should be expected to delete content at their will. Therefore, users should **under no circumstances regard Swarm as safe storage** until the incentive system is functional. + +Swarm offers a **local HTTP proxy** API that dapps or command line tools can use to interact with Swarm. Some modules like `messaging `_ are only available through RPC-JSON API. The foundation servers on the testnet are offering public gateways, which serve to easily demonstrate functionality and allow free access so that people can try Swarm without even running their own node. + +Swarm is a collection of nodes of the devp2p network each of which run the BZZ URL schemes on the same network id. + +Swarm nodes can also connect with one (or several) Ethereum blockchains for domain name resolution and one ethereum blockchain for bandwidth and storage compensation. +Nodes running the same network id are supposed to connect to the same blockchain for payments. A Swarm network is identified by its network id which is an arbitrary integer. + +Swarm allows for :dfn:`upload and disappear` which means that any node can just upload content to the Swarm and then is allowed to go offline. As long as nodes do not drop out or become unavailable, the content will still be accessible due to the 'synchronization' procedure in which nodes continuously pass along available data between each other. + +Swarm supports encryption. Upload of unencrypted sensitive and private data is highly discouraged as **there is no way to undo an upload**. Users should refrain from uploading illegal, controversial or unethical content. + +Always use encryption for sensitive content. For encrypted content, uploaded data is 'protected', i.e. only those that know the reference to the root chunk (the Swarm hash of the file) as well as the decryption key can access the content. Since publishing this reference (on ENS or with Feeds) requires an extra step, users are mildly protected against careless publishing as long as they use encryption. Even though there is no guarantees for removal, unaccessed content that is not explicitly insured will eventually disappear from the Swarm, as nodes will be incentivised to garbage collect it in case of storage capacity limits. + +Swarm is a `Persistent Data Structure `_, therefore there is no notion of delete/remove action in Swarm. This is because content is disseminated to Swarm nodes who are incentivised to serve it. + +.. important:: It is not possible to **delete or remove** content uploaded to Swarm. **Always encrypt** sensitive content using the integrated Swarm encryption. + +Available APIs +================ + +Swarm offers several APIs: + * CLI + * JSON-RPC - using web3 bindings over Geth's IPC + * HTTP interface - every Swarm node exposes a local HTTP proxy that implements the :ref:`BZZ URL schemes` + * Javascript - available through the `erebos `_, `swarm-js `_ or `swarmgw `_ packages + + +Code +======== + +Source code is located at https://github.com/ethereum/go-ethereum/. + +Roadmap +======= + +Roadmap is located at https://github.com/ethersphere/Swarm/wiki/roadmap + +.. important:: Swarm is experimental code and untested in the wild. Use with extreme care. We encourage developers to connect to the testnet with their permanent nodes and give us feedback. + +Public gateways +=============== + +Swarm offers a local HTTP proxy API that Dapps can use to interact with Swarm. The Ethereum Foundation is hosting a public gateway, which allows free access so that people can try Swarm without running their own node. + +The Swarm public gateway can be found at https://swarm-gateways.net and is always running the latest `stable` Swarm release. + +.. important:: Swarm public gateways are temporary and users should not rely on their existence for production services. + +Example Dapps +============= + +* https://swarm-gateways.net/bzz://swarmapps.eth +* source code: https://github.com/ethersphere/Swarm-dapps + +Reporting a bug and contributing +================================ + +Issues are tracked on github and github only. Swarm related issues and PRs have labels prefixed with *swarm*: + +* https://github.com/ethersphere/go-ethereum/issues +* `Good first issues `_ + +Please include the commit and branch when reporting an issue. + +Pull requests should by default commit on the `master` branch. + +Prospective contributors please read the `Developers' Guide ` + +Credits +=============== + +Swarm is funded by the Ethereum Foundation and industry sponsors. + +The Core team +---------------- + +* Viktor Trón - @zelig +* Daniel A. Nagy - @nagydani +* Aron Fischer - @homotopycolimit +* Louis Holbrook - @nolash +* Lewis Marshal - @lmars +* Fabio Barone - @holisticode +* Anton Evangelatov - @nonsense +* Janoš Guljaš - @janos +* Balint Gabor - @gbalint +* Elad Nachmias - @justelad + +were on the core team: + +* Zahoor Mohamed - @jmozah +* Zsolt Felföldi - @zsfelfoldi +* Nick Johnson - @Arachnid + +Sponsors and collaborators +----------------------------- + +* http://status.im +* http://livepeer.org +* http://jaak.io +* http://datafund.io +* http://mainframe.com +* http://wolk.com +* http://riat.at +* http://datafund.org +* http://216.com +* http://cofound.it +* http://iconomi.net +* http://infura.io +* http://epiclabs.io +* http://asseth.fr + + +Special thanks +------------------ + +* Felix Lange, Alex Leverington for inventing and implementing devp2p/rlpx +* Jeffrey Wilcke, Peter Szilagyi and the entire ethereum foundation go team for continued support, testing and direction +* Gavin Wood and Vitalik Buterin for the holy trinity vision of web3 +* Nick Johnson for ENS and ENS Swarm integration +* Alex Van der Sande, Fabian Vogelsteller, Bas van Kervel, Victor Maia, Everton Fraga and the Mist team +* Elad Verbin for his continued technical involvement as an advisor and ideator +* Nick Savers for his unrelenting support and meticulous reviews of our papers +* Gregor Zavcer, Alexei Akhunov, Alex Beregszaszi, Daniel Varga, Julien Boutloup for inspiring discussions and ideas +* Juan Benet and the IPFS team for continued inspiration +* Carl Youngblood, Shane Howley, Paul Le Cam, Doug Leonard and the mainframe team for their contribution to PSS and Feeds +* Sourabh Niyogi and the entire Wolk team for the inspiring collaboration on databases +* Ralph Pilcher for implementing the swap swear and swindle contract suite in solidity/truffle and Oren Sokolowsky for the initial version +* Javier Peletier from Epiclabs (ethergit) for his contribution to Feeds +* Jarrad Hope and Carl Bennet (Status) for their support +* Participants of the orange lounge research group and the Swarm orange summits +* Roman Mandeleil and Anton Nashatyrev for an early java implementation of swarm +* Igor Sharudin, Dean Vaessen for example dapps +* Community contributors for feedback and testing +* Daniel Kalman, Benjamin Kampmann, Daniel Lengyel, Anand Jaisingh for contributing to the swarm websites +* Felipe Santana, Paolo Perez and Paratii team for filming at the 2017 swarm summit and making the summit website diff --git a/docs/swarm-guide/build/html/_sources/pss.rst.txt b/docs/swarm-guide/build/html/_sources/pss.rst.txt new file mode 100644 index 0000000000..92333ce3e5 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/pss.rst.txt @@ -0,0 +1,120 @@ +******************************* +PSS +******************************* + +:dfn:`pss` (Postal Service over Swarm) is a messaging protocol over Swarm with strong privacy features. +The pss API is exposed through a JSON RPC interface described in the `API Reference <./apireference.rst#PSS>`_, +here we explain the basic concepts and features. + + +.. note:: + + ``pss`` is still an experimental feature and under active development and is available as of POC3 of Swarm. Expect things to change. + +.. note:: + + There is no CLI support for ``pss``. + + +Basics +============= + +With ``pss`` you can send messages to any node in the Swarm network. The messages are routed in the same manner as retrieve requests for chunks. Instead of chunk hash reference, ``pss`` messages specify a destination in the overlay address space independently of the message payload. This destination can describe a *specific node* if it is a complete overlay address or a *neighbourhood* if it is partially specified one. Up to the destination, the message is relayed through devp2p peer connections using :dfn:`forwarding kademlia` (passing messages via semi-permanent peer-to-peer TCP connections between relaying nodes using kademlia routing). Within the destination neighbourhood the message is broadcast using gossip. + +Since ``pss`` messages are encrypted, ultimately *the recipient is whoever can decrypt the message*. Encryption can be done using asymmetric or symmetric encryption methods. + +The message payload is dispatched to *message handlers* by the recipient nodes and dispatched to subscribers via the API. + +.. important:: + ``pss`` does not guarantee message ordering (`Best-effort delivery `_) + nor message delivery (e.g. messages to offline nodes will not be cached and replayed) at the moment. + +Privacy features +------------------ + +Thanks to end-to-end encryption, pss caters for private communication. + +Due to forwarding kademlia, ``pss`` offers sender anonymity. + +Using partial addressing, ``pss`` offers a sliding scale of recipient anonymity: the larger the destination neighbourhood (the smaller prefix you reveal of the intended recipient overlay address), the more difficult it is to identify the real recipient. On the other hand, since dark routing is inefficient, there is a trade-off between anonymity on the one hand and message delivery latency and bandwidth (and therefore cost) on the other. This choice is left to the application. + +Forward secrecy is provided if you use the `Handshakes` module. + +Usage +=========================== + +See the `API Reference <./apireference.rst#PSS>`_ for details. + +Registering a recipient +-------------------------- + +Intended recipients first need to be registered with the node. This registration includes the following data: + +1. ``Encryption key`` - can be a ECDSA public key for asymmetric encryption or a 32 byte symmetric key. + +2. ``Topic`` - an arbitrary 4 byte word. + +3. ``Address``- destination (fully or partially specified Swarm overlay address) to use for deterministic routing. + + The registration returns a key id which is used to refer to the stored key in subsequent operations. + +After you associate an encryption key with an address they will be checked against any message that comes through (when sending or receiving) given it matches the topic and the destination of the message. + +Sending a message +------------------ + +There are a few prerequisites for sending a message over ``pss``: + +1. ``Encryption key id`` - id of the stored recipient's encryption key. + +2. ``Topic`` - an arbitrary 4 byte word (with the exception of ``0x0000`` to be reserved for ``raw`` messages). + +3. ``Message payload`` - the message data as an arbitrary byte sequence. + +.. note:: + The Address that is coupled with the encryption key is used for routing the message. + This does *not* need to be a full address; the network will route the message to the best + of its ability with the information that is available. + If *no* address is given (zero-length byte slice), routing is effectively deactivated, + and the message is passed to all peers by all peers. + +Upon sending the message it is encrypted and passed on from peer to peer. Any node along the route that can successfully decrypt the message is regarded as a recipient. If the destination is a neighbourhood, the message is passed around so ultimately it reaches the intended recipient which also forwards the message to their peers, recipients will continue to pass on the message to their peers, to make it harder for anyone spying on the traffic to tell where the message "ended up." + +After you associate an encryption key with a destination they will be checked against any message that comes through (when sending or receiving) given it matches the topic and the address in the message. + +.. important:: + When using the internal encryption methods, you MUST associate keys (whether symmetric or asymmetric) with an address space AND a topic before you will be able to send anything. + +Sending a raw message +---------------------- + +It is also possible to send a message without using the builtin encryption. In this case no recipient registration is made, but the message is sent directly, with the following input data: + +1. ``Message payload`` - the message data as an arbitrary byte sequence. + +2. ``Address``- the Swarm overlay address to use for the routing. + +Receiving messages +-------------------- + +You can subscribe to incoming messages using a topic. Since subscription needs push notifications, the supported RPC transport interfaces are websockets and IPC. + +.. important:: + ``pss`` does not guarantee message ordering (`Best-effort delivery `_) + nor message delivery (e.g. messages to offline nodes will not be cached and replayed) at the moment. + +Advanced features +================== + +.. note:: This functionalities are optional features in pss. They are compiled in by default, but can be omitted by providing the appropriate build tags. + +Handshakes +----------- + +``pss`` provides a convenience implementation of Diffie-Hellman handshakes using ephemeral symmetric keys. Peers keep separate sets of keys for a limited amount of incoming and outgoing communications, and create and exchange new keys when the keys expire. + + +Protocols +----------- + +A framework is also in place for making ``devp2p`` protocols available using ``pss`` connections. This feature is only available using the internal golang API, read more in the GoDocs or the codes. diff --git a/docs/swarm-guide/build/html/_sources/resources.rst.txt b/docs/swarm-guide/build/html/_sources/resources.rst.txt new file mode 100644 index 0000000000..5587dd1523 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/resources.rst.txt @@ -0,0 +1,297 @@ +******************* +Resources +******************* + +Homepage +-------- + +the *Swarm homepage* is accessible via Swarm at `theswarm.eth`. The page can be accessed through the public gateway on https://swarm.ethereum.org or https://swarm-gateways.net/bzz:/theswarm.eth/ + +Blogposts +--------------- + +* `Announcement of POC3 `_ +* `POC2 public alpha announcement `_ + +Swarm Orange Summit +---------------------- + +* `Swarm summit 2018 promo video `_ +* `2018 May 7-11 Ljubljana `_ +* 2017 June 4-10 Berlin + + +Orange papers +-------------- + +* Viktor Trón, Aron Fischer, Dániel Nagy A and Zsolt Felföldi, Nick Johnson: swap, swear and swindle: incentive system for Swarm. May 2016 - https://swarm-gateways.net/bzz:/theswarm.eth/ethersphere/orange-papers/1/sw^3.pdf +* Viktor Trón, Aron Fischer, Nick Johnson: smash-proof: auditable storage for Swarm secured by masked audit secret hash. May 2016 - https://swarm-gateways.net/bzz:/theswarm.eth/ethersphere/orange-papers/2/smash.pdf +* Viktor Trón, Aron Fischer, Ralph Pilcher, Fabio Barone: swap swear and swindle games: scalable infrastructure for decentralised service economies. Work in progress. June 2018. - https://www.sharelatex.com/read/yszmsdqyqbvc, `pfd on swarm `_. +* Viktor Trón, Aron Fischer, Daniel A. Nagy. Swarm: a decentralised peer-to-peer network for messaging and storage. Work in progress. June, 2018. - https://www.sharelatex.com/read/gxhwssqzgfpr; `pdf on swarm `_. +* P.O.T. data structures and databases on swarm. In preparation. +* Mutable Resource Updates. An off-chain scheme for versioning content in Swarm. In preparation. +* Privacy on swarm. Encryption, access control, private browsing in Swarm. Tentative. +* Analysis of attack resilience of swarm storage. Tentative. + +Podcasts +------------- +https://oktahedron.diskordia.org/?podcast=oh003-Swarm + +Videos +-------------- + +Aron Fischer, Louis Holbrook, Daniel A. Nagy: Swarm Development Update - Devcon3 Cancun, November 2017 + + +.. raw:: html + + + +++++++++++++ + + +Viktor Trón and Aron Fischer - Swap, Swear and Swindle Games - Devcon3 Cancun, November 2017 + +.. raw:: html + + + +++++++++++++ + + +sw3 London + +.. raw:: html + + + +++++++++++++ + + +Louis Holbrook: Resource Updates - EthCC, Paris, March 2018 + +.. raw:: html + + + +++++++++++++ + + +Daniel A Nagy: Encryption in Swarm - EthCC, Paris, March 2018 + +.. raw:: html + + + +++++++++++++ + +Viktor Tron +`Base layer infrastructure services for web3 `_ - EthCC, Paris, March 2018 + +++++++++++++ + + +Louis Holbrook (Ethersphere, Jaak) PSS - Node to node Communication Over Swarm - Devcon3 Cancun, November 2017 + +.. raw:: html + + + +++++++++++++ + +Daniel A Nagy - Scalable Responsive Đapps with Swarm and ENS - Devcon3 Cancun, November 2017 + +.. raw:: html + + + +++++++++++++ + +Aron Fischer - Data retrieval in Swarm - Swarm Orange Summit, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +Zahoor Mohamed (EF, Swarm team): Swarm Fuse Demo - Ethereum Meetup, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +Daniel Nagy: Network topology for distributed storage - Swarm Orange Summit, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +Fabian Vogelsteller - Swarm Integration in Mist - Swarm Orange Summit, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +Daniel Nagy (EF, Swarm team): Plausible Deniability (2 parts) - Swarm Orange Summit, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +.. raw:: html + + + +++++++++++++ + +Elad Verbin: Data structures and security on Swarm (2 parts) - Swarm orange summit, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +.. raw:: html + + + +++++++++++++ + +Louis Holbrook (Ethersphere, Jaak): PSS - internode messaging protocol - Swarm Orange Summit, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +Viktor Tron - Distributed Database Services - Swarm Orange Summit 2017 + +.. raw:: html + + + +++++++++++++ + +Viktor Tron - network testing framework and visualisation - Ethereum Meetup, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +Doug Petkanics (Livepeer): Realtime video streaming on Swarm - Swarm Orange Summit, Berlin, June 2017 + +.. raw:: html + + + +++++++++++++ + +.. raw:: html + + + + +++++++++++++ + +Nick Johnson on the Ethereum Name System + +.. raw:: html + + + + + +++++++++++++ + +Viktor Trón, Aron Fischer: Swap, Swear and Swindle. Swarm Incentivisation. + +.. raw:: html + + + + + +++++++++++++ + +Viktor Trón: Towards Web3 Infrastructure. + +.. raw:: html + + + + +++++++++++++ + +Dániel A. Nagy: Developing Scalable Decentralized Applications for Swarm and Ethereum + +.. raw:: html + + + + +++++++++++++ + +Aron Fischer, Dániel A. Nagy, Viktor Trón: Swarm - Ethereum. + +.. raw:: html + + + + + +++++++++++++ + +Viktor Trón, Nick Johnson: Swarm, web3, and the Ethereum Name Service. + +.. raw:: html + + + + +++++++++++++ + +Nagy Dániel, Trón Viktor: Ethereum és Swarm: okos szerződések és elosztott világháló. + +.. raw:: html + + + + +++++++++++++ + +Dániel Nagy: Swarm: Distributed storage for Ethereum, the Turing-complete blockchain. + +.. raw:: html + + + + +++++++++++++ + +Viktor Trón, Dániel A. Nagy: Swarm. Ethereum Devcon1, London, November 2015. + +.. raw:: html + + + + +++++++++++++ + +Dániel A. Nagy: Keeping the public record safe and accessible. Ethereum Devcon0, Berlin, December 2014. + +.. raw:: html + + diff --git a/docs/swarm-guide/build/html/_sources/up-and-download.rst.txt b/docs/swarm-guide/build/html/_sources/up-and-download.rst.txt new file mode 100644 index 0000000000..3b51105c3b --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/up-and-download.rst.txt @@ -0,0 +1,498 @@ +.. _updownload: + +*************************** +Uploading and downloading +*************************** + +.. contents:: + +Introduction +================================== +.. note:: This guide assumes you've installed the Swarm client and have a running node that listens by default on port 8500. See `Getting Started <./gettingstarted.html>`_ for details. + +Arguably, uploading and downloading content is the raison d'être of Swarm. Uploading content consists of "uploading" content to your local Swarm node, followed by your local Swarm node "syncing" the resulting chunks of data with its peers in the network. Meanwhile, downloading content consists of your local Swarm node querying its peers in the network for the relevant chunks of data and then reassembling the content locally. + +Uploading and downloading data can be done through the ``swarm`` command line interface (CLI) on the terminal or via the HTTP interface on `http://localhost:8500 `_. + +Using HTTP +====================== + +Swarm offers an HTTP API. Thus, a simple way to upload and download files to/from Swarm is through this API. +We can use the ``curl`` `tool `_ to exemplify how to interact with this API. + +.. note:: Files can be uploaded in a single HTTP request, where the body is either a single file to store, a tar stream (application/x-tar) or a multipart form (multipart/form-data). + +To upload a single file to your node, run this: + +.. code-block:: none + + $ curl -H "Content-Type: text/plain" --data "some-data" http://localhost:8500/bzz:/ + +Once the file is uploaded, you will receive a hex string which will look similar to this: + +.. code-block:: none + + 027e57bcbae76c4b6a1c5ce589be41232498f1af86e1b1a2fc2bdffd740e9b39 + +This is the Swarm hash of the address string of your content inside Swarm. It is the same hash that would have been returned by using the :ref:``swarm up `` command. + +To download a file from Swarm, you just need the file's Swarm hash. Once you have it, the process is simple. Run: + +.. code-block:: none + + $ curl http://localhost:8500/bzz:/027e57bcbae76c4b6a1c5ce589be41232498f1af86e1b1a2fc2bdffd740e9b39/ + +The result should be your file: + +.. code-block:: none + + some-data + +And that's it. + +.. note:: If you omit the trailing slash from the url then the request will result in a HTTP redirect. The semantically correct way to access the root path of a Swarm manifest is using the trailing slash. + +Tar stream upload +------------------ + +Tar is a traditional unix/linux file format for packing a directory structure into a single file. Swarm provides a convenient way of using this format to make it possible to perform recursive uploads using the HTTP API. + +.. code-block:: none + + # create two directories with a file in each + $ mkdir dir1 dir2 + $ echo "some-data" > dir1/file.txt + $ echo "some-data" > dir2/file.txt + + # create a tar archive containing the two directories (this will tar everything in the working directory) + tar cf files.tar . + + # upload the tar archive to Swarm to create a manifest + $ curl -H "Content-Type: application/x-tar" --data-binary @files.tar http://localhost:8500/bzz:/ + > 1e0e21894d731271e50ea2cecf60801fdc8d0b23ae33b9e808e5789346e3355e + +You can then download the files using: + +.. code-block:: none + + $ curl http://localhost:8500/bzz:/1e0e21894d731271e50ea2cecf60801fdc8d0b23ae33b9e808e5789346e3355e/dir1/file.txt + > some-data + + $ curl http://localhost:8500/bzz:/1e0e21894d731271e50ea2cecf60801fdc8d0b23ae33b9e808e5789346e3355e/dir2/file.txt + > some-data + +GET requests work the same as before with the added ability to download multiple files by setting `Accept: application/x-tar`: + +.. code-block:: none + + $ curl -s -H "Accept: application/x-tar" http://localhost:8500/bzz:/ccef599d1a13bed9989e424011aed2c023fce25917864cd7de38a761567410b8/ | tar t + > dir1/file.txt + dir2/file.txt + + +Multipart form upload +--------------------- + +.. code-block:: none + + $ curl -F 'dir1/file.txt=some-data;type=text/plain' -F 'dir2/file.txt=some-data;type=text/plain' http://localhost:8500/bzz:/ + > 9557bc9bb38d60368f5f07aae289337fcc23b4a03b12bb40a0e3e0689f76c177 + + $ curl http://localhost:8500/bzz:/9557bc9bb38d60368f5f07aae289337fcc23b4a03b12bb40a0e3e0689f76c177/dir1/file.txt + > some-data + + $ curl http://localhost:8500/bzz:/9557bc9bb38d60368f5f07aae289337fcc23b4a03b12bb40a0e3e0689f76c177/dir2/file.txt + > some-data + + +Add files to an existing manifest using multipart form +------------------------------------------------------ + +.. code-block:: none + + $ curl -F 'dir3/file.txt=some-other-data;type=text/plain' http://localhost:8500/bzz:/9557bc9bb38d60368f5f07aae289337fcc23b4a03b12bb40a0e3e0689f76c177 + > ccef599d1a13bed9989e424011aed2c023fce25917864cd7de38a761567410b8 + + $ curl http://localhost:8500/bzz:/ccef599d1a13bed9989e424011aed2c023fce25917864cd7de38a761567410b8/dir1/file.txt + > some-data + + $ curl http://localhost:8500/bzz:/ccef599d1a13bed9989e424011aed2c023fce25917864cd7de38a761567410b8/dir3/file.txt + > some-other-data + + +Upload files using a simple HTML form +------------------------------------- + +.. code-block:: html + +
+ + + +
+ + +Listing files +------------- + +.. note:: The ``jq`` command mentioned below is a separate application that can be used to pretty-print the json data retrieved from the ``curl`` request + +A `GET` request with ``bzz-list`` URL scheme returns a list of files contained under the path, grouped into common prefixes which represent directories: + +.. code-block:: none + + $ curl -s http://localhost:8500/bzz-list:/ccef599d1a13bed9989e424011aed2c023fce25917864cd7de38a761567410b8/ | jq . + > { + "common_prefixes": [ + "dir1/", + "dir2/", + "dir3/" + ] + } + +.. code-block:: none + + $ curl -s http://localhost:8500/bzz-list:/ccef599d1a13bed9989e424011aed2c023fce25917864cd7de38a761567410b8/dir1/ | jq . + > { + "entries": [ + { + "path": "dir1/file.txt", + "contentType": "text/plain", + "size": 9, + "mod_time": "2017-03-12T15:19:55.112597383Z", + "hash": "94f78a45c7897957809544aa6d68aa7ad35df695713895953b885aca274bd955" + } + ] + } + +Setting ``Accept: text/html`` returns the list as a browsable HTML document. + + +Using CLI +===================== + +.. _swarmup: + +Uploading a file to your local Swarm node +------------------------------------------ + +.. note:: Once a file is uploaded to your local Swarm node, your node will `sync` the chunks of data with other nodes on the network. Thus, the file will eventually be available on the network even when your original node goes offline. + +The basic command for uploading to your local node is ``swarm up FILE``. For example, let's create a file called example.md and issue the following command to upload the file example.md file to your local Swarm node. + +.. code-block:: none + + $ echo "this is an example" > example.md + $ swarm up example.md + > d1f25a870a7bb7e5d526a7623338e4e9b8399e76df8b634020d11d969594f24a + +The hash returned is the hash of a :ref:`swarm manifest `. This manifest is a JSON file that contains the ``example.md`` file as its only entry. Both the primary content and the manifest are uploaded by default. + +After uploading, you can access this example.md file from Swarm by pointing your browser to: + +.. code-block:: none + + $ http://localhost:8500/bzz:/d1f25a870a7bb7e5d526a7623338e4e9b8399e76df8b634020d11d969594f24a/ + +The manifest makes sure you could retrieve the file with the correct MIME type. + +You can encrypt your file using the ``--encrypt`` flag. See the :ref:`Encryption` section for details. + + +Suppressing automatic manifest creation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +You may wish to prevent a manifest from being created alongside with your content and only upload the raw content. You might want to include it in a custom index, or handle it as a data-blob known and used only by a certain application that knows its MIME type. For this you can set ``--manifest=false``: + +.. code-block:: none + + $ swarm --manifest=false up FILE + > 7149075b7f485411e5cc7bb2d9b7c86b3f9f80fb16a3ba84f5dc6654ac3f8ceb + +This option suppresses automatic manifest upload. It uploads the content as-is. +However, if you wish to retrieve this file, the browser can not be told unambiguously what that file represents. +In the context, the hash ``7149075b7f485411e5cc7bb2d9b7c86b3f9f80fb16a3ba84f5dc6654ac3f8ceb`` does not refer to a manifest. Therefore, any attempt to retrieve it using the ``bzz:/`` scheme will result in a ``404 Not Found`` error. In order to access this file, you would have to use the :ref:`bzz-raw` scheme. + + +Downloading a single file +---------------------------- + +To download single files, use the ``swarm down`` command. +Single files can be downloaded in the following different manners. The following examples assume ```` resolves into a single-file manifest: + +.. code-block:: none + + $ swarm down bzz:/ #downloads the file at to the current working directory + $ swarm down bzz:/ file.tmp #downloads the file at as ``file.tmp`` in the current working dir + $ swarm down bzz:/ dir1/ #downloads the file at to ``dir1/`` + +You can also specify a custom proxy with `--bzzapi`: + +.. code-block:: none + + $ swarm --bzzapi http://localhost:8500 down bzz:/ #downloads the file at to the current working directory using the localhost node + + +Downloading a single file from a multi-entry manifest can be done with (```` resolves into a multi-entry manifest): + +.. code-block:: none + + $ swarm down bzz://index.html #downloads index.html to the current working directory + $ swarm down bzz://index.html file.tmp #downloads index.html as file.tmp in the current working directory + $ swarm down bzz://index.html dir1/ #downloads index.html to dir1/ + +..If you try to download from a multi-entry manifest without specifying the file, you will get a `got too many matches for this path` error. You will need to specify a `--recursive` flag (see below). + +Uploading to a remote Swarm node +----------------------------------- +You can upload to a remote Swarm node using the ``--bzzapi`` flag. +For example, you can use one of the public gateways as a proxy, in which case you can upload to Swarm without even running a node. + + +.. code-block:: none + + $ swarm --bzzapi https://swarm-gateways.net up example.md + +.. note:: This gateway currently only accepts uploads of limited size. In future, the ability to upload to this gateways is likely to disappear entirely. + + +Uploading a directory +----------------------- + +Uploading directories is achieved with the ``--recursive`` flag. + +.. code-block:: none + + $ swarm --recursive up /path/to/directory + > ab90f84c912915c2a300a94ec5bef6fc0747d1fbaf86d769b3eed1c836733a30 + +The returned hash refers to a root manifest referencing all the files in the directory. + +Directory with default entry +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +It is possible to declare a default entry in a manifest. In the example above, if ``index.html`` is declared as the default, then a request for a resource with an empty path will show the contents of the file ``/index.html`` + +.. code-block:: none + + $ swarm --defaultpath /path/to/directory/index.html --recursive up /path/to/directory + > ef6fc0747d1fbaf86d769b3eed1c836733a30ab90f84c912915c2a300a94ec5b + +You can now access index.html at + +.. code-block:: none + + $ http://localhost:8500/bzz:/ef6fc0747d1fbaf86d769b3eed1c836733a30ab90f84c912915c2a300a94ec5b/ + +and also at + +.. code-block:: none + + $ http://localhost:8500/bzz:/ef6fc0747d1fbaf86d769b3eed1c836733a30ab90f84c912915c2a300a94ec5b/index.html + +This is especially useful when the hash (in this case ``ef6fc0747d1fbaf86d769b3eed1c836733a30ab90f84c912915c2a300a94ec5b``) is given a registered name like ``mysite.eth`` in the `Ethereum Name Service <./ens.html>`_. In this case the lookup would be even simpler: + +.. code-block:: none + + http://localhost:8500/bzz:/mysite.eth/ + +.. note:: You can toggle automatic default entry detection with the ``SWARM_AUTO_DEFAULTPATH`` environment variable. You can do so by a simple ``$ export SWARM_AUTO_DEFAULTPATH=true``. This will tell Swarm to automatically look for ``/index.html`` file and set it as the default manifest entry (in the case it exists). + +Downloading a directory +-------------------------- + +To download a directory, use the ``swarm down --recursive`` command. +Directories can be downloaded in the following different manners. The following examples assume resolves into a multi-entry manifest: + +.. code-block:: none + + $ swarm down --recursive bzz:/ #downloads the directory at to the current working directory + $ swarm down --recursive bzz:/ dir1/ #downloads the file at to dir1/ + +Similarly as with a single file, you can also specify a custom proxy with ``--bzzapi``: + +.. code-block:: none + + $ swarm --bzzapi http://localhost:8500 down --recursive bzz:/ #note the flag ordering + +.. important :: Watch out for the order of arguments in directory upload/download: it's ``swarm --recursive up`` and ``swarm down --recursive``. + +Adding entries to a manifest +------------------------------- +The command for modifying manifests is ``swarm manifest``. + +To add an entry to a manifest, use the command: + +.. code-block:: none + + $ swarm manifest add [content-type] + +To remove an entry from a manifest, use the command: + +.. code-block:: none + + $ swarm manifest remove + +To modify the hash of an entry in a manifest, use the command: + +.. code-block:: none + + $ swarm manifest update + +Reference table +----------------- + ++------------------------------------------+------------------------------------------------------------------------+ +| **upload** | ``swarm up `` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ dir | ``swarm --recursive up
`` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ dir w/ default entry (here: index.html)| ``swarm --defaultpath /index.html --recursive up `` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ w/o manifest | ``swarm --manifest=false up`` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ to remote node | ``swarm --bzzapi https://swarm-gateways.net up`` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ with encryption | ``swarm up --encrypt`` | ++------------------------------------------+------------------------------------------------------------------------+ +| **download** | ``swarm down bzz:/`` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ dir | ``swarm down --recursive bzz:/`` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ as file | ``swarm down bzz:/ file.tmp`` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ into dir | ``swarm down bzz:/ dir/`` | ++------------------------------------------+------------------------------------------------------------------------+ +| ~ w/ custom proxy | ``swarm down --bzzapi http:// down bzz:/`` | ++------------------------------------------+------------------------------------------------------------------------+ +| **manifest** | | ++------------------------------------------+------------------------------------------------------------------------+ +| add ~ | ``swarm manifest add [content-type]`` | ++------------------------------------------+------------------------------------------------------------------------+ +| remove ~ | ``swarm manifest remove `` | ++------------------------------------------+------------------------------------------------------------------------+ +| update ~ | ``swarm manifest update `` | ++------------------------------------------+------------------------------------------------------------------------+ + +Up- and downloading in the CLI: example usage +---------------------------------- + +.. tabs:: + + .. group-tab:: Up/downloading + + Let's create a dummy file and upload it to Swarm: + + .. code-block:: none + + $ echo "this is a test" > myfile.md + $ swarm up myfile.md + > + + We can download it using the ``bzz:/`` scheme and give it a name. + + .. code-block:: none + + $ swarm down bzz:/ iwantmyfileback.md + $ cat iwantmyfileback.md + > this is a test + + We can also ``curl`` it using the HTTP API. + + .. code-block:: none + + $ curl http://localhost:8500/bzz:// + > this is a test + + We can use the ``bzz-raw`` scheme to see the manifest of the upload. + + .. code-block:: none + + $ curl http://localhost:8500/bzz-raw:// + + This returns the manifest: + + .. code-block:: none + + { + "entries": [ + { + "hash": "", + "path": "myfile.md", + "contentType": "text/markdown; charset=utf-8", + "mode": 420, + "size": 15, + "mod_time": "" + } + ] + } + + .. group-tab:: Up/down as is + + We can upload the file as-is: + + .. code-block:: none + + $ echo "this is a test" > myfile.md + $ swarm --manifest=false up myfile.md + > + + We can retrieve it using the ``bzz-raw`` scheme in the HTTP API. + + .. code-block:: none + + $ curl http://localhost:8500/bzz-raw:// + > this is a test + + .. group-tab:: Manipulate manifests + + Let's create a directory with a dummy file, and upload the directory to swarm. + + .. code-block:: none + + $ mkdir dir + $ echo "this is a test" > dir/dummyfile.md + $ swarm --recursive up dir + > + + We can look at the manifest using ``bzz-raw`` and the HTTP API. + + .. code-block:: none + + $ curl http://localhost:8500/bzz-raw:// + + It will look something like this: + + .. code-block:: none + + { + "entries": [ + { + "hash": "", + "path": "dummyfile.md", + "contentType": "text/markdown; charset=utf-8", + "mode": 420, + "size": 15, + "mod_time": "2018-11-11T16:52:07+01:00" + } + ] + } + + We can remove the file from the manifest using ``manifest remove``. + + .. code-block:: none + + $ swarm manifest remove "dummyfile.md" + > + + When we check the new dir hash, we notice that it's empty -- as it should be. + + Let's put the file back in there. + + .. code-block:: none + + $ swarm up dir/dummyfile.md + > + $ swarm manifest add "dummyfileagain.md" + > + + We can check the manifest under to see that the file is back there. \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_sources/usage.rst.txt b/docs/swarm-guide/build/html/_sources/usage.rst.txt new file mode 100644 index 0000000000..074ac4bbbf --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/usage.rst.txt @@ -0,0 +1,16 @@ +*************************** +Working with content +*************************** + +In this chapter, we demonstrate features of Swarm related to storage and retrieval. First we discuss how to solve mutability of resources in a content addressed system using the Ethereum Name Service on the blockchain, then using Feeds in Swarm. +Then we briefly discuss how to protect your data by restricting access using encryption. +We also discuss in detail how files can be organised into collections using manifests and how this allows virtual hosting of websites. Another form of interaction with Swarm, namely mounting a Swarm manifest as a local directory using FUSE. +We conclude by summarizing the various URL schemes that provide simple HTTP endpoints for clients to interact with Swarm. + +.. include:: usage/ens.rst +.. include:: usage/feed.rst +.. include:: usage/manifests.rst +.. include:: usage/encryption.rst +.. include:: usage/act.rst +.. include:: usage/fuse.rst +.. include:: usage/bzz.rst diff --git a/docs/swarm-guide/build/html/_sources/usage/act.rst.txt b/docs/swarm-guide/build/html/_sources/usage/act.rst.txt new file mode 100644 index 0000000000..a007d59338 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/usage/act.rst.txt @@ -0,0 +1,269 @@ +Access Control +=============== + +Swarm supports restricting access to content through several access control strategies: + +- Password protection - where a number of undisclosed parties can access content using a shared secret ``(pass, act)`` + +- Selective access using `Elliptic Curve `_ key-pairs: + + - For an undisclosed party - where only one grantee can access the content ``(pk)`` + + - For a number of undisclosed parties - where every grantee can access the content ``(act)`` + +**Creating** access control for content is currently supported only through CLI usage. + +**Accessing** restricted content is available through CLI and HTTP. When accessing content which is restricted by a password `HTTP Basic access authentication `_ can be used out-of-the-box. + +.. important:: When accessing content which is restricted to certain EC keys - the node which exposes the HTTP proxy that is queried must be started with the granted private key as its ``bzzaccount`` CLI parameter. + +Password protection +------------------- + +The simplest type of credential is a passphrase. In typical use cases, the +passphrase is distributed by off-band means, with adequate security measures. +Any user that knows the passphrase can access the content. + +When using password protection, a given content reference (e.g.: a given Swarm manifest address or, alternatively, +a Mutable Resource address) is encrypted using `scrypt `_ +with a given passphrase and a random salt. +The encrypted reference and the salt are then embedded into an unencrypted manifest which can be freely +distributed but only accessed by undisclosed parties that posses knowledge of the passphrase. + +Password protection can also be used for selective access when using the ``act`` strategy - similarly to granting access to a certain EC key access can be also given to a party identified by a password. In fact, one could also create an ``act`` manifest that solely grants access to grantees through passwords, without the need to know their public keys. + +Example usage: + +.. important:: Restricting access to content on Swarm is a 2-step process - you first upload your content, then wrap the reference with an access control manifest. **We recommend that you always upload your content with encryption enabled**. In the following examples we will refer the uploaded content hash as ``reference hash`` + +First, we create a simple test file. We upload it to Swarm (with encryption). + +.. code-block:: none + + $ echo "testfile" > mytest.txt + $ swarm up --encrypt mytest.txt + > + +Then, for the sake of this example, we create a file with our password in it. + +.. code-block:: none + + $ echo "mypassword" > mypassword.txt + +This password will protect the access-controlled content that we upload. We can refer to this password using the `--password` flag. The password file should contain the password in plaintext. + +The ``swarm access`` command sets a new password using the ``new pass`` argument. It expects you to input the password file and the uploaded Swarm content hash you'd like to limit access to. + +.. code-block:: bash + + $ swarm access new pass --password mypassword.txt + > + +The returned hash is the hash of the access controlled manifest. + +When requesting this hash through the HTTP gateway you should receive an ``HTTP Unauthorized 401`` error: + +.. code-block:: bash + + $ curl http://localhost:8500/bzz:// + > Code: 401 + > Message: cant decrypt - forbidden + > Timestamp: XXX + +You can retrieve the content in three ways: + +1. The same request should make an authentication dialog pop-up in the browser. You could then input the password needed and the content should correctly appear. (Leave the username empty.) +2. Requesting the same hash with HTTP basic authentication would return the content too. ``curl`` needs you to input a username as well as a password, but the former can be an arbitrary string (here, it's ``x``). + +.. code-block:: bash + + $ curl http://x:mypassword@localhost:8500/bzz:// + +3. You can also use ``swarm down`` with the ``--password`` flag. + +.. code-block:: bash + + $ swarm --password mypassword.txt down bzz:// mytest2.txt + $ cat mytest2.txt + > testfile + +Selective access using EC keys +------------------------------- + +A more sophisticated type of credential is an `Elliptic Curve `_ +private key, identical to those used throughout Ethereum for accessing accounts. + +In order to obtain the content reference, an +`Elliptic-curve Diffie–Hellman `_ `(ECDH)` +key agreement needs to be performed between a provided EC public key (that of the content publisher) +and the authorized key, after which the undisclosed authorized party can decrypt the reference to the +access controlled content. + +Whether using access control to disclose content to a single party (by using the ``pk`` strategy) or to +multiple parties (using the ``act`` strategy), a third unauthorized party cannot find out the identity +of the authorized parties. +The third party can, however, know the number of undisclosed grantees to the content. +This, however, can be mitigated by adding bogus grantee keys while using the ``act`` strategy +in cases where masking the number of grantees is necessary. This is not the case when using the ``pk`` strategy, as it as +by definition an agreement between two parties and only two parties (the publisher and the grantee). + +.. important:: + Accessing content which is access controlled is enabled only when using a `local` Swarm node (e.g. running on `localhost`) in order to keep + your data, passwords and encryption keys safe. This is enforced through an in-code guard. + +.. danger:: + **NEVER (EVER!) use an external gateway to upload or download access controlled content as you will be putting your privacy at risk! + You have been fairly warned!** + +**Protecting content with Elliptic curve keys (single grantee):** + +The ``pk`` strategy requires a ``bzzaccount`` to encrypt with. The most comfortable option in this case would be the same ``bzzaccount`` you normally start your Swarm node with - this will allow you to access your content seamlessly through that node at any given point in time. + +Grantee public keys are expected to be in an *secp256 compressed* form - 66 characters long string (an example would be ``02e6f8d5e28faaa899744972bb847b6eb805a160494690c9ee7197ae9f619181db``). Comments and other characters are not allowed. + +.. code-block:: bash + + $ swarm --bzzaccount access new pk --grant-key + > + +The returned hash ``4b964a75ab19db960c274058695ca4ae21b8e19f03ddf1be482ba3ad3c5b9f9b`` is the hash of the access controlled manifest. + +The only way to fetch the access controlled content in this case would be to request the hash through one of the nodes that were granted access and/or posses the granted private key (and that the requesting node has been started with the appropriate ``bzzaccount`` that is associated with the relevant key) - either the local node that was used to upload the content or the node which was granted access through its public key. + +**Protecting content with Elliptic curve keys and passwords (multiple grantees):** + +The ``act`` strategy also requires a ``bzzaccount`` to encrypt with. The most comfortable option in this case would be the same ``bzzaccount`` you normally start your Swarm node with - this will allow you to access your content seamlessly through that node at any given point in time + +.. note:: the ``act`` strategy expects a grantee public-key list and/or a list of permitted passwords to be communicated to the CLI. This is done using the ``--grant-keys`` flag and/or the ``--password`` flag. Grantee public keys are expected to be in an *secp256 compressed* form - 66 characters long string (e.g. ``02e6f8d5e28faaa899744972bb847b6eb805a160494690c9ee7197ae9f619181db``). Each grantee should appear in a separate line. Passwords are also expected to be line-separated. Comments and other characters are not allowed. + +.. code-block:: bash + + swarm --bzzaccount 2f1cd699b0bf461dcfbf0098ad8f5587b038f0f1 access new act --grant-keys /path/to/public-keys/file --password /path/to/passwords/file + 4b964a75ab19db960c274058695ca4ae21b8e19f03ddf1be482ba3ad3c5b9f9b + +The returned hash ``4b964a75ab19db960c274058695ca4ae21b8e19f03ddf1be482ba3ad3c5b9f9b`` is the hash of the access controlled manifest. + +As with the ``pk`` strategy - the only way to fetch the access controlled content in this case would be to request the hash through one of the nodes that were granted access and/or posses the granted private key (and that the requesting node has been started with the appropriate ``bzzaccount`` that is associated with the relevant key) - either the local node that was used to upload the content or one of the nodes which were granted access through their public keys. + +HTTP usage +---------- + +Accessing restricted content on Swarm through the HTTP API is, as mentioned, limited to your local node +due to security considerations. +Whenever requesting a restricted resource without the proper credentials via the HTTP proxy, the Swarm node will respond +with an ``HTTP 401 Unauthorized`` response code. + +*When accessing password protected content:* + +When accessing a resource protected by a passphrase without the appropriate credentials the browser will +receive an ``HTTP 401 Unauthorized`` response and will show a pop-up dialog asking for a username and password. +For the sake of decrypting the content - only the password input in the dialog matters and the username field can be left blank. + +The credentials for accessing content protected by a password can be provided in the initial request in the form of: +``http://x:@localhost:8500/bzz:/`` (``curl`` needs you to input a username as well as a password, but the former can be an arbitrary string (here, it's ``x``).) + +.. important:: Access controlled content should be accessed through the ``bzz://`` protocol + +*When accessing EC key protected content:* + +When accessing a resource protected by EC keys, the node that requests the content will try to decrypt the restricted +content reference using its **own** EC key which is associated with the current `bzz account` that +the node was started with (see the ``--bzzaccount`` flag). If the node's key is granted access - the content will be +decrypted and displayed, otherwise - an ``HTTP 401 Unauthorized`` error will be returned by the node. + +Access control in the CLI: example usage +----------------------------------------- + +.. tabs:: + + .. group-tab:: Passwords + + First, we create a simple test file. We upload it to Swarm using encryption. + + .. code-block:: none + + $ echo "testfile" > mytest.txt + $ swarm up --encrypt mytest.txt + > + + Then, we define a password file and use it to create an access-controlled manifest. + + .. code-block:: none + + $ echo "mypassword" > mypassword.txt + $ swarm access new pass --password mypassword.txt + > + + We can create a passwords file with one password per line in plaintext (``password1`` is probably not a very good password). + + .. code-block:: bash + + $ for i in {1..3}; do echo -e password$i; done > mypasswords.txt + $ cat mypasswords.txt + > password1 + > password2 + > password3 + + Then, we point to this list while wrapping our manifest. + + .. code-block:: bash + + $ swarm access new act --password mypasswords.txt + > + + We can access the returned manifest using any of the passwords in the password list. + + .. code-block:: bash + + $ echo password1 > password1.txt + $ swarm --password1.txt down bzz:/ + + We can also `curl` it. + + .. code-block:: bash + + $ curl http://:password1@localhost:8500/bzz:// + + .. group-tab:: Elliptic curve keys + + 1. ``pk`` strategy + + First, we create a simple test file. We upload it to Swarm using encryption. + + .. code-block:: none + + $ echo "testfile" > mytest.txt + $ swarm up --encrypt mytest.txt + > + + Then, we draw an EC key pair and use the public key to create the access-controlled manifest. + + .. code-block:: none + + $ swarm access new pk --grant-key + > + + We can retrieve the access-controlled manifest via a node that has the private key. You can add a private key using ``geth`` (see `here `_). + + .. code-block:: none + + $ swarm --bzzaccount
down bzz:/ out.txt + $ cat out.txt + > "testfile" + + 2. ``act`` strategy + + We can also supply a list of public keys to create the access-controlled manifest. + + .. code-block:: none + + $ swarm access new act --grant-keys + > + + Again, only nodes that possess the private key will have access to the content. + + .. code-block:: none + + $ swarm --bzzaccount
down bzz:/ out.txt + $ cat out.txt + > "testfile" \ No newline at end of file diff --git a/docs/swarm-guide/build/html/_sources/usage/bzz.rst.txt b/docs/swarm-guide/build/html/_sources/usage/bzz.rst.txt new file mode 100644 index 0000000000..f12df34ded --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/usage/bzz.rst.txt @@ -0,0 +1,211 @@ +.. _BZZ URL schemes: + +BZZ URL schemes +======================= + +Swarm offers 6 distinct URL schemes: + +bzz +----- + +The bzz scheme assumes that the domain part of the url points to a manifest. When retrieving the asset addressed by the URL, the manifest entries are matched against the URL path. The entry with the longest matching path is retrieved and served with the content type specified in the corresponding manifest entry. + +Example: + +.. code-block:: none + + GET http://localhost:8500/bzz:/2477cc8584cc61091b5cc084cdcdb45bf3c6210c263b0143f030cf7d750e894d/readme.md + +returns a readme.md file if the manifest at the given hash address contains such an entry. + +.. code-block:: none + + $ ls + readme.md + $ swarm --recursive up . + c4c81dbce3835846e47a83df549e4cad399c6a81cbf83234274b87d49f5f9020 + $ curl http://localhost:8500/bzz-raw:/c4c81dbce3835846e47a83df549e4cad399c6a81cbf83234274b87d49f5f9020/readme.md + ## Hello Swarm! + + Swarm is awesome% + +If the manifest does not contain an file at ``readme.md`` itself, but it does contain multiple entries to which the URL could be resolved, e.g. in the example above, the manifest has entries for ``readme.md.1`` and ``readme.md.2``, the API returns an HTTP response "300 Multiple Choices", indicating that the request could not be unambiguously resolved. A list of available entries is returned via HTTP or JSON. + +.. code-block:: none + + $ ls + readme.md.1 readme.md.2 + $ swarm --recursive up . + 679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463 + $ curl -H "Accept:application/json" http://localhost:8500/bzz:/679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463/readme.md + {"Msg":"\u003ca href='/bzz:/679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463/readme.md.1'\u003ereadme.md.1\u003c/a\u003e\u003cbr/\u003e\u003ca href='/bzz:/679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463/readme.md.2'\u003ereadme.md.2\u003c/a\u003e\u003cbr/\u003e","Code":300,"Timestamp":"Fri, 15 Jun 2018 14:48:42 CEST","Details":""} + $ curl -H "Accept:application/json" http://localhost:8500/bzz:/679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463/readme.md | jq + { + "Msg": "readme.md.1
readme.md.2
", + "Code": 300, + "Timestamp": "Fri, 15 Jun 2018 14:49:02 CEST", + "Details": "" + } + +``bzz`` scheme also accepts POST requests to upload content and create manifest for them in one go: + +.. code-block:: none + + $ curl -H "Content-Type: text/plain" --data-binary "some-data" http://localhost:8500/bzz:/ + 635d13a547d3252839e9e68ac6446b58ae974f4f59648fe063b07c248494c7b2% + $ curl http://localhost:8500/bzz:/635d13a547d3252839e9e68ac6446b58ae974f4f59648fe063b07c248494c7b2/ + some-data% + $ curl -H "Accept:application/json" http://localhost:8500/bzz-raw:/635d13a547d3252839e9e68ac6446b58ae974f4f59648fe063b07c248494c7b2/ | jq . + { + "entries": [ + { + "hash": "379f234c04ed1a18722e4c76b5029ff6e21867186c4dfc101be4f1dd9a879d98", + "contentType": "text/plain", + "mode": 420, + "size": 9, + "mod_time": "2018-06-15T15:46:28.835066044+02:00" + } + ] + } + +.. _bzz-raw: + +bzz-raw +------------- + +.. code-block:: none + + GET http://localhost:8500/bzz-raw:/2477cc8584cc61091b5cc084cdcdb45bf3c6210c263b0143f030cf7d750e894d + + +When responding to GET requests with the bzz-raw scheme, Swarm does not assume that the hash resolves to a manifest. Instead it just serves the asset referenced by the hash directly. So if the hash actually resolves to a manifest, it returns the raw manifest content itself. + +E.g. continuing the example in the ``bzz`` section above with ``readme.md.1`` and ``readme.md.2`` in the manifest: + +.. code-block:: none + + $ curl http://localhost:8500/bzz-raw:/679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463/ | jq + { + "entries": [ + { + "hash": "efc6d4a7d7f0846973a321d1702c0c478a20f72519516ef230b63baa3da18c22", + "path": "readme.md.", + "contentType": "application/bzz-manifest+json", + "mod_time": "0001-01-01T00:00:00Z" + } + ] + } + $ curl http://localhost:8500/bzz-raw:/efc6d4a7d7f0846973a321d1702c0c478a20f72519516ef230b63baa3da18c22/ | jq + { + "entries": [ + { + "hash": "d0675100bc4580a0ad890b5d6f06310c0705d4ab1e796cfa1a8c597840f9793f", + "path": "1", + "mode": 420, + "size": 33, + "mod_time": "2018-06-15T14:21:32+02:00" + }, + { + "hash": "f97cf36ac0dd7178c098f3661cd0402fcc711ff62b67df9893d29f1db35adac6", + "path": "2", + "mode": 420, + "size": 35, + "mod_time": "2018-06-15T14:42:06+02:00" + } + ] + } + +The ``content_type`` query parameter can be supplied to specify the MIME type you are requesting, otherwise content is served as an octet-stream per default. For instance if you have a pdf document (not the manifest wrapping it) at hash ``6a182226...`` then the following url will properly serve it. + +.. code-block:: none + + GET http://localhost:8500/bzz-raw:/6a18222637cafb4ce692fa11df886a03e6d5e63432c53cbf7846970aa3e6fdf5?content_type=application/pdf + +``bzz-raw`` also supports POST requests to upload content to Swarm, the response is the hash of the uploaded content: + +.. code-block:: none + + $ curl --data-binary "some-data" http://localhost:8500/bzz-raw:/ + 379f234c04ed1a18722e4c76b5029ff6e21867186c4dfc101be4f1dd9a879d98% + $ curl http://localhost:8500/bzz-raw:/379f234c04ed1a18722e4c76b5029ff6e21867186c4dfc101be4f1dd9a879d98/ + some-data% + +bzz-list +------------- + +.. code-block:: none + + GET http://localhost:8500/bzz-list:/2477cc8584cc61091b5cc084cdcdb45bf3c6210c263b0143f030cf7d750e894d/path + +Returns a list of all files contained in under grouped into common prefixes using ``/`` as a delimiter. If no path is supplied, all files in manifest are returned. The response is a JSON-encoded object with ``common_prefixes`` string field and ``entries`` list field. + +.. code-block:: none + + $ curl http://localhost:8500/bzz-list:/679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463/ | jq + { + "entries": [ + { + "hash": "d0675100bc4580a0ad890b5d6f06310c0705d4ab1e796cfa1a8c597840f9793f", + "path": "readme.md.1", + "mode": 420, + "size": 33, + "mod_time": "2018-06-15T14:21:32+02:00" + }, + { + "hash": "f97cf36ac0dd7178c098f3661cd0402fcc711ff62b67df9893d29f1db35adac6", + "path": "readme.md.2", + "mode": 420, + "size": 35, + "mod_time": "2018-06-15T14:42:06+02:00" + } + ] + } + +bzz-hash +------------- + +.. code-block:: none + + GET http://localhost:8500/bzz-hash:/theswarm.eth/ + +Swarm accepts GET requests for bzz-hash url scheme and responds with the hash value of the raw content, the same content returned by requests with bzz-raw scheme. Hash of the manifest is also the hash stored in ENS so bzz-hash can be used for ENS domain resolution. + +Response content type is *text/plain*. + +.. code-block:: none + + $ curl http://localhost:8500/bzz-hash:/theswarm.eth/ + 7a90587bfc04ac4c64aeb1a96bc84f053d3d84cefc79012c9a07dd5230dc1fa4% + +bzz-immutable +------------- + +.. code-block:: none + + GET http://localhost:8500/bzz-immutable:/2477cc8584cc61091b5cc084cdcdb45bf3c6210c263b0143f030cf7d750e894d + +The same as the generic scheme but there is no ENS domain resolution, the domain part of the path needs to be a valid hash. This is also a read-only scheme but explicit in its integrity protection. A particular bzz-immutable url will always necessarily address the exact same fixed immutable content. + +.. code-block:: none + + $ curl http://localhost:8500/bzz-immutable:/679bde3ccb6fb911db96a0ea1586c04899c6c0cc6d3426e9ee361137b270a463/readme.md.1 + ## Hello Swarm! + + Swarm is awesome% + $ curl -H "Accept:application/json" http://localhost:8500/bzz-immutable:/theswarm.eth/ | jq . + { + "Msg": "cannot resolve theswarm.eth: immutable address not a content hash: \"theswarm.eth\"", + "Code": 404, + "Timestamp": "Fri, 15 Jun 2018 13:22:27 UTC", + "Details": "" + } + +bzz-resource +------------- + +``bzz-resource`` allows you to receive hash pointers to content that the ENS entry resolved to at different versions + +bzz-resource:// - get latest update +bzz-resource:/// - get latest update on period n +bzz-resource://// - get update version m of period n + = ens name diff --git a/docs/swarm-guide/build/html/_sources/usage/encryption.rst.txt b/docs/swarm-guide/build/html/_sources/usage/encryption.rst.txt new file mode 100644 index 0000000000..6469bea313 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/usage/encryption.rst.txt @@ -0,0 +1,53 @@ +.. _Encryption: + +Encryption +=========== + +Introduced in POC 0.3, symmetric encryption is now readily available to be used with the ``swarm up`` upload command. +The encryption mechanism is meant to protect your information and make the chunked data unreadable to any handling Swarm node. + +Swarm uses `Counter mode encryption `_ to encrypt and decrypt content. When you upload content to Swarm, the uploaded data is split into 4 KB chunks. These chunks will all be encoded with a separate randomly generated encryption key. The encryption happens on your local Swarm node, unencrypted data is not shared with other nodes. The reference of a single chunk (and the whole content) will be the concatenation of the hash of encoded data and the decryption key. This means the reference will be longer than the standard unencrypted Swarm reference (64 bytes instead of 32 bytes). + +When your node syncs the encrypted chunks of your content with other nodes, it does not share the full references (or the decryption keys in any way) with the other nodes. This means that other nodes will not be able to access your original data, moreover they will not be able to detect whether the synchronized chunks are encrypted or not. + +When your data is retrieved it will only get decrypted on your local Swarm node. During the whole retrieval process the chunks traverse the network in their encrypted form, and none of the participating peers are able to decrypt them. They are only decrypted and assembled on the Swarm node you use for the download. + +More info about how we handle encryption at Swarm can be found `here `_. + +.. note:: + Swarm currently supports both encrypted and unencrypted ``swarm up`` commands through usage of the ``--encrypt`` flag. + This might change in the future as we will refine and make Swarm a safer network. + +.. important:: + The encryption feature is non-deterministic (due to a random key generated on every upload request) and users of the API should not rely on the result being idempotent; thus uploading the same content twice to Swarm with encryption enabled will not result in the same reference. + + +Example usage: + +First, we create a simple test file. + +.. code-block:: none + + $ echo "testfile" > mytest.txt + +We upload the test file **without** encryption, + +.. code-block:: none + + $ swarm up mytest.txt + > + +and **with** encryption. + +.. code-block:: none + + $ swarm up --encrypt mytest.txt + > + +Note that the reference of the encrypted upload is **longer** than that of the unencrypted upload. Note also that, because of the random encryption key, repeating the encrypted upload results in a different reference: + +.. code-block:: none + + $ swarm up --encrypt mytest.txt + + diff --git a/docs/swarm-guide/build/html/_sources/usage/ens.rst.txt b/docs/swarm-guide/build/html/_sources/usage/ens.rst.txt new file mode 100644 index 0000000000..a70c5e5e65 --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/usage/ens.rst.txt @@ -0,0 +1,59 @@ +.. _Ethereum Name Service: + +Using ENS names +================ + +.. note:: In order to `resolve` ENS names, your Swarm node has to be connected to an Ethereum blockchain (mainnet, or testnet). See `Getting Started <./gettingstarted.html#connect-ens>`_ for instructions. This section explains how you can register your content to your ENS name. + +`ENS `_ is the system that Swarm uses to permit content to be referred to by a human-readable name, such as "theswarm.eth". It operates analogously to the DNS system, translating human-readable names into machine identifiers - in this case, the Swarm hash of the content you're referring to. By registering a name and setting it to resolve to the content hash of the root manifest of your site, users can access your site via a URL such as ``bzz://theswarm.eth/``. + +.. note:: Currently The `bzz` scheme is not supported in major browsers such as Chrome, Firefox or Safari. If you want to access the `bzz` scheme through these browsers, currently you have to either use an HTTP gateway, such as https://swarm-gateways.net/bzz:/theswarm.eth/ or use a browser which supports the `bzz` scheme, such as Mist . + +Suppose we upload a directory to Swarm containing (among other things) the file ``example.pdf``. + +.. code-block:: none + + $ swarm --recursive up /path/to/dir + >2477cc8584cc61091b5cc084cdcdb45bf3c6210c263b0143f030cf7d750e894d + +If we register the root hash as the ``content`` for ``theswarm.eth``, then we can access the pdf at + +.. code-block:: none + + bzz://theswarm.eth/example.pdf + +if we are using a Swarm-enabled browser, or at + +.. code-block:: none + + http://localhost:8500/bzz:/theswarm.eth/example.pdf + +via a local gateway. We will get served the same content as with: + +.. code-block:: none + + http://localhost:8500/bzz:/2477cc8584cc61091b5cc084cdcdb45bf3c6210c263b0143f030cf7d750e894d/example.pdf + +Please refer to the `official ENS documentation `_ for the full details on how to register content hashes to ENS. + +In short, the steps you must take are: + +1. Register an ENS name. +2. Associate a resolver with that name. +3. Register the Swarm hash with the resolver as the ``content``. + +We recommend using https://manager.ens.domains/. This will make it easy for you to: + +- Associate the default resolver with your name +- Register a Swarm hash. + +.. note:: When you register a Swarm hash with https://manager.ens.domains/ you MUST prefix the hash with 0x. For example 0x2477cc8584cc61091b5cc084cdcdb45bf3c6210c263b0143f030cf7d750e894d + +Overview of ENS (video) +----------------------- + +Nick Johnson on the Ethereum Name System + +.. raw:: html + + diff --git a/docs/swarm-guide/build/html/_sources/usage/feed.rst.txt b/docs/swarm-guide/build/html/_sources/usage/feed.rst.txt new file mode 100644 index 0000000000..1c730fbabc --- /dev/null +++ b/docs/swarm-guide/build/html/_sources/usage/feed.rst.txt @@ -0,0 +1,445 @@ +Feeds +======================== + +.. note:: + Feeds, previously known as *Mutable Resource Updates*, is an experimental feature, available since Swarm POC3. It is under active development, so expect things to change. + +Since Swarm hashes are content addressed, changes to data will constantly result in changing hashes. Swarm Feeds provide a way to easily overcome this problem and provide a single, persistent, identifier to follow sequential data. + +The usual way of keeping the same pointer to changing data is using the Ethereum Name Service (ENS). However, since ENS is an on-chain feature, it might not be suitable for each use case since: + +1. Every update to an ENS resolver will cost gas to execute +2. It is not be possible to change the data faster than the rate that new blocks are mined +3. ENS resolution requires your node to be synced to the blockchain + + +Swarm Feeds provide a way to have a persistent identifier for changing data without having to use ENS. It is named Feeds for its similarity with a news feed. + +If you are using *Feeds* in conjunction with an ENS resolver contract, only one initial transaction to register the "Feed manifest address" will be necessary. This key will resolve to the latest version of the Feed (updating the Feed will not change the key). + +You can think of a Feed as a user's Twitter account, where he/she posts updates about a particular Topic. In fact, the Feed object is simply defined as: + +.. code-block:: go + + type Feed struct { + Topic Topic + User common.Address + } + +That is, a specific user posting updates about a specific Topic. + +Users can post to any topic. If you know the user's address and agree on a particular Topic, you can then effectively "follow" that user's Feed. + +.. important:: + How you build the Topic is entirely up to your application. You could calculate a hash of something and use that, the recommendation + is that it should be easy to derive out of information that is accesible to other users. + + For convenience, ``feed.NewTopic()`` provides a way to "merge" a byte array with a string in order to build a Feed Topic out of both. + This is used at the API level to create the illusion of subtopics. This way of building topics allows using a random byte array (for example the hash of a photo) + and merge it with a human-readable string such as "comments" in order to create a Topic that could represent the comments about that particular photo. + This way, when you see a picture in a website you could immediately build a Topic out of it and see if some user posted comments about that photo. + +Feeds are not created, only updated. If a particular Feed (user, topic combination) has never posted to, trying to fetch updates will yield nothing. + +Feed Manifests +-------------- + +A Feed Manifest is simply a JSON object that contains the ``Topic`` and ``User`` of a particular Feed (i.e., a serialized ``Feed`` object). Uploading this JSON object to Swarm in the regular way will return the immutable hash of this object. We can then store this immutable hash in an ENS Resolver so that we can have a ENS domain that "follows" the Feed described in the manifest. + +Feeds API +--------- + +There are 3 different ways of interacting with *Feeds* : HTTP API, CLI and Golang API. + +HTTP API +~~~~~~~~ + +Posting to a Feed +................. + +Since Feed updates need to be signed, and an update has some correlation with a previous update, it is necessary to retrieve first the Feed's current status. Thus, the first step to post an update will be to retrieve this current status in a ready-to-sign template: + +1. Get Feed template + +``GET /bzz-feed:/?topic=&user=&meta=1`` + +``GET /bzz-feed://?meta=1`` + + +Where: + + ``user``: Ethereum address of the user who publishes the Feed + + ``topic``: Feed topic, encoded as a hex string. Topic is an arbitrary 32-byte string (64 hex chars) + +.. note:: + + If ``topic`` is omitted, it is assumed to be zero, 0x000... + + if ``name=`` (optional) is provided, a subtopic is composed with that name + + A common use is to omit topic and just use ``name``, allowing for human-readable topics + +You will receive a JSON like the below: + +.. code-block:: js + + { + "feed": { + "topic": "0x6a61766900000000000000000000000000000000000000000000000000000000", + "user": "0xdfa2db618eacbfe84e94a71dda2492240993c45b" + }, + "epoch": { + "level": 16, + "time": 1534237239 + } + "protocolVersion" : 0, + } + +2. Post the update + +Extract the fields out of the JSON and build a query string as below: + +``POST /bzz-feed:/?topic=&user=&level=&time=