IDEX Staking Replicator is software that enables the IDEX community to stake IDEX tokens, serve parts of the IDEX production infrastructure, and earn fees for participation. Replicator is an all-new, lightweight staking client featuring lower resource requirements and dramatically improved stability. For complete coverage, motivation, and details of operation, see our most recent post on Replicator Staking.
- To get a Staking Key and get started with Replicator staking, visit the staking page in the IDEX web client. All status and earnings information is now available through the web client.
- For details on implementing an IDEX API consumer that uses Replicators, see the IDEX API documentation.
Replicator replaces the legacy IDEXd staking client. Replicator is available immediately and replaces IDEXd earning staking credits starting on 2020-12-21 00:00 UTC.
- Requirements
- Getting Started
- Managing Replicator
- Recommendations
- Getting Help and Reporting Issues
- License
In order to participate in the IDEX Replicator staking program, you must have a wallet that holds a minimum of 5,000 IDEX. There is no incubation period. Any wallet with 5,000 IDEX or more is immediately eligible.
Replicator is designed to run on a computer or inexpensive VPS that is continually connected to the internet with a stable IP address and inbound connectivity. It requires at minimum:
- 1 GB memory
- 2 GB storage
The least expensive tier of many cloud computing providers meets these requirements.
Staking Replicator is distributed as a Docker image and has very few dependencies. While it should run in any environment where Docker is supported, the following configuration is recommended by IDEX at launch:
- Ubuntu 20.04 LTS
- Docker Engine (Installation Guide)
Docker provides first-rate installation documentation, but we've collected the key steps to get up and running here. Start with a freshly installed copy of Ubuntu 20.04.
Note: Existing IDEXd stakers already have Docker configured. Skip ahead to Start Replicator to get started in under a minute.
Some cloud computing providers, such as Digital Ocean, set up new Ubuntu 20.04 instances with only the root
user
account configured. We recommend running Replicator as a regular user account rather than root
. When you first log in,
run whoami
to check which user you are currently acting as. If the response is root
, follow Digital Ocean's
instructions on adding a user
and adding sudo privileges in order to run Replicator.
Log out and log in to the new, non-root
user account before proceeding.
-
Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
Add the stable Docker repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
Update packages
sudo apt-get update
-
Install the Docker Engine packages
sudo apt-get install docker-ce docker-ce-cli containerd.io
-
Add your user to the
docker
group to avoid permissions issuessudo usermod -aG docker ${USER}
-
Log out and log back in and
docker
commands will be available from the prompt. -
Verify that Docker Engine is installed correctly by running the
hello-world
imagedocker run hello-world
-
Download the Replicator start script
wget "https://raw.githubusercontent.com/idexio/staking-replicator/main/scripts/start-idex-replicator.sh"
-
Enable script permissions
chmod a+x start-idex-replicator.sh
-
Run the start script to get started
./start-idex-replicator.sh
The start script will prompt for a Staking Key, which can be found on the Replicator Staking page.
In order to serve data to IDEX API users, Replicator must be reachable from the public internet. Most home and office connections are not publicly reachable by default, so you may need to take steps like opening up specific ports on your router. Replicator requires public TCP access to port 8081 and has limits on how frequently a node can change IP addresses.
We recommend running Replicator on an always-on, connected machine or a cloud-hosted compute instance.
Replicator is designed to require minimal maintenance once live. All status and earnings information is available on the Replicator Staking page.
Activity and Error logs are available in the idex-staking-replicator/logs
directory.
tail -f idex-staking-replicator/logs/activity.log
Replicator can be taken offline via Docker.
docker stop staking-replicator
Re-running the start-idex-replicator.sh
script will bring Replicator back online.
Replicator includes an automatic update mechanism to keep it up to date without intervention. To manually upgrade, stop and restart Replicator.
Replicator includes minimal configuration options by design, but it is possible to set a custom configuration file.
Create a file idex-staking-replicator/conf/config.env
.
Settings include:
API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
IDEX_STAKING_SERVER_PORT=8081
- Setting an
API_KEY
makes it unnecessary to supply an Staking Key on start. - If port 8081 is unavailable, a custom port may be specified via
IDEX_STAKING_SERVER_PORT
.
Replicator limits the size of the three log files it writes to 50 MB each. No other data is written to disk by Replicator itself.
Follow these recommendations to reclaim disk space lost to common causes.
If you are running Ubuntu (as recommended), automatic kernel updates are likely enabled. These updates leave old kernels
behind in /usr/src/
, which can be cleaned up with sudo apt-get autoremove
. To automate this, set up the following
cron job:
crontab -e
Add line:
0 0 * * * sudo apt-get -y autoremove
This runs the command every day at midnight.
Replicator includes an automatic update mechanism, which can leave behind unused Docker images. Unused Docker images
can be removed by running docker image prune
.
For questions about getting started and help if you're stuck, please reach out to our team on Discord.
If you believe you have identified a bug in Replicator, please file an issue.
IDEX Replicator Client is released under the MIT License.