CIPs
CIPs copied to clipboard
Follows List
cip:
title: Follows List
author: Michael Sena (@michaelsena), Joel Thorstensson (@oed)
discussions-to:
status: Idea
category: Standards
type: RFC
created: 2020-05-22
requires: Tile Doctype (CIP-8)
replaces:
🚨 This is a placeholder for an idea, and we will work to draft the CIP at a later time. Feel free to leave comments and ideas on this issue.
Simple Summary
Follows List contains a list of DIDs that a DID is following.
Abstract
The follows list aims to provide permissionless, platform-agnostic storage for a list of DIDs followed by this DID.
Motivation
Follows are often a critical aspect of identity on many digital platforms. The follows list provides a unified social graph that can be shared across platforms, eliminating the need for users to redundantly replicate the same information on each new platform.
Specification
The Follows List specification consists of a doctype, schema, and tags.
Doctype
Follows List is a Tile Doctype (CIP-8).
Schema
The Follows List utilizes the DID Array schema, which simply stores an array of DIDs. A reference to this schema should be included in your Follows List document when it is created.
Tags
When creating a Follows List document, add FollowsList
to the tags field.
Example
An example Follows List document.
"doctype": "tile"
"schema": "<insert canonical schema for DID Array>"
"tags": ["FollowsList", "DIDArray"],
"content": {
["DID1","DID2","DID3",...]
}
@oed the schema for the follows list would likely just be an array of DIDs, but I could imagine that being useful for other documents as well. Should we create a new CIP for a DID Array
Schema, similar to what we did for DocId Map and String Map?
Well this is an interesting find. My team and I actually discussed this a while ago. We came to the conclusion that, in addition to the follows list, there should be a following list. This would allow both the follower and the DID being followed to confirm if a relationship exists or not.
The problem with a "who is following me" list is that it's hard to update that list in a trustless way. When Alice decides to follow Bob, it's easy for Alice to update her own IDX to include a record that she is following Bob. She cannot, however, write to Bob's IDX to add herself as a follower as she won't have write access to the necessary streams that Bob owns.