You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cip: 18
title: Connections Index
author: Michael Sena (@michaelsena), Joel Thorstensson (@oed)
status: Draft
category: Standards
type: RFC
created: 2020-05-22
requires: Tile Doctype (CIP-8), StringMap (CIP-9)
Simple Summary
Connections Index simply stores links to other documents that contain various aspects of a DID's social graph.
Abstract
Connections are an important aspect of one's identity and can take many forms such as follows lists, friends, contacts, family, etc. In a user-centric model, this information should be controlled by a user and portable across applications. This eliminates the need for users to rebuild their entire social graph on every platform that they use.
Connections Index provides a standard interface for discovering and routing to various documents that represent different aspects of a DID's complete social graph. Connections Index does not store the social graph information itself, but rather stores pointers to documents that do.
Connections Index utilizes the String Map (CIP-9) schema, which simply stores a list of strings which map to other strings. In this context, the key string should contain the name of the social graph resource, and the value string should contain its location. A reference to this schema should be included in your Connections Index document when it is created.
Table
The Connections Index Table (to be created at a later time) contains the standard set of properties that may be contained in any given Connections Index. New properties can be added to the table by following the steps below. Additional properties not found in this table may be stored in any Connections Index, however they may be less interoperable since others may not know what they represent. Here are some common examples of properties stored in the Connections Index:
follows: the DocId of a Follows List (CIP-N), which contains a list of DIDs that this DID is following
Root Index: Connections Index provides a directory of connections lists, however connections are just one type of resource that can be associated with a DID. The Root Index (CIP-12) provides a top-level root directory for resources, and can contain a property called connections which stores a link to a Connections Index document. The recommended path for mapping from a DID to the Connections Index is: DID/Root Index/Connections Index.
Rationale
Extensibility & Flexibility: It is impossible to predict all of the types of connections that need to be associated with any particular DID. Therefore Connections Index was designed to be an infinitely extensible directory that can support any number of connections lists.
Decentralization & Trust: Connections directory information is data that needs to be globally-available, censorship-resistant, and live permissionlessly in the public domain (not on any single server). Additionally this information should be owned by a DID and will need to be updated from time to time. These requirements make Ceramic the most appropriate platform for publishing this content.
Implementation
String Map Schema: Find the String Map Schema here.
Connections Index Table: Find the table containing standard Connections Index properties here (to be updated when available).
Simple Summary
Connections Index simply stores links to other documents that contain various aspects of a DID's social graph.
Abstract
Connections are an important aspect of one's identity and can take many forms such as follows lists, friends, contacts, family, etc. In a user-centric model, this information should be controlled by a user and portable across applications. This eliminates the need for users to rebuild their entire social graph on every platform that they use.
Connections Index provides a standard interface for discovering and routing to various documents that represent different aspects of a DID's complete social graph. Connections Index does not store the social graph information itself, but rather stores pointers to documents that do.
Connections Index is a subdirectory of the Identity Index (IDX) (CIP-11) and is often linked from the Root Index (CIP-12).
Motivation
Specification
The Connections Index specification consists of a doctype, schema, table, and tags.
Doctype
Connections Index is a Tile Doctype (CIP-8).
Schema
Connections Index utilizes the String Map (CIP-9) schema, which simply stores a list of strings which map to other strings. In this context, the key string should contain the name of the social graph resource, and the value string should contain its location. A reference to this schema should be included in your Connections Index document when it is created.
Table
The Connections Index Table (to be created at a later time) contains the standard set of properties that may be contained in any given Connections Index. New properties can be added to the table by following the steps below. Additional properties not found in this table may be stored in any Connections Index, however they may be less interoperable since others may not know what they represent. Here are some common examples of properties stored in the Connections Index:
follows
: the DocId of a Follows List (CIP-N), which contains a list of DIDs that this DID is followingcontacts
: the DocId of a Contacts List (CIP-N), which contains a list of contactsfamily
: the DocId of a Family List, which contains a list of family membersHow to add a new property to the Connections Index Table
Tags
When creating a Connections Index document, add
ConnectionsIndex
to the tags field.Example
An example Connections Index document.
Suggested Usage
Root Index: Connections Index provides a directory of connections lists, however connections are just one type of resource that can be associated with a DID. The Root Index (CIP-12) provides a top-level root directory for resources, and can contain a property called
connections
which stores a link to a Connections Index document. The recommended path for mapping from a DID to the Connections Index is:DID
/Root Index
/Connections Index
.Rationale
Extensibility & Flexibility: It is impossible to predict all of the types of connections that need to be associated with any particular DID. Therefore Connections Index was designed to be an infinitely extensible directory that can support any number of connections lists.
Decentralization & Trust: Connections directory information is data that needs to be globally-available, censorship-resistant, and live permissionlessly in the public domain (not on any single server). Additionally this information should be owned by a DID and will need to be updated from time to time. These requirements make Ceramic the most appropriate platform for publishing this content.
Implementation
String Map Schema: Find the String Map Schema here.
Connections Index Table: Find the table containing standard Connections Index properties here (to be updated when available).
Libraries: Not yet available.
Copyright
Copyright and related rights waived via CC0.
The text was updated successfully, but these errors were encountered: