Base publisher

Establishes connection with Base blockchain node and publishes blockchain data to Synternet.
Prerequisits
- Go compiler (v1.21).
- Base node with accessible IPC.
- Publishing credentials. Learn more on the Synternet Portal.
Usage
make dep
make build
./base-publisher --ipc-path /var/lib/base/data/geth.ipc --prefix synternet
Environment variables and flags
Environment variables can be passed to docker container. Flags can be passed as executable arguments.
| Environment variable |
Flag |
Description |
| IPC_PATH |
ipc-path |
Base node IPC path, e.g.: /tmp/geth.ipc |
| NATS_URLS |
nats-urls |
(optional) NATS connection URLs to Synternet brokers, e.g.: nats://e.f.g.h. URL to broker. Default: testnet. |
| NATS_NKEY |
nats-nkey |
NATS user NKEY, e.g.: SU..SI (58 chars). See here. |
| NATS_JWT |
nats-jwt |
NATS user JWT, e.g.: eyJ.... See here. |
| PUBLISHER_PREFIX |
publisher-prefix |
Stream prefix, usually your organisation, e.g.: synternet prefix results in synternet.substrate.<tx,log-even,header,...> stream subjects. Stream prefix should be same as registered wallet alias. |
| PUBLISHER_NAME |
publisher-name |
(optional) Stream publisher infix, e.g.: foo infix results in prefix.foo.<tx,log-even,header,...> stream subjects. Stream publisher infix should be same as registered publisher alias. Default: base. |
Auth with NATS credentials
Synternet uses NATS authentication model. NATS has an accounts level with users belonging to those accounts. To publish user level NKEY and JWT have to be used, which are generated from account.
- Acquire account level NKEY (in Synternet a.k.a.
access token). See here.
- Generate user level
NATS_NKEY, NATS_JWT from account level NKEY. Can be generated using user generator.
- Pass generated
NATS_NKEY and NATS_JWT.
Docker
From source
docker build -t base-publisher -f docker/Dockerfile .
Prebuilt image
docker run --rm --env-file=.env -v /tmp/base.ipc:/tmp/base.ipc ghcr.io/synternet/base-publisher:latest