Jump to content

User:Arcojuana/sandbox

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Arcojuana (talk | contribs) at 13:27, 25 March 2017. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Internet of People
File:Internet of people logo.png
Internet of people logo
Original author(s)Fermat Project
Developer(s)Fermat Project
Initial releaseApril, 2016
Stable releaseProfile Server (Alpha) / February, 2017
Development statusIn development
Project goal(s)Open social graph, direct access to people and direct device-to-device communication.
FundingBootstrapped
Written inJava
Operating systemCross-platform
LicenseOpen source, permission-less network
Websitewww.fermat.org

The Internet of People (IoP) is an open source and decentralized technology infrastructure with an open social graph, consisting of interconnected peer-to-peer networks hosting people's profiles, reputation and identity information. It can be regarded as an information space providing a direct access channel to people, where people's profiles are identified by a public key and interlinked by profile relationship links.

The open social graph resembles a global map of people with embedded proof of how people are related. It is an open infrastructure, thus developers are free to innovate in a permission-less way. The Internet of People enables direct device-to-device communication and allows people-to-people and company-to-people interactions without going through silos. Devices pair with each other through the Internet and interact via IoP-connected applications.

The Internet of People incorporates a native crypto-currency as an incentive and payment medium. The IoP token is traded in several crypto-currency exchanges.

The Internet of People is developed by the Fermat project and is designed to work within the Fermat Framework.

Design concepts

Abstraction

A drawing of a labeled graph on 6 nodes and 7 edges.

The Internet of People uses graphchain technology, a type of cryptographically-secured data structure similar to a blockchain, with the main difference being the graphchain does not need to store blocks or transactions.

In discrete mathematics a graph is "a structure amounting to a set of objects in which some pairs of the objects are in some sense related. The objects correspond to mathematical abstractions called vertices (also called nodes or points) and each of the related pairs of vertices is called an edge (also called an arc or line)".

