Difference between revisions of "InterPlanetary File System"

From MgmtWiki
Jump to: navigation, search
(Solutions)
(Windows)
Line 10: Line 10:
 
* ~ tilde is the same as $HOME which in Powershell is $env:USERPROFILE
 
* ~ tilde is the same as $HOME which in Powershell is $env:USERPROFILE
 
* ~/ipfs is the default directory for all things ispf include the config file
 
* ~/ipfs is the default directory for all things ispf include the config file
* the most significant part of the config that might want to be changed are here - note in particular    "API": "/ip4/127.0.0.1/tcp/5001",  which may need to be changed to 0.0.0.0
+
* the most significant part of the config that might want to be changed are here - note in particular    "API": "/ip4/127.0.0.1/tcp/5001",  which may need to be changed to 0.0.0.0 if you need to access ipfs from any devices other than localhost.
 
<pre>
 
<pre>
 
   "Addresses": {
 
   "Addresses": {

Revision as of 17:54, 4 November 2020

Full Title

The InterPlanetary File System (IPFS) is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a Global Namespace connecting all computing devices.[1]

Context

  • IPFS was first deployed in 2015 and grew by word-of-mouth as a replacement to HTTP for static content.
  • It allows users to host content as well as to search for it.
  • If users do not wish to host content, they can access IPFS by a public gateway.

Windows

The context of this wiki page is windows, but the typical context of go is GNU so some helpful translations are

  • ~ tilde is the same as $HOME which in Powershell is $env:USERPROFILE
  • ~/ipfs is the default directory for all things ispf include the config file
  • the most significant part of the config that might want to be changed are here - note in particular "API": "/ip4/127.0.0.1/tcp/5001", which may need to be changed to 0.0.0.0 if you need to access ipfs from any devices other than localhost.
  "Addresses": {
    "Swarm": [
      "/ip4/0.0.0.0/tcp/4001",
      "/ip6/::/tcp/4001",
      "/ip4/0.0.0.0/udp/4001/quic",
      "/ip6/::/udp/4001/quic"
    ],
    "Announce": [],
    "NoAnnounce": [],
    "API": "/ip4/127.0.0.1/tcp/5001",
    "Gateway": "/ip4/127.0.0.1/tcp/8080"
  },
  "Mounts": {
    "IPFS": "/ipfs",
    "IPNS": "/ipns",
    "FuseAllowOther": false
  }

Installing

For Windows using chocolatey.

> choco install go-ipfs
> ipfs init
> ipfs daemon

By default the client looks for a daemon at http://localhost:5001. This can be overridden by either setting the environment variable IpfsHttpUrl or initializing the client with an URL.

// js-ipfs likes this address
static readonly IpfsClient ipfs = new IpfsClient("http://127.0.0.1:5002");

Test to see if the daemon is running by typing this in your browser.

http://localhost:5001/ipfs/bafybeianwe4vy7sprht5sm3hshvxjeqhwcmvbzq73u55sdhqngmohkjgs4/#/

Using

IPFS can run in either online or offline mode. Online mode is when when you have IPFS running separately as a daemon process. If you do not have an IPFS daemon running, you are in offline mode. Some commands, like ipfs swarm peers, are only supported when online.

Solutions

  • the [Sidetree] protocol uses IPFS to insure that Identifiers are unique.

References

  1. Klint Finley, The Inventors of the Internet Are Trying to Build a Truly Permanent Web (2016-06-20) Wired (magazine) https://www.wired.com/2016/06/inventors-internet-trying-build-truly-permanent-web/