Definitions
Here are some definitions of entities within the system
Name | Description |
---|---|
Node | A server which stores and serves parts. |
Provider | An individual or organization which owns, secures, and operates nodes. |
Tenant | An individual or organization which owns content. |
Content | A versioned set of data which is owned by a tenant. |
Space | A group of providers and tenants, where providers agree to run nodes that serve content owned by a tenant according to a common set of rules. |
Part | A part is a sequence of bytes stored in the space, referenced by its hash. |
Content Object Version | A collection of parts created by a tenant, referenced by its hash. |
Content Object | A collection of versions. |
KMS | A tenant-owned server which holds keys for encrypting/decrypting content which the tenant stores in the space. |
The following entities are identified as follows:
Entity | Identifier | Substrate Type |
---|---|---|
Provider | ProviderId | 10-byte array |
Node | NodeId | 10-byte array1 |
Space | SpaceId | 10-byte array |
Content Object | ContentObjectId | 10-byte array |
Content Object Version | CObjVersionId | 32-byte array |
KMS | KMSId | 10-byte array |
1
Could node id just be an unsigned 32-bit integer and do some round robin or mod-magic for assigning partitions?