Skip to content

Commit

Permalink
Updated layout for easier readability and updated glossary layout
Browse files Browse the repository at this point in the history
  • Loading branch information
jordantrouw committed Nov 3, 2023
1 parent 35395fc commit d995d6c
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 28 deletions.
47 changes: 36 additions & 11 deletions docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,33 @@ Looking for a quick reminder on definitions or usages for XYO technology? You're
<!-- [TODO] — Complete the Glossary -->
<!-- [Maryann] — Add any words here you've seen questions about (or have a question about yourself!) -->

## Node

## The Basics

### Module
A Module is an account or wallet with a sovereign ledger and the ability to build and sign Bound Witnesses.
Modules encapsulate XYO components (Archivists, Diviners, Bridges, etc.). All Modules have their own Bound Witness ledger, which allows them to remain sovereign and provide valuable and verifiable audit trails for data. Modules add to this Bound Witness ledger with a new signature when they are called via a query (remotely, in most cases). After being called, Modules build a Bound Witness and sign it, including the signature in the response.

Types of Modules include:

- Node
- Sentinel
- Bridge
- Archivist
- Diviner

## Module Types

### Node
**A Node is a collection of modules.**

Node modules provide scoping, so you can easily create public and private collections of modules. With a Node, you can also desgn unique collections with very specific access inclusions and exclusion. This scoping is key to organization, as well as sovereignty for data and projects created with XYO.
Node modules provide scoping, so you can easily create public and private collections of modules. With a Node, you can also design unique collections with very specific access inclusions and exclusion. This scoping is key to organization, as well as sovereignty for data and projects created with XYO.

It is important to note that a Node module is not the same as a simple "node" in a network. A "node" may refer to a singular instance of something inside a larger, greater network. A Node module is specifically a collection of XYO modules.

## Sentinel
### Sentinel
**A Sentinel tells one or more modules what to do.**

Similar to a conductor or a Zapier "Zap", the Sentinel contains instructions for other modules to complete. These tasks are often specialized steps that lead to a greater, overall task.

Most importantly, Sentinels do a lot of heavy lifting when it comes to the cryptographic design of XYO. A Sentinel can provide a final signature for a bundle of completed tasks, and it can instruct other modules to sign off on independently completed tasks. Each of these signatures creates a Bound Witnesses.
Expand All @@ -31,7 +49,7 @@ The more Sentinels that can agree and include unique signatures on the Bound Wit
- A smart-watch that records your heart rate
- A thermometer that collects real-world temperature data

## Bridge
### Bridge
**A Bridge serves as a connection between different nodes.**

A Bridge is most often used when traversing a technology connecting remote modules. An example of this may be a Bridge connecting a local module running on your computer and a remote module that requires HTTP access. Another example may be when crossing a Bluetooth connection between two separate nodes.
Expand All @@ -42,24 +60,31 @@ At its core, a Bridge transfers Bound Witness and payload data from Sentinels to
- A smartphone
- A Raspberry Pi

## Archivist
### Archivist
**An Archivist is where Bound Witness and Payload data is stored.**

At its core, an Archivist is a module designed to store things. Archivists can be shared, hosted, or self-hosted, similar to a database.

It is also possible to run an Archivist on the same device as the Sentinel and Bridge. This allows a developer to simplify their XYO system, and for example, store payloads on the same device where payloads are sent to remote modules (by a Bridge) or where actions are orchestrated and signed (by a Sentinel).

## Diviner
### Diviner
**A Diviner is a module that transforms data.**

A Diviner takes in data, transforms it, and delivers an answer or new form of that original data. You can think of them in the same way "Reduce", "Map", and "Filter" methods in Javascript transform the data they are applied to.

For example, a "Summary" Diviner might work the same way a "Reduce" does — a diviner that takes in some amount of data, and transforms it it into a summary of that same data, like a sum or an average


## Module
A Module is an account or wallet with a sovereign ledger and the ability to build and sign Bound Witnesses.
Modules encapsulate XYO components (Archivists, Diviners, Bridges, etc.). All Modules have their own Bound Witness ledger, which allows them to remain sovereign and provide valuable and verifiable audit trails for data. Modules add to this Bound Witness ledger with a new signature when they are called via a query (remotely, in most cases). After being called, Modules build a Bound Witness and sign it, including the signature in the response.

