Skip to content

Commit

Permalink
Update README.md documentation and docker-compose.yml file.
Browse files Browse the repository at this point in the history
  • Loading branch information
LINCKODE committed May 2, 2024
1 parent 758a899 commit f782147
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 4 deletions.
115 changes: 113 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,114 @@
# go-qubic-nodes
# The Qubic nodes service

Http service for fetching reliable qubic node information
The purpose of the `qubic-nodes` service is to continuously check node reliability and provide, upon request, a list of reliable nodes.

## Building from source

```shell
go build
```

## Running the service

### Configuration
The service can be configured either by CLI parameters or environment variables.
The current configuration will be printed at startup.

#### Required parameters
```shell
QUBIC_NODES_QUBIC_PEER_LIST: "5.39.222.64;82.197.173.130;82.197.173.129"
```

#### Optional parameters
```shell
QUBIC_NODES_QUBIC_EXCHANGE_TIMEOUT: (default: 2s)
QUBIC_NODES_QUBIC_MAX_TICK_ERROR_THRESHOLD: (default: 50)
QUBIC_NODES_QUBIC_RELIABLE_TICK_RANGE: (default: 30)

QUBIC_NODES_SERVICE_TICKER_UPDATE_INTERVAL: (default: 5s)
```

### Docker (recommended)
A `docker-compose.yml` file is provided in this repository. You can run it as-is using `docker compose up -d`.

> It may be necessary to configure an up-to-date list of peers if the service fails to start.
### Standalone

Export the required environment variables:
```shell
export QUBIC_NODES_QUBIC_PEER_LIST="5.39.222.64;82.197.173.130;82.197.173.129"
```
You can now start the service:
```shell
./go-qubic-nodes
```

## Available endpoints

### /status
```shell
curl http://127.0.0.1:8080/status
```
```json
{
"max_tick":13692658,
"last_update":1714654658,
"reliable_nodes":[
{
"address":"5.39.222.64",
"peers":[
"194.45.36.121",
"109.230.239.139",
"66.23.193.243",
"5.39.217.105"
],
"last_tick":13692657,
"last_update":1714654657
},
{
"address":"82.197.173.130",
"peers":[
"194.45.36.144",
"66.248.204.30",
"66.23.193.218",
"109.230.239.74"
],
"last_tick":13692658,
"last_update":1714654658
},
{
"address":"82.197.173.129",
"peers":[
"185.130.224.45",
"95.156.231.27",
"82.197.173.130",
"5.39.216.39"
],
"last_tick":13692658,
"last_update":1714654658
}
],
"most_reliable_node":{
"address":"82.197.173.129",
"peers":[
"185.130.224.45",
"95.156.231.27",
"82.197.173.130",
"5.39.216.39"
],
"last_tick":13692658,
"last_update":1714654658
}
}
```

### /max-tick
```shell
curl http://127.0.0.1:8080/max-tick
```
```json
{
"max_tick":13692662
}
```
4 changes: 3 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
services:
qubic-nodes:
image: qubic-nodes
image: ghcr.io/qubic/qubic-nodes:v1.0.2
container_name: qubic-nodes
environment:
QUBIC_NODES_QUBIC_PEER_LIST: "5.39.222.64;82.197.173.130;82.197.173.129"
ports:
- "8080:8080"
1 change: 0 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ const prefix = "QUBIC_NODES"
type Configuration struct {
Qubic struct {
PeerList []string `conf:"default:5.39.222.64;82.197.173.130;82.197.173.129"`
MaxPeers int `conf:"default:50"`
ExchangeTimeout time.Duration `conf:"default:2s"`
MaxTickErrorThreshold uint32 `conf:"default:50"`
ReliableTickRange uint32 `conf:"default:30"`
Expand Down

0 comments on commit f782147

Please sign in to comment.