Introducing the Threads Protocol Whitepaper

Today we are excited to release the first public draft of Textile's Threads Whitepaper! The whole team worked hard to get the motivations and ideas behind our latest work on Threads into a form that we can share and discuss with the community. We're hoping this initial draft will promote some broader discussion, as well as provide some insight into our current roadmap. The abstract of the whitepaper provides a nice introduction to our motivations for building and releasing Threads into the wild:

As the Internet expands, the division between a person's digital and physical existence continues to blur. An emerging issue of concern is that the digital part of a person's life is being stored away from the person's control by companies behind apps and services on the Internet. An alternative architecture for data on the web, called user-siloed data, aims to reverse the flow of data and its derived value so that users, not apps, capture it. In this paper, we investigate the data formats, access control, and transfer protocols necessary to build a system for user ownership of data. The proposed system aims to help power a new generation of web technologies. Our solution combines a novel use of event sourcing, Interplanetary Linked Data (IPLD), and access control to provide a distributed, scalable, and flexible database solution for decentralized applications.

Check out the official whitepaper in PDF form, and participate in the discussion via our papers repo. We've also included links to some relevant resources below for folks who want to follow along with implementation progress, demos, and discussion.

Resources

View our broader technology roadmap here. We'll be updating this frequently, so check back often.

go-threads is the reference implementation of Threads. It is available for testing and developing already, with new features being added weekly. Follow along, but expect breaking changes for the time being.

js-threads works for web and nodejs apps. It it leverages trustless, remote peers to persist and relay thread updates for users. js-textile provides access to free remote peers to help scale and grow your app for users. Finally, p2p apps that scale and deliver the experience your users want!

js-threads-clients works for web, nodejs apps, and react native apps. It is a 'lite' client that connects to a running go-threads daemon. It is already being used by several projects involved in our early release program.

We have clients for other platforms scoped (e.g. iOS, Android) for near-term development, if you have specific needs please let us know so we can prioritize these projects.

We have a #threads channel on Slack if you would like to chat about any of the above.

We have also put together several examples to showcase how to start building with the new Threads Protocol:

go-foldersync : This demo models a set of user-folders for sharing data/files using Threads. There is a very comprehensive readme for you to follow.

js-foldersync : The foldersync demo running on the JS library.

go-threads/examples : Chat (doesn’t use the eventstore but showcases some P2P capabilities), Counter, and Book collections.. Basic implementations of the core Threads protocols.

Thanks

Huge thanks to the community members who contributed to early versions of this whitepaper! The Textile team is grateful for your contributions, and the work presented here has been greatly improved by your comments, suggestions, and revisions.