The Internet of People graphchain stores information concerning both nodes (people's profiles) and edges (profile links or profile relationship links) of a graph. Nodes are identified by a public key and their information is controlled by a private key holder (profile owner). Edges represent relationships between the entities (people) controlling nodes. Certain relationships can only be added to the graphchain when they are signed by the private keys of both connected nodes.

Nodes are owned by their private key holders and the information stored can be modified only by signing with the respective private key. Edges are co-owned by the entities holding the private keys of the connected nodes. The relationship type and conditions agreed upon when the relationship was established determine the possible actions co-owners can individually perform on edges' information.

The IoP graphchain distributes the data structure across two different sets of hardware devices:

  • Nodes and public edges are stored at a set of devices running on top of an open and public peer-to-peer (p2p) network.
  • Private edges are stored at the devices of the entities holding the private keys of the predecessor node.

As a consequence of the distribution of the data structure, a part of the graph is publicly accessible while another part is not. The private part of the graph is fragmented into devices owned by different entities. External parties can learn about a specific part of the private graph only with the consent of the owner or when the owner privately exposes information to a third party with the purpose of declaring a relationship.

The Internet of People allows end user devices to keep an open connection to the public network, thus anyone can locate a device associated with a graph node and use the open connection to learn more about that piece of the private part of the graph—if granted permission by its owner.

The IoP graphchain provides a secure, open and publicly accessible social graph that is owned and controlled by end users.

Architecture

The Internet of People architecture consists of two different types of component building blocks: nodes and servers.

Nodes: Each node type creates at runtime peer-to-peer (p2p) network with a different topology:

  • Unstructured network nodes: They instantiate an unstructured network used to run—for example—the IoP Token Server (implemented as a blockchain).
  • Content address network nodes: They implement a Distributed Hash Table (DHT) to allow services to index information. The network is implemented as a fork of the InterPlanetary File System.
  • Location based network nodes: They are organized as an operator-declared Geo-location. This allows people and applications to comply with regional regulations and deal with privacy concerns.
  • Latency based network nodes: They arrange themselves by latency distance, minimizing communication latency.

Servers: The IoP architecture features several servers with specific incumbencies:

  • IoP token server: It is responsible for recording IoP token ownership and processing token transfer transactions, using a blockchain as an underlying data structure and technology. It runs on top of the IoP Unstructured Network.
  • Minting server: It keeps track of IoP full nodes installations and runs a ranking system determining who to allocate the reward of newly minted IoP tokens. It runs on top of the IoP Content Address Network.
  • Profile server: It hosts user profiles and allows users to find other users and establish relationships between each other. It also allows applications to determine which application services client devices are running, and agree how to proceed to establish a direct device-to-device connection to exchange information. The profile server runs on top of the IoP Location Based Network and also on top of the IoP Content Address Network—at the same time.
  • Proximity server: Geo-localized apps check in this server in order to be found by nearby peers. These servers run on top of the IoP Location Based Network.
  • Reputation server: It stores and serves reputation information of people or any of their sub-profile types, running on top of the IoP Content Address Network.
  • Stun server: It helps clients establish a p2p connection, running on top of the IoP Unstructured Network.
  • Turn Server: It helps clients relay data to each other when a p2p connection is not possible, running on top of the IoP Latency Base Network.

Function

Profile Server

The Profile Server is central to the Internet of People system and the piece of the broader IoP architecture where the public end of the graphchain resides. It enables the following functions of IoP-connected applications:

People discovery: Profile servers provide a decentralized service that enable p2p apps to find users. Person-to-person applications host users' profiles on profile servers rendering profiles discoverable to other IoP-connected apps.

The specific services involved in people discovery are:

  • Profile hosting: IoP-connected apps run—mostly—on mobile devices, which are not always online. Profile servers host end users' profiles and keep them online regardless of the state of the devices on which IoP-connected apps run.
  • Hosted profile queries: Profile servers allow entities to request profile lists and general profile information. The way for end users to find other end users on the Internet of People is by browsing profiles—especially when people are connecting for the first time. Once connected, both parties remember which the Profile Server of their counterpart is.
  • Relationship cards: When a relationship is established between two profiles, each profile signs the content of a data structure that includes the public keys of the other profile. This data structures are called relationship cards, and they also contain the type of relationship and expiration date. These cards allow profile owners to link their own profiles, or to publicly express relationships between profiles belonging to different persons.

Assistance on device-to-device connections: Profile servers assist in acquiring a direct device-to-device connection once people find each other.

The specific services involved in assisting direct device-to-device connections are:

  • Keeping connection to online devices: Profile servers maintain an open TCP/IP connection with end users' devices while they are connected to the Internet, thus know when people behind the hosted profiles are online. This is the first step to acquiring a direct device-to-device connection.
  • Application service calls: Devices run application services and, when connected to profile servers, they signal which application services they are running (and are available to receive calls). When end users wish to interact using a particular app, the app on one device talks to the app on the remote device through one of the available application services (running locally on each device). If this initial communication succeeds, the originating app can start the process of placing an application service call.

STUN and TURN servers

STUN servers are used to establish a device-to-device connection while both devices are behind firewalls, that is, with no public Internet addresses and filtered Internet traffic. In certain cases, STUN servers fail to work around the firewalls. In such cases a specialized server is used to relay the information between devices: TURN servers. Unlike traditional use of STUN and TURN servers, the IoP implementation deploys them over decentralized peer-to-peer networks.

Location Based Network (LOC NET)

Because people live in the physical world and interact mostly with people in their vicinity, the Internet of People offers certain Geo-localized services through a Location Based Network (LOC NET). Location is actually one of the criteria for searching and finding people in the IoP.

The LOC NET is a general purpose peer-to-peer network of nodes that organizes itself based on the specific Geo-location configured by node operators. Certain IoP Servers can partner with LOC NET nodes and thus turning their services into Geo-localized services. For example, a Profile Server can partner with a LOC NET node running on the same hardware, allowing client applications to choose a server to host their profiles at a certain location.

The IoP LOC NET implements the following concepts:

  • Unrelated nodes: By default, nodes join the network as unrelated nodes. They can later become colleagues or neighbors in relation to other nodes. Interactions with unrelated nodes are performed with special care.
  • Colleague nodes: Nodes get to know distant nodes to ensure global communication. All nodes in the LOC NET benefit equally if they can avoid non-profitable requests from clients such as routing requests. For this reason, nodes exchange node profile info with each other to become colleagues.
  • Neighboring nodes: Nodes know their neighborhood very well. That of neighbors is one type of relationship between nodes. LOC NET nodes may have a number of colleagues scattered around the globe, while they know all of their neighbors.

Local Network Map

The LOC NET is location-aware and each node knows only a part of the network. A Local Network Map is unique to each LOC NODE and partially overlaps with information kept by other nodes. Nodes know their neighborhood well but they know less nodes as distance increases.

Local Network Maps are organized in two sections, each with different goals and properties. The Neighborhood Map maintains a comprehensive list of the closest nodes. The World Map provides a rough coverage of the rest of the world. To prevent too much data and limit node density, the World Map picks only a single node from each area.

LOC NET Services

IoP-connected applications can use the LOC NET to contact nodes in different parts of the world. They can query a node in their neighborhood about the closest known node on a specific remote location. After a number of iterations the application will succeed in contacting the closest node to the targeted location. Through this node, applications can communicate with servers in the vicinity and use their services.

Content Address Network (CAN)

The IoP Content Address Network (CAN) is an extension of the InterPlanetary File System (IPFS).The Content Address Network allows profile and reputation servers to index end user profiles and user reputation respectively.

In the IoP implementation, the CAN was extended to accept client apps. A feature to handle content seeders who do not own the content was also implemented to solve the case presented by profile servers not owning the hosted profiles. Also, an embedded naming system that allows users to retrieve content information with an immutable key even when the content and it's hash changes was also implemented.


[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]

[16]

References

  1. ^ Shin, Laura (April 26, 2016). "Catch A Ride Without Uber? Book A Room Without Airbnb? That's Fermat's Vision". Forbes.
  2. ^ Scott, Michael (May 3, 2016). "Fermat: Fostering a Global Peer-to-Peer Economy | BTCMANAGER". btcmanager.com.
  3. ^ Redman, Jamie (April 26, 2016). "'Internet of the People' Platform Fermat Exits 'Stealth Mode'". Bitcoin News.
  4. ^ Kastelein, Richard (April 26, 2016). "Global Blockchain Project FERMAT Plans to Impact P2P Economy And Reinvent Mobile Software Development". Blockchain News.
  5. ^ Cocking, Simon (May 7, 2016). "Global Blockchain Project FERMAT Revealed". Irish Tech News.
  6. ^ Muratov, Eugene (June 28, 2016). "Internet of People: Founder of Fermat Presents Project's Perspective Of Peer-to-Peer Economy | ForkLog". forklog.net.
  7. ^ Campbell, Chris (April 28, 2016). "Fermat: The New Face of Free Markets". Laissez Faire.
  8. ^ "Global Blockchain Project Fermat Releases Whitepaper And Alpha Version - EconoTimes". EconoTimes. April 27, 2016.
  9. ^ Maye, Niall (April 30, 2016). ""Internet of People": How Blockchain Could Improve Uber, Airbnb and Other Services". CoinTelegraph.
  10. ^ Robinson, Rick (May 10, 2016). "Will an 'Internet of People' Threaten the On-Demand Heavies and Give Power to SMBs?". Street Fight.
  11. ^ Dautner, Mike (February 16, 2017). "FERMAT Announces Significant Alpha Release for the "Internet of People" | Payment Week". Payment Week.
  12. ^ Yablonskaya, Tatsiana (February 16, 2017). "Blockchain Project Fermat Announces Alpha Release for the 'Internet of People'". CoinSpeaker.
  13. ^ "Fermat | Internet of People | Person to Person Economy". GitHub.
  14. ^ Mizrahi, Avi (February 17, 2017). "Internet of People Blockchain Project Fermat Signs Up New Partners | Finance Magnates". Finance Magnates.
  15. ^ Cocking, Simon (February 23, 2017). "Global Blockchain Project FERMAT Announces Significant Alpha Release for the "Internet of People"". Irish Tech News.
  16. ^ Zerucha, Tony (February 19, 2017). "Fermat announces alpha release of blockchain-enabled open source project". Bankless Times.