This repository is a fork of InjectiveLabs/injective-core, specifically enhanced to include functionality for NATS publishing. It allows the injectived node to publish data streams of transactions, mempool, blocks, and proposed blocks.
-
NATS Publishing: Enhances the
injectivednode to publish details about transactions, mempool, blocks, and proposed blocks via NATS. This feature enables subscribers to receive real-time blockchain data. -
How to Use: To enable the publishing features, you must set the following environment variables before starting the
injectivednode. These variables configure the NATS connection and define the publishing settings:-
NATS URL
NATS_URL=your-nats-url -
NATS NKey
NATS_NKEY=your-nats-nkey -
NATS JWT
NATS_JWT=your-nats-jwt -
Publisher Prefix
PUB_PREFIX=your-publisher-prefix -
Publisher Name
PUB_NAME=your-publisher-name
You can use these environment variables in the
injectivedorcosmovisorservice file. For example:[Unit] Description=Injectived Service After=network.target [Service] User=injective Type=simple Restart=on-failure RestartSec=5s Environment="NATS_URL=your-nats-url" Environment="NATS_NKEY=your-nats-nkey" Environment="NATS_JWT=your-nats-jwt" Environment="PUB_PREFIX=your-publisher-prefix" Environment="PUB_NAME=your-publisher-name" Environment="LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/" Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/injective/go/bin" ExecStart=/home/injective/injectived start [Install] WantedBy=multi-user.target -
To improve node performance and save space, configure the following settings in your app.toml and config.toml files:
app.toml:
# Prune Type
pruning = "custom"
# Prune Strategy
pruning-keep-recent = "100"
pruning-keep-every = "0"
pruning-interval = "10"config.toml:
indexer = "null"
peer_gossip_sleep_duration = "2ms"
persistent_peers = "" # load all peers from https://polkachu.com/live_peers/injective
max_num_outbound_peers = 100Home of the following services:
In order to build from source you’ll need at least Go 1.16+.
# need to clone if you plan to run tests, and use Makefile
$ git clone git@github.com:InjectiveLabs/injective-core.git
$ cd injective-core
$ make install
# or simply do this to fetch modules and build executables
$ go install github.com/InjectiveLabs/injective-core/cmd/...The most convenient way to launch services is by running the setup script:
$ ./setup.shThen run an instance of the injectived node.
$ ./injectived.shVoila! You have now successfully setup a full node on the Injective Chain.
$ cd docs && yarn && yarn run serveFirst, ensure that the Enable and Swagger values are true in APIConfig set in cmd/injectived/config/config.go.
Then simply run the following command to auto-generate the Swagger UI docs.
$ make proto-swagger-genThen when you start the Injective Daemon, simply navigate to http://localhost:10337/swagger/.
$ make genThen when you start the Injective Daemon, simply navigate to http://localhost:10337/swagger/.
To run all unit tests:
$ go test ./injective-chain/...
