Understanding Shoggoth Network
I wanted to take a moment to write a simplified description of how the Shoggoth Network works. Shoggoth is a P2P network to help decentralized AI resources (papers, code, datasets and models) which are published and hosted by Clients and Nodes.
What is the purpose of Shoggoth? The motivation is that it is becoming an increasing theme to desire a decentralized network of AI resources which are open source and freely available to all.
A Simplified Way To Think of Shoggoth
The simplest way to think of Shoggoth is to understand that it is a network of client machines which use Git to publish, manage and share AI resources.
Understanding Shoggoth Clients
Shoggoth Clients are any computer running the Shoggoth software which can be downloaded from the Shoggoth website. Once a user has downloaded the Shoggoth software and run the client, the user can then do the following:
- Host a node by enabling node functionality (not enabled by default)
- Publish and make available resources in the form of a Shoggoth Profile managed by that client via Git and HTTP requests
- Download and access resources (pinned Shoggoth Profiles) hosted by other nodes
Shoggoth Clients do not run nodes automatically, but every Shoggoth client can BECOME a node if desired. Every client manages ONE Shoggoth Profile which describes a directory of resources that can be published to the Shoggoth Network. Nodes can host many “Pinned” resources (Profiles) provided by a network of external clients.
Publishing Shoggoth Resources
A Shoggoth Client can publish resources to a network of nodes. Nodes agree to replicate and list resources by “pinning” them, at which point these resources are referred to as “pins.” Resources, Pins and Shoggoth Profiles can be thought of roughly the same thing: A folder with datasets, papers, AI models and code.