Expand description
Core data types in use by the Noosphere protocol. Data types in here represent the canonical structure of Noosphere data as expressed by block-encoded IPLD.
Structs§
- Address
Book Ipld - A subdomain of a [SphereIpld] that pertains to the management and recording of the petnames associated with the sphere.
- Authority
Ipld - A subdomain of a [SphereIpld] that pertains to the delegated authority to access a sphere, as well as the revocations of that authority.
- Body
Chunk Ipld - A body chunk is a simplified flexible byte layout used for linking chunks of bytes. This is necessary to support cases when body contents byte size exceeds the IPFS block size (~1MB). This may be replaced with a more sophisticated layout structure in the future.
- Bundle
- Changelog
Ipld - A ChangelogIpld records a series of changes that represent the delta of a given VersionedMapIpld from its immediate ancestor
- Delegation
Ipld - This delegation represents the sharing of access to resources within a sphere. The name of the delegation is for display purposes only, and helps the user identify the client device or application that the delegation is intended for.
- Did
- A DID, aka a Decentralized Identifier, is a string that can be parsed and resolved into a so-called DID Document, usually in order to obtain PKI details related to a particular user or process.
- Identity
Ipld - An IdentityIpld represents an entry in a user’s pet name address book. It is intended to be associated with a human readable name, and enables the user to resolve the name to a DID. Eventually the DID will be resolved by some mechanism to a UCAN, so this struct also records the last resolved value if one has ever been resolved.
- Jwt
- A JWT, aka a JSON Web Token, is a specialized string-encoding of a particular format of JSON and an associated signature, commonly used for authorization flows on the web, but notably also used by the UCAN spec.
- Link
- A Link is a Cid with a type attached. The type represents the data that the Cid refers to. This is a helpful construct to use to ensure that data structures whose fields or elements may be Cids can still retain strong typing. A Link transparently represents its inner Cid, so a data structure that uses Links can safely be interpretted in terms of Cids, and vice-versa.
- Link
Record - A LinkRecord is a wrapper around a decoded Jwt (Ucan), representing a link address as a Cid to a sphere.
- Memo
Ipld - A basic Memo. A Memo is a history-retaining structure that pairs inline headers with a body CID.
- Mnemonic
- A BIP39-compatible mnemonic phrase that represents the data needed to recover the private half of a cryptographic key pair.
- Revocation
Ipld - See https://github.com/ucan-wg/spec#66-revocation TODO(ucan-wg/spec#112): Verify the form of this
- Sphere
Ipld - The root of the sphere, containing pointers to public details such as names and links, as well as “sealed” (private) data. While public details are accessible to all, sealed data is encrypted at rest and only accessible to the user who owns the sphere.
- Versioned
MapIpld - A VersionedMapIpld pairs a Hamt and a ChangelogIpld to enable a data structure that contains its difference from a historical ancestor without requiring that a diff be performed.
Enums§
- Content
Type - Various well-known mimes in Noosphere
- Header
- Well-known headers in the Noosphere
- MapOperation
- A MapOperation represents a single change to a VersionedMapIpld as it may be recorded in a ChangelogIpld.
- Version
- The Noosphere protocol version
Constants§
- BODY_
CHUNK_ MAX_ SIZE - The maximum size of a body chunk as produced by BodyChunkIpld
- LINK_
RECORD_ FACT_ NAME - The name of the fact (as defined for a Ucan) that contains the link for a LinkRecord.
Traits§
- TryBundle
- TryBundle
Send Sync - Versioned
MapKey - A helper trait to simplify expressing the bounds of a valid VersionedMapIpld key
- Versioned
MapValue - A helper trait to simplify expressing the bounds of a valid VersionedMapIpld value
Type Aliases§
- Content
Ipld - A VersionedMapIpld that represents the content space of a sphere
- Delegations
Ipld - A VersionedMapIpld that represents the key authorizations in a sphere
- Identities
Ipld - A VersionedMapIpld that represents the petname space of a sphere
- Lamport
Order - A designated int for lamport order values in MemoIpld headers
- Revocations
Ipld - A VersionedMapIpld that represents the authority revocations in a sphere