Minimum System Requirements
There is a minimum requirement on RAM and disk space for the nodeos application. Running an API node that contains information for the base system contracts requires a reasonably powerful machine. It's important to note that the nodeos application is a single threaded process, so CPU clock speed is an important factor.
As the chain is constantly growing, configuration is important - certain dApp developers may only want to index their own smart contract actions, this can be achieved with the filter-on attribute in the config.ini file.
|RAM||16GB minimum, 32GB recommended|
|Disk (EOS Install)||20GB Free|
|Disk (Data Directory)||200GB+ Free|
|CPU||High Clock Speed|
The first thing you need to do is to install Ansible on your control machine (the local laptop/server that you will use to deploy to your nodes). You can find more information about that in the Anisble Docs.
Once you have Ansible installed on your control machine, check out our mainnet Ansible repo on Github.
# Install using brew @ https://brew.sh/ brew install ansible # Check out the code from github git clone https://github.com/BlockMatrixNetwork/eos-mainnet.git # You're good to go! cd eos-mainnet
# Update the inventory for your server ip (nano ftw) nano inventory # Update the runtime variables for your environment nano group_vars/mainnet.yml # One liner install for mainnet ansible-playbook install.yml
Install, Configure and Sync
Before running for the first time, update the
inventory file with your server IP and modify the
group_vars to suit your own environment (do not run EOS as the root user!).
This single playbook will build EOS, configure a node for mainnet, auto download the latest blocks archive and kick off the replay process.
Install and Configure Separately
You may not want to combine all 3 stages in a single run, therefore it is possible to run each stage separately.
Each stage can be run multiple times without compromising what has been previously installed. Therefore it is easy to upgrade to new versions of EOS or to update the existing node configuration.
# Install or upgrade EOS ansible-playbook eos.yml # Install mainnet configuration ansible-playbook mainnet.yml # Only update the node config.ini ansible-playbook mainnet.yml --tags=config
# Stop the nodeos process ansible-playbook management.yml -e "job=stop" # Restart the nodeos process ansible-playbook management.yml -e "job=restart" # Download a fresh blocks archive and hard replay ansible-playbook management.yml -e "job=replay"
There is a management playbook which helps you perform frequent tasks such as restarting or stopping the
There is also a replay command which will automatically fetch the latest blocks archive and kick off the syncing process.