Internet of People
|Original author(s)||Fermat Project|
|Initial release||April, 2016|
|Preview release||Token Server, Oct 2016; Location Based Network, Feb 2017; Content Address Network, Feb 2017; Profile Server, Feb 2017; (all in public Alpha release)|
|Development status||In development|
|Project goal(s)||Open social graph, direct access to people and direct device-to-device communication.|
|Funding||Initially, by angel investors. Currently bootstrapped.|
|Written in||C++, C#, Java|
|License||Open source, permission-less network|
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 is developed by the Fermat project.
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 (people own their profiles) and the information stored can be modified only by signing with the respective private key (no one can modify a profile other than the profile’s owner). Edges are co-owned by the entities holding the private keys of the connected nodes (people can control the kind of relationships they have). 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 Internet of People fragments the private part of the graph 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.
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 profiles, 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.
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 and host certain profiles at a specific 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: In order to guarantee proper global communication, nodes get to know distant nodes beyond their vicinity. Nodes in the LOC NET benefit by avoiding routing requests or other non-profitable requests from clients. For this reason—and in order to become colleagues—nodes exchange profile information with each other.
- 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
Nodes in the LOC NET know only a part of the network, thus each LOC NODE has its own Local Network Map. The information within a Local Network Map overlaps with information kept by neighboring 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 NET)
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.
IoP token server
The IoP token server features a blockchain serving as the underlying technology to keep a distributed ledger of token transactions. Being a bitcoin-based blockchain designed as an electronic cash payment system, the token server uses the blockchain to deploy an application token system that can be used for transactions between software components.
- IoP token
- Fermat project
- Shin, Laura (April 26, 2016). "Catch A Ride Without Uber? Book A Room Without Airbnb? That's Fermat's Vision". Forbes.
- Scott, Michael (May 3, 2016). "Fermat: Fostering a Global Peer-to-Peer Economy | BTCMANAGER". btcmanager.com.
- Maye, Niall (April 30, 2016). ""Internet of People": How Blockchain Could Improve Uber, Airbnb and Other Services". CoinTelegraph.
- Robinson, Rick (May 10, 2016). "Will an 'Internet of People' Threaten the On-Demand Heavies and Give Power to SMBs?". Street Fight.
- Dautner, Mike (March 15, 2017). "Global Blockchain Project FERMAT Announces Partnership with Bitcoin Suisse AG | Payment Week". Payment Week.
- Suberg, William (March 15, 2017). "Fermat Releases Alpha Profile Server In Bid To Launch "Internet of People"". CoinTelegraph.
- Campbell, Chris (April 28, 2016). "Fermat: The New Face of Free Markets". Laissez Faire.
- Zerucha, Tony (March 16, 2017). "Bitcoin Suisse AG partnership important step for Fermat". Bankless Times.
- "Global Blockchain Project Fermat Releases Whitepaper And Alpha Version - EconoTimes". EconoTimes. April 27, 2016.
- Molina, Luis (10 March 2017). "Introducing the Graphchain". Hacker Noon. Retrieved 31 March 2017.
- Muratov, Eugene (June 28, 2016). "Internet of People: Founder of Fermat Presents Project's Perspective Of Peer-to-Peer Economy | ForkLog". forklog.net.
- Mizrahi, Avi (February 17, 2017). "Internet of People Blockchain Project Fermat Signs Up New Partners | Finance Magnates". Finance Magnates.
- Molina, Luis (21 December 2016). "The Profile Server". Medium. Retrieved 1 April 2017.
- Cocking, Simon (February 23, 2017). "Global Blockchain Project FERMAT Announces Significant Alpha Release for the "Internet of People"". Irish Tech News.
- Molina, Luis (18 November 2016). "Fermat, the Internet of People and the Person to Person Economy". Hacker Noon. Retrieved 1 April 2017.
- Yablonskaya, Tatsiana (February 16, 2017). "Blockchain Project Fermat Announces Alpha Release for the 'Internet of People'". CoinSpeaker.
- Molina, Luis (22 January 2017). "The Location Based Network". Medium. Retrieved 1 April 2017.
This article "Internet of People" is from Wikipedia. The list of its authors can be seen in its historical. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.