Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: update general graphcast docs, add a page for 3la radio #63

Merged
merged 1 commit into from
Jul 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions docs/graphcast/design-principles.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,31 @@ sidebar_position: 2
There are two main components of Graphcast

- The Graphcast SDK: The base layer SDK which interfaces with The Graph stack and the Waku network. This includes interactions with an Ethereum client, a Graph node client, a client for the Indexer management server, the Network subgraph and the Registry subgraph).
- Radios: Highly customizable gossip applications, built with the help of the Graphcast SDK, which define the specific message formats and logic around constructing and handling the messages.
- Radios: Highly customizable gossip applications, built with the help of the Graphcast SDK, which define the specific message formats and logic around constructing and handling the messages. They are the nodes communicating in the Graphcast Network.

## The Graphcast SDK

The SDK is the base layer which is used to abstract all the necessary components of each Radio away from the user. That includes:

- Connection to Graphcast by spinning up a [Waku](https://waku.org/) node. It also provides an interface to subscribe to receive messages on specific topics and to broadcast messages onto the network.
- Establishes a connection to Graphcast via a [Waku](https://waku.org/) Gossip node, providing an interface for subscribing to specific topics and broadcasting messages across the network.
- Interactions with an Ethereum node, a Graph node and a client for the Indexer management server.
- Queries to Network and Registry subgraphs.
- Checks message validity for past message injections, nonexistent blocks and expired timestamps. It also guarantees that messages are signed by an authorised operator address of an active on-chain Indexer (this can be used as a basis for a reputation system).
- Supports a flexible and customizable configuration of the Graphcast gossip agent, enabling specification of network settings, peer discovery mechanisms, message encoding formats, and more. For detailed instructions on configuring Graphcast to suit your needs, refer to the configuration guide.
- Topics in Graphcast represent different categories or subjects of information. Nodes can dynamically subscribe to specific topics to receive messages related to those topics. Topics enable efficient message routing and dissemination within the network.
hopeyen marked this conversation as resolved.
Show resolved Hide resolved
- Provides comprehensive message handling structure to ensure that messages are reliably transmitted, received, and processed within the network.

## Radios

General Radio components

- Supports Radio for specific use cases.
- Controls topic subscriptions dynamically for interested topics.
- Provides radio type definition used to verify the integrity and authenticity of messages exchanged within the network.
- Collects Radio-specific information and incorporates it into Graphcast messages along with other relevant metadata.
- Observes and handles relevant messages received from peers.
- Provides performance metrics, logs, and API services.

Our first example Radio is built for real-time cross-checking of Indexer Proof of Indexing attestations (POIs). Indexers must generate valid POIs to earn indexing rewards. Indexers find it beneficial to alert each other on the health status of subgraphs in community discussions. To alleviate the manual workload, the POI Radio:

- Defines message types and topics
Expand Down
2 changes: 1 addition & 1 deletion docs/graphcast/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The Graphcast SDK (Software Development Kit) allows developers to build Radios,

## Learn more

If you want to find out more about the initial idea behind Graphcast, as well as stay up to date with the newest developments, keep an eye on the [GRC post on The Graph Forum](https://forum.thegraph.com/t/grc-001-graphcast-a-gossip-network-for-indexers/3544).
If you want to find out more about the initial idea behind Graphcast, as well as stay up to date with the newest developments, keep an eye on the [GRC post on The Graph Forum](https://forum.thegraph.com/t/grc-001-graphcast-a-gossip-network-for-indexers/3544), or join the Graphcast [Discord channel](https://discord.com/channels/438038660412342282/1087503343410225152).

## Contributing

Expand Down
Loading