https://github.com/subsquid/sqd-network
A network of decentralized archives
https://github.com/subsquid/sqd-network
Last synced: about 1 year ago
JSON representation
A network of decentralized archives
- Host: GitHub
- URL: https://github.com/subsquid/sqd-network
- Owner: subsquid
- License: agpl-3.0
- Created: 2022-07-23T10:26:35.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-14T11:11:46.000Z (about 1 year ago)
- Last Synced: 2025-04-14T12:25:09.394Z (about 1 year ago)
- Language: Rust
- Size: 995 KB
- Stars: 8
- Watchers: 6
- Forks: 1
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# SQD Network
This is a libp2p-based network that allows communication between nodes. See
[this page](https://github.com/subsquid/subsquid-network-contracts/wiki/Network-architecture)
for the network architecture.
## Transport crate
Contains the implementation of the libp2p transport protocol for the network.
It exposes the simple API for the following predefined actors on the network.
### Worker
Most nodes on the network are workers. Their main purpose is to process queries
from the Gateways.
### Scheduler
The Scheduler is a centralized controller of data distribution on the network.
It assigns chunks to workers based on collected pings and sends them the
assignments.
### Gateway
The Gateway is the entry point for the clients. It sends queries to the Workers
and receives the responses.
### Logs Collector
The Logs Collector saves the logs it receives to the persistent database for
further analysis.
### Pings Collector
The Pings Collector instances collect broadcasted pings from the Workers and
store them in the database.
## Messages crate
Contains protobuf schemas for the messages exchanged between nodes.
## Keygen
A simple binary for generating a keypair for a node.
The simplest way to use it is by using Docker. The following command will
generate a keypair and save it to the `key` file in the current directory, or
print the peer id if the file already exists.
```bash
docker run -u $(id -u):$(id -g) -v .:/host subsquid/keygen:tethys /host/key
```
## Bootnode
The simplest possible node which acts as a source of information about other
nodes. It is used by new nodes to connect to the network.
## Contract Client
A client for interacting with the smart contracts through the RPC node.