II. Technical Fundamentals

GETTING STARTED

As with anything truly revolutionary, IPFS takes some getting used to. In this module we’ll cover how to set up your own node and push / pull files from the network.

1. INSTALL IPFS
Since IPFS is a new protocol, you’ll need to install their bundle so that your device will be able to communicate with other IPFS nodes.

After downloading, untar the archive, and move the ipfs binary somewhere in your executables $PATHusing the install.sh script:

$ tar xvfz go-ipfs.tar.gz
$ cd go-ipfs
$ ./install.sh

Test it out:

$ ipfs help
USAGE:

    ipfs - Global p2p merkle-dag filesystem.
...

Congratulations! You now have a working IPFS installation on your computer.

After downloading, unzip the archive, and move ipfs.exe somewhere in your %PATH%.

Test it out:

$ ipfs help
USAGE:

    ipfs - Global p2p merkle-dag filesystem.
...

Congratulations! You now have a working IPFS installation on your computer.

This will cover your needs for this tutorial, but for more info on setting up IPFS you can also visit their portal here.

2. Initialize Your Node

Now that you have installed the IPFS software, you’ll need to configure your local node. For the sake of this example, you can use the defaults. For more information on configuring nodes for different environments click here.

> ipfs init
initializing ipfs node at /Users/jbenet/.go-ipfs
generating 2048-bit RSA keypair...done
peer identity: Qmcpo2iLBikrdf1d6QU6vXuNb6P7hwrbNPW9kLAH8eG67z

Congratulations – you’re now the proud owner of your very own IPFS node!
Your node’s address is shown in the last line as ‘peer identity’.

You can test that your node is working by contacting the IPFS core node to download the readme or quick-start guide:

ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/quick-start

3. GOING ONLINE

Now that you have IPFS installed and your node has an address, you can take the node online and join the network. You may want to use a separate shell window for this.

> ipfs daemon 

Initializing daemon... 

API server listening on /ip4/127.0.0.1/tcp/5001 

Gateway server listening on /ip4/127.0.0.1/tcp/8080 

You can also see other peers on the network:

> ipfs swarm peers 
/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ 
/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx 
/ip4/134.121.64.93/tcp/1035/ipfs/QmWHyrPWQnsz1wxHR219ooJDYTvxJPyZuDUPSDpdsAovN5 
/ip4/178.62.8.190/tcp/4002/ipfs/QmdXzZ25cyzSF99csCQmmPZ1NTbWTe8qtKFaZKpZQPdTFB

4. Retrieving Files

We’re now online, so we can try downloading a file from the network.

ipfs cat /ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg > cat.jpg
open cat.jpg

If everything is working properly you should now see a cat! This image file is now on your computer, but you didn’t get it over HTTP, and it may have been downloaded from any of hundreds of IPFS nodes around the world. 

> ipfs init
initializing ipfs node at /Users/jbenet/.go-ipfs
generating 2048-bit RSA keypair...done
peer identity: Qmcpo2iLBikrdf1d6QU6vXuNb6P7hwrbNPW9kLAH8eG67z

5. STORING Files

You can also push files to the network:

> hash=`echo "I <3 The Blockchain Institute -$(whoami)" | ipfs add -q`

This will generate a hash of your string message and store it at a new ipfs hash url. 

> curl "https://ipfs.io/ipfs/$hash"

This should now return:

I <3 The Blockchain Institute -<your username>

6. Dashboard View

Now that you’re up and running, you may want to also check out the localhosted network that shows connected peers and files stored.

You can view the dashboard whenever the daemon is running at http://localhost:5001/webui

The webUI View has lots of additional features for non-command line users!

I. Introduction

A Bit of Background…

As with any technology, IPFS is a combination of solutions to problems that had existed in the past. Storage technology is at the core of everything we think of as computers. Player Pianos, dating back to the early 18th century, were the first real form of digital storage. The notches on a steel cylinder pulled tensioned lines, effectively playing a song when the springs were pulled by an attendant. Our modern hard drives are not much more complex than this, using electrical charge rather than the mechanical potential of a spring, but otherwise very similar.

In the early days of computing, storage devices were coupled with processing units in single purpose systems; however with the introduction of the internet and high speed broadband these two components are now commonly separated, often by hundreds of miles. As cloud services have grown, the notion of storage has shifted from individual hard drives and physical devices to a network of high-availability devices which a client device can access for a fee.

The goal of IPFS is to provide a common protocol for networks of computers to use to share their storage.

Current Standards

The primary system employed by storage providers in 2018 is to use HTTP and HTTPS GET and POST requests to pull and place records in servers. While this system has functioned relatively well until now, it has a number of dangerous vulnerabilities derived from its centralized structure.
 
HTTP vs. IPFS (Borrowed: https://cdn-images-1.medium.com/max/1600/1*OJZdD_LoDxUIGfTBI_YkoQ.png)

In particular, when HTTP calls are routed, they use the central domain service to request files by their relation to a particular url. As a result, all files on the network must belong to a particular domain and must be hosted on a particular connected device.

What makes IPFS different?

In contrast, IPFS uses purely peer to peer transfer of data. Each file is hosted across a network of connected nodes who each participate independently of each other. In a similar fashion to the torrents used to share pirated music or movies, these decentralized files cannot be deleted nor their access controlled without access to every participating node in the network.

Next: Technical Fundamentals

IPFS

Introducing IPFS

 The Interplanetary FileSystem (IPFS for short) is a protocol developed to allow the decentralized storage of data across a wide range of nodes. This technology was conceived as an extension of the same concept behind torrents. Individual nodes store encrypted files, and offer them up when any node in the network asks to download them. The files are stored using a hash-addressing system and are encrypted, which allows this network to act as a decentralized filesystem without compromising privacy.
Module 1: Introduction

This technology didn’t just pop up overnight! In this section we’ll cover the background of decentralized storage from torrents until now, and go through some basics terminology to get you up to speed.

Module 2: Technical Fundamentals

In this module, we cover how to set up your own IPFS node, and how to push and pull files from the network. We’ll also go over the addressing structure and get you caught up on the background of this technology.

Module 3: Applications

The real trick with any decentralized network is developing a proper incentive module. In this section we’ll cover the current projects in the space including FileCoin, Swarm, Storj, and Sia, and help you get started with payments for your storage use. We’ll also cover how to set up your node to start earning cryptocurrencies with your unused storage space.

Module 4: Applications

The real trick with any decentralized network is developing a proper incentive model. In this section we’ll cover the current projects in the space including FileCoin, Swarm, Storj, and Sia, and help you get started with payments for your storage use. We’ll also cover how to set up your node to start earning cryptocurrencies with your unused storage space.

Hong Kong University

HKU BLOCKCHAIN WORKSHOP

NOVEMBER 12

Digital Ledger technology and distributed computing have come a long way. The Blockchain Institute’s founder, Taylor Gerring spoke earlier this month at Hong Kong University’s Blockchain Center. The institute will be working with the university to provide blockchain educational material.

The talk covered the history of blockchain and introduced new ideas on how it can push into the next decade.
Taylor Gerring pictured here with the Hong Kong University team.

Loyalty Live

October 16, 2018

LOYALTY MEETS BLOCKCHAIN OCTOBER 16 From October 16-18 the Loyalty Live Blockchain Conference took place in Chicago. Experts in the loyalty and blockchain fields met to discuss how the two can intersect. Top executives from Walmart, DigitalFutures, RewardOps, and DigitalBits were all in attendance to collaborate in discussions on integrating blockchain solutions into the loyalty … Continue reading Loyalty Live

South Side Blockchain Meetup

October 13, 2018

SOUTH SIDE BLOCKCHAIN MEETUP OCTOBER 13 On October 13th the Blockchain Institute was proud to sponsor the South Side Blockchain Meetup. Eager programmers of all skill levels participated in the event. The topic focused on the Loom Network and their gamified Solidity tutorial, Crypto Zombies. Crypto Zombies is a web app that creates a guided … Continue reading South Side Blockchain Meetup

The Voice of Blockchain

August 23, 2018

VOICE OF BLOCKCHAIN AUGUST 23 The Blockchain Institute is proud to sponsor the Voice of Blockchain. The VoB event was held at Navy Pier in Chicago, and attracted a wide range of speakers from across the cryptocurrency and blockchain industry. The event was split into four tracks innovation, social good, fintech, and buidl so attendees … Continue reading The Voice of Blockchain

Internet of Value

Background

The original purpose of blockchain was to enable trustless payments on the Bitcoin network. Before Bitcoin, online payments required an offline third party such as a bank to manually approve each transfer. This created a major weakness to fraud and theft – one which is no longer present in Web3 systems built on the blockchain.

Did you know?

As of 2018, the average international transfer costs over $35 USD. A Bitcoin transaction by contrast costs less than $10.

Current State

Payments online are currently transmitted through private third parties, which complicates international transactions and reduces the ability of regulators to monitor activity.

 

Conceptual Goal

In order for a more open and transparent system to be truly efficient, users must be able to be held accountable for their actions. With the introduction of cryptocurrencies and the Internet of Value, it is finally possible to create transparent incentive-based systems online. We can now connect digital action with value in a very real and precise way.

 

What can we do today?

1. Develop proper online identity tracking systems

2. Implement systems to track value creation through the supply chain and better reward contributions despite intermediaries

3. Keep others accountable online

4. Use smart contracts to allow all participants to see the inner workings of a system and handle automatic fulfillment

Check out our section on finance for more on how these systems can promote independence.

 

Digital Identity

Background

The internet as we know it has evolved to suit our needs. With each iteration, we’ve brought offline technologies online. Generally, we’ve done so in the simplest way possible.

As systems move online, it’s important to be able to prove who you are, and to stop others from impersonating you. Privacy and security need to be at the core of everything we build, rather than just an afterthought.

Did you know?

In 2017, 1/10 Americans was the victim of online fraud, with over $16 Billion dollars stolen.

Current State

As we bring more of our information online to solve problems, security will need to adapt to keep up.

 

Conceptual Goal

If the Internet is to become the core of our society, it’s important that we begin to support firms who deal with privacy and security as a focus, rather than an afterthought.

 

What can we do today?

1. Demand opt-in systems where users have more choice in which data they expose

2. Offer premium or “No Ads” options to increase direct support of projects, rather than relying on user data for profit

3. Choose not to participate in systems that profit from your data unfairly

Check out our section on healthcare for more on how these systems can help users control their data.

NEXT: Digital Governance

Digital Governance

Did you know?

On average, data collected on websites is transferred through at least 5 third party servers without the user’s knowledge

Current State

While the internet has made it possible for anyone to publish content, the publishing tools themselves have become potential points of failure.

 

Conceptual Goal

As content online becomes more and more interchangeable for real world experience, social media companies and content providers will be the primary source of information for many people. It’s up to us to dictate the terms of that situation in advance, and to stay vigilant for changes to the status quo.

 

What can we do today?

1. Develop more systems that are designed to promote open sharing of ideas, rather than the extraction of direct profit

2. Actively track and hold firms accountable for their influence

3. Choose to engage only with communities and products that value open communication and freedom of speech

Check out our section on finance for more on how these systems can promote independence.

NEXT: Decentralization

Decentralization

Did you know?

Almost half of US Energy production is wasted each year due to separate and uncooperative systems, and consumers foot the bill.

Current State

Interoperability in technology refers to the design of systems as complimentary modules. Most of the infrastructure that we take for granted today is the result of a concerted effort to produce, distribute, and maintain individual component technologies.

Conceptual Goal

Blockchain and Web 3.0 present an opportunity to create a system without the bottlenecks of the current model. By democratizing access and opening incentive structures, we can provide greater opportunity for everyone while making the system more stable.

What can we do today?

1. Use smart contracts to allow separate blockchains to interact

2. Build and support new products as modular solutions, with integration as a design principle rather than just a feature

3. Build and support products that act as bridges between existing technology and new systems

Check out our section on energy for more on how these systems can promote independence.

Learn More: History of Decentralization

Blockchain in Supply Chain

What’s the Impact?

In the modern world, factories and production must integrate seamlessly with transport and logistics services. If something goes wrong, it can often be hard to identify the problem until it’s too late. 

Tracking delivery of goods can only go so far, because the information still needs to be stored somewhere. That’s where blockchain can help.

  Live tracking from production to delivery

  Automatic data entry

  Transparent and open networks

If you’re interested in learning more, you might want to check out the projects IBM Blockchain and Modum, or sign up for our mailing list in the footer!

OTHER INDUSTRIES

Blockchain in Energy

What’s the Impact? Recent history has proven that energy is a rapidly evolving sector. New technology like solar and wind generation is enabling individuals everywhere to take control of their energy usage, but the existing centralized grid cannot support these new alternatives. The problem? Tracking energy production and assigning value is complicated, and the current … Continue reading Blockchain in Energy

Blockchain in Healthchare

What’s the Impact? The healthcare industry is currently set to face a massive overhaul. With change knocking on the doorstep, it really begs the question: how will technology have its hand in shaping this transformation? When it comes to data privacy and security, blockchain might be the answer we’ve all been waiting for. Increased data … Continue reading Blockchain in Healthchare

Blockchain in Education

What’s the Impact? Technology has significantly impacted the education sector in the last few decades. When computers became more popular and easier to access, it changed how we present information in an educational setting. Students began typing presentations and essays, rather than writing them by hand. As information databases became more developed, we slowly transitioned … Continue reading Blockchain in Education