What Will I Learn?
EOSIO - Tutorial 1
Setting up a EOSIO for smart contract development.
- You will learn how to download and build EOSIO
- You will learn how to install EOSIO
- You will learn how to create genesis.json
- You will learn how to configure nodeos
- You will learn how to run nodeos
- You will learn how to create the default wallet
- You will learn how to check wallets and keys
- You will learn how to set BIOS contract
- You will learn how to create keys
- You will learn how to import key to the wallet
- You will learn how to unlock wallet
- You will learn how to create an account
Requirements
- Linux OS
- 4 GB RAM
Difficulty
- Basic
Tutorial Contents
In this tutorial shows setting up EOSIO node and basics of using EOSIO.
Tested on:
Linux Mint 18.3 Sylvia x86_64
Kernel: 4.13.0-38-generic
Memory: 3873MiB

1. Download and build all packages
git clone https://github.com/EOSIO/eos --recursive
cd eos
./eosio_build.sh
If you get... ``` Your system must have 7 or more Gigabytes of physical memory installed. ```
Not enough RAM. This worked for me. ``` edit the script in eos/scripts/eosio_build_ubuntu.sh line 27 ' if ["${MEM_MEG}" -lt 7000] ' --> ' if ["${MEM_MEG}" -lt 3700]' ``` ##### 2. Install ``` cd build sudo make install ``` ##### 3. Create genesis file ``` cd ~/Desktop/eos nodeos --extract-genesis-json genesis.json ``` ##### 4. Nodeos first run ``` nodeos -e -p eosio --genesis-json genesis.json --delete-all-blocks --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin ``` Congrats! EOS is hopefully running :D
Press Ctrl + C to stop nodeos
5. Configure
Edit and save ~/.local/share/eosio/nodeos/config/config.ini
...
enable-stale-production = true
...
producer-name = eosio
...
plugin = eosio::producer_plugin
plugin = eosio::wallet_api_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::http_plugin
plugin = eosio::history_api_plugin
6. Start nodeos
cd ~/Desktop/eos
nodeos
7. Create default wallet
cleos wallet create
...result:
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5Hvj7S5gEB5afuV42KghUv8QQNQm16zB6sa1SP3qAHj1pqjSRE3"
Wallets are saved in ~/eosio-wallet/
Open ~/.local/share/eosio/nodeos/config/config.ini and find this line
signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
Import (owner) key into default wallet
cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
8. How to check wallets and keys
cleos wallet list keys
...result:
Wallets:
[
"default *"
]
[
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
]
9. Set BIOS contract
cd ~/Desktop/eos
cleos set contract eosio build/contracts/eosio.bios -p eosio@active
10. How to create key
cleos create key
cleos create key
... result:
Private key: 5JDRyqykySoRnfR5gJ3K2MbkyUBonNW43grRfab5KmDkv5Vr1vB
Public key: EOS6e8Bv7F3wDDS6JnwPyAoeC9Wft2V6KZgoEUjauAMru1KtR6Ehp
Private key: 5Khx1HhkqBsx44nSi41dj9Bfz8isCUVb8TYogTm2EwU4shaGkSY
Public key: EOS6vZh8hdVY22YjZvunnmvobjWsXL1yx6qBzRxn2S6Fr88ewcUPc
How to:
11. Create (named) wallet for user..1,
12. Import created keys (owner key and active key),
13. Unlock default wallet,
14. Create new account with default account (eosio)
cleos wallet create -n user01-wallet01
...result:
Creating wallet: user01-wallet01
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JtUqnULEFtSrY8eseNibftTvUY9cYMbtNzLSbFZD7bnLE6rJUs"
cleos wallet import -n user01-wallet01 5JDRyqykySoRnfR5gJ3K2MbkyUBonNW43grRfab5KmDkv5Vr1vB
cleos wallet import -n user01-wallet01 5Khx1HhkqBsx44nSi41dj9Bfz8isCUVb8TYogTm2EwU4shaGkSY
...result:
imported private key for: EOS6e8Bv7F3wDDS6JnwPyAoeC9Wft2V6KZgoEUjauAMru1KtR6Ehp
imported private key for: EOS6vZh8hdVY22YjZvunnmvobjWsXL1yx6qBzRxn2S6Fr88ewcUPc
cleos wallet list keys
...result:
Wallets:
[
"default",
"user01-wallet01 *"
]
[
"EOS6e8Bv7F3wDDS6JnwPyAoeC9Wft2V6KZgoEUjauAMru1KtR6Ehp",
"EOS6vZh8hdVY22YjZvunnmvobjWsXL1yx6qBzRxn2S6Fr88ewcUPc"
]
cleos wallet unlock
//password: PW5Hvj7S5gEB5afuV42KghUv8QQNQm16zB6sa1SP3qAHj1pqjSRE3
...result:
password: Unlocked: default
cleos create account eosio user..1 EOS6e8Bv7F3wDDS6JnwPyAoeC9Wft2V6KZgoEUjauAMru1KtR6Ehp EOS6vZh8hdVY22YjZvunnmvobjWsXL1yx6qBzRxn2S6Fr88ewcUPc
...result:
executed transaction: 5ecd8bcab9ec04933928a990c068d7f0148e51029960f16226e3467bf5006181 200 bytes 27350 us
# eosio <= eosio::newaccount {"creator":"eosio","name":"user..1","owner":{"threshold":1,"keys": [{"key":"EOS6e8Bv7F3wDDS6JnwPyAoeC...
warning: transaction executed locally, but may not be confirmed by the network yet
15. How to delete wallets and all blocks if necessary
Delete genesis.json file in ~/Desktop/eos
cleos wallet stop
nodeos --genesis-json genesis.json --delete-all-blocks
Delete wallets in ~/eosio-wallet
Curriculum
This is first tutorial