proba1 avatar

Getting Started with EOSIO - Tutorial 1

proba1

Published: 15 Jul 2018 › Updated: 15 Jul 2018Getting Started with EOSIO - Tutorial 1

Getting Started with EOSIO - Tutorial 1

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

eostuts 24.png

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

Proof of Work Done

https://github.com/blws/eos-tut-1

Leave Getting Started with EOSIO - Tutorial 1 to:

Written by

Freelancer | Programmer | Web Developer | Consultant | EOS Enthusiast

Read more #utopian-io posts


Best Posts From proba1

We have not curated any of proba1's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From proba1