EOSIO comes with a number of programs. The primary ones are:
- nodeos: server-side blockchain node component
- cleos: command line interface to interact with the blockchain and to manage wallets
- keosd: component that manages EOSIO wallets
The basic relationship between these components is illustrated in the following diagram.
2. Getting the Code
To download all of the code, clone the
eos repository and its submodules.
git clone https://github.com/EOSIO/eos --recursive
3. Building EOSIO
There is an automated build script that can install all dependencies and build EOSIO. The build places content in the
eos/build folder. The executables can be found in subfolders within the
3.1. System requirements
- 8GB RAM free required
- 20GB Disk free required
3.2. Run the build script
3.3. Build validation
Optionally, a set of tests can be run against your build to perform some basic validation. To run the test suite after building, start
mongod and the run
/usr/local/bin/mongod -f /usr/local/etc/mongod.conf &
3.4. Install the executables
sudo make install
4. Creating and Launching a Single Node Testnet
After successfully building the project, the
nodeos binary should be present in the
nodeos can be run directly from the
build folder using
programs/nodeos/nodeos, or you can
cd build/programs/nodeos to change into the folder and run the
nodeoscommand from there.
You can start your own single-node blockchain with this single command:
./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin
nodeos you should get log messages similar to below. It means the blocks are successfully produced.
At this point,
nodeos is running with a single producer,
eosio. You can press
ctr + c to stop producing.
4.1. Advanced steps
nodeos uses a custom configuration folder. The location of this folder is determined by your system.
For Mac OS:
nodeos will need a properly configured
config.ini file in order to do meaningful work. On startup,
nodeos looks in the config folder for
config.ini. If one is not found, a default
config.ini file is created. If you do not already have a
config.ini file ready to use, run
nodeos and then close it immediately with Ctrl-C. A default configuration (
config.ini) will have been created in the config folder. Edit the
config.ini file, adding/updating the following settings to the defaults already in place:
# Load the testnet genesis state, which creates some initial block producers with the default key. E.g. genesis-json = "/Users/LiuYang/Library/Application Support/eosio/nodeos/config/genesis.json"
genesis-json = /path/to/eos/source/genesis.json
# Enable production on a stale chain, since a single-node test chain is pretty much always stale
enable-stale-production = true
# Enable block production with the testnet producers
producer-name = eosio
# Load the block producer plugin, so you can produce blocks
plugin = eosio::producer_plugin
# Wallet plugin
plugin = eosio::wallet_api_plugin
# As well as API and HTTP plugins
plugin = eosio::chain_api_plugin
plugin = eosio::http_plugin
# This will be used by the validation step below, to view account history
plugin = eosio::account_history_api_plugin
Now it should be possible to run
/eos/programs folder or
eos/build/programs folder, and see it begin producing blocks.
We hope you have learnt something today or found the solution you have been looking for. GenerEOS & Blockgenic, strive to ensure that we bring you the most credible, up-to-date and user-friendly information within the EOS Network. If this guide was helpful, please consider voting for aus1genereos & blockgenicbp so that we can continue to keep adding value for the community.