Run a Transmitter Node

Overview

Transmitters are a type of Agents operating machines such as General purpose Instances, responsible for compiling and aggregating data from various sources to the Entangle Blockchain.

Consensus among Transmitters enhances the security and resilience of Entangle through a Delegated Proof-of-Stake mechanism, where dishonest behavior is deterred through slashing mechanisms.

Transmitters may aggregate data from a variety of sources, including APIs and RPC Endpoints of Blockchains which Entangle has integrated:

  • Ethereum

  • BNB Smart Chain

  • Optimism

  • Avalanche

  • Fantom

  • Arbitrum

  • Polygon

  • Mantle

  • SEI Network

  • MultiVersX

Instructions

Please follow the instructions carefully to ensure a smooth onboarding process and seamless updates to codebases.

Hardware requirements

Mainnet

CPU

2 or more physical CPU cores

RAM

4GB+

Storage

100GB+

SSD Network

100mbps+

OS

Ubuntu 22.04

Testnet

CPU

2 or more physical CPU cores

RAM

4GB+

Storage

50GB+

SSD Network

10mbps+

OS

Ubuntu 22.04

Keeper Configuration File

Infrastructure Participants wanting to run Transmitters should download and install the Keeper Configuration file, which will be described below through a step-by-step process.

Please be aware that within this context, 'Keepers' and 'Transmitters' refer to the same thing.

The Keeper Configuration File is written in YAML format and can be found on GitHub, containing the following:

  • Contracts and events that the application subscribes to in specific networks.

  • Defines a handler method.

  • Target networks where transactions for events will be sent. If the target network is not specified, transactions will be sent to the Circuit contracts on all supported networks - their full list is also specified in the configuration file.

By default, a transmitter is configured to work with all supported networks and protocol contracts. If necessary, a transmitter can be configured to listen to events only on certain networks.

Step-by-Step Guide:

  1. Install Geth & Docker

  • Download Geth from the official Ethereum website according to your operating system.

  • Use the Geth account new command to create a new key in the Keystore.

  • Run the transmitter in a Docker container

  1. Create a new account in the Geth Keystore using a fairly complex password (keep it safe)

  • Geth account new

  • Public address of the key: 0x4D4BfDB964968077D0eF2D9CC618C50C3C7dEb48

  • Path of the secret key file: /Users/john/Library/Ethereum/keystore/UTC--2023-06-21T06-12-44.354847000Z--4d4bfdb964968077d0ef2d9cc618c50c3c7deb48

  • Keystore path: /Users/john/Library/Ethereum/keystore/

  • File name: UTC--2023-06-21T06-12-44.354847000Z-4d4bfdb964968077d0ef2d9cc618c50c3c7deb48

  • The given password, keystore path, and filename will be required later.

  1. Receive $NGL Tokens and stake them.

  2. Download the docker image of the Entangle Keeper application.

docker pull <repository_url/entangle_keeper:latest>
  1. Run the container with the following parameters

docker run -p <port>:<port> -v <path/to/keystore>:/app/shared/keystore/ <image_id> "<keeper_keystore_name>" "<keeper_keystore_password>"

Example:

docker run -p 5888:5888 -v ./keystore/:/app/keystore/ 5c1e5f2f5333

"keeperKey" "incred1bly-secure-pa55word"

  • This transmitter configuration works with all protocol contracts on all supported networks.

  • To run a Transmitter that works only with certain protocol networks, you can download the necessary configuration file in our repository <repository_url/keeper_configs> or change the basic configuration file according to your requirements <repository_url/keeper_configs/config.yaml>.

  • You can connect the modified configuration file as follows:

docker run -p <port>:<port> -v ./keystore/:/app/keystore/ -v ./custom_config.yaml/:/app/keeper/config.yaml <image_id> "<keeper_keystore_name>" "<keeper_keystore_password>"

If you encounter any issues or require assistance, do not hesitate to reach out to the Entangle team or the community for support via the Entangle Discord channel.

Last updated