## Bound Witness Blocks
A series of blocks that contain the data collected by a Sentinel.

## XYO Core Values

### Sovereignty
Data Sovereignty is the right to own, control, and store data you create.

### Provenance
Provenance is the origin or earliest known history of something. XYO incorporates provenance as a key feature of XYO technology through data provenance. is knowing where data was created, where it came from, who made it.

### Permanence
Data Permanence emphasizes the need for trusted, long-term storage, organization, and access. XYO promotes data permanence because it so heavily influences data's use, reliability, and ultimately, value.

10 changes: 6 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ XYO’s defining premise is **decentralized verification**, allowing network dev
## Examples of XYO
XYO is capable of processing any kind of decentralized data which can be generated, including location, user input, device interactions, and heuristics of all types. XYO’s network is also fully blockchain-enabled, allowing both data aggregation and storage to be fully decentralized if desired, although centralized data storage is also easily accomplished.
XYO is designed to be easy to implement, with several SDKs now available and an API soon to follow, allowing developers to tap into better decentralized data, and to realize the full power of the data their software aggregates, in a few simple steps.

## Advantages of XYO
XYO’s features include:
- Built-in data validation, helping to protect your data from both errors and attacks.
- Optional, fully integrated blockchain functionality.
- An easy-to-use, human-readable, JSON-based data structure for storage and organization.
- [TODO] Roughly 2 more bullet points, total of 5ish.
- **Optional Blockchain:** Whether you want to add a few decentralized plugins or completely re-vamp your project, XYO allows you to add just as much decentralization as you want. All XYO Modules have [sovereign](/glossary#sovereignty) ledgers, improving performance
- **Optional Blockchain:** Built-in data validation, helping to protect your data from both errors and attacks.
- **Optional Blockchain:** Optional, fully integrated blockchain functionality.
- **Optional Blockchain:** An easy-to-use, human-readable, JSON-based data structure for storage and organization.
-
3 changes: 1 addition & 2 deletions src/theme/DocItem/Layout/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useWindowSize } from '@docusaurus/theme-common'
import { useDoc } from '@docusaurus/theme-common/internal'
import { Typography } from '@mui/material'
import DocBreadcrumbs from '@theme/DocBreadcrumbs'
import DocItemContent from '@theme/DocItem/Content'
import DocItemFooter from '@theme/DocItem/Footer'
Expand Down Expand Up @@ -36,7 +35,7 @@ export default function DocItemLayout({ children }) {
<div className={clsx('col', 'arie', !docTOC.hidden && styles.docItemCol)}>
<DocVersionBanner />
<div className={styles.docItemContainer}>
<article>
<article style={{ paddingRight: '80px' }}>
<DocBreadcrumbs />
<DocVersionBadge />
{docTOC.mobile}
Expand Down
1 change: 0 additions & 1 deletion src/theme/DocItem/Layout/styles.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

@media (min-width: 997px) {
.docItemCol {
padding-right: 60px !important;
margin-right: auto !important;
}
}
22 changes: 12 additions & 10 deletions src/theme/DocPage/Layout/Main/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// eslint-disable-next-line import/no-internal-modules
import { useDocsSidebar } from '@docusaurus/theme-common/internal'
import { Typography, useTheme } from '@mui/material'
import { Container, Typography, useTheme } from '@mui/material'
// eslint-disable-next-line import/no-named-as-default
import clsx from 'clsx'
import React from 'react'
Expand All @@ -17,15 +17,17 @@ export default function DocPageLayoutMain({ hiddenSidebarContainer, children })
XYO Developer Documentation currently in Alpha Stage and is only for internal use.
</Typography>
</div>
<div
className={clsx(
'container padding-top--md padding-bottom--lg',
styles.docItemWrapper,
hiddenSidebarContainer && styles.docItemWrapperEnhanced,
)}
>
{children}
</div>
<Container maxWidth={'lg'}>
<div
className={clsx(
'container padding-top--lg padding-bottom--lg',
styles.docItemWrapper,
hiddenSidebarContainer && styles.docItemWrapperEnhanced,
)}
>
{children}
</div>
</Container>
</main>
)
}

0 comments on commit d995d6c

Please sign in to comment.