Getting Started Guide

The purpose of the EOSIO Getting Started Guide is to provide guided instructions to set up your local EOSIO development environment and use the environment to build and deploy a basic Hello World Smart Contract. The Getting Started Guide high-level workflow is illustrated in the following diagram:

EOSIO Getting Started Workflow

The diagram identifies the following two workflows:

  1. Set up local development environment
  2. Build and deploy a basic Hello World smart contract
Note

Before you begin with the getting started workflow, make sure you familiarize yourself with EOSIO Platform and Toolchain, Core Concepts, and some of the Technical Features.

Set Up Local Development Environment

As a developer, begin with setting up your local development environment that involves satisfying system requirements, installing OS-specific EOSIO binaries, and creating test blockchain accounts. Once the local development environment is set up, you can progress to smart contracts development workflow and build your first basic Hello World smart contract.

Note

Installing EOSIO prebuilt binaries is a convenient method for beginners. If you want to try advanced build methods, see Installing from Source.

Build and Deploy Hello World Smart Contract

After your local development environment is fully configured, you are ready to build and deploy your first Hello World Smart Contract on the EOSIO blockchain platform.

Use Pre-configured Web Environment

Optionally, you can use a pre-configured web environment as your local development environment without the need of binary installation. Use a pre-configured web environmennt if you have system constraints. See the following items for more information:

  • EOSIO Quickstart Web IDE: Use the Gitpod pre-configured EOSIO development environment
  • The EOSIO Testnet: Use the EOSIO Testnet as a testing environment to deploy smart contracts and build blockchain applications on EOSIO.

Further Reading

The following documentation resources will help you gain advanced technical knowledge and functional understanding of the EOSIO platform. Additionally, you can explore advanced configuration options available for development environments.

Training and Certification

Developed for EOSIO for Business, these comprehensive courses cover the foundations of EOSIO, smart contract programming, application development and security best practices for integrations. The courses are currently available to all the EOSIO community. Sign up for free access until January 31, 2021.

Protocol Guides

In this section, we describe the base components and protocols used in the EOSIO platform. EOSIO Core provides the basic building blocks for the system layer and because they are not implemented as smart contracts they do not provide the same level of flexibility. Nevertheless, the core implementation is also open source and thus it can be modified as well to suit custom business requirements. Follow this link Protocol Guides to read more about EOSIO Core.

Configuration Guides

The configuration guides section will show you how to configure Nodeos. How Nodeos is configured will depend on your desired usage. Nodeos configuration controls which plugins are used and how those plugins are configured. The plugins are used to specify Nodeos behaviour for specific purposes.

Smart Contracts and blockchain configuration

The EOSIO platform provides a blockchain platform and a key feature of the EOSIO platform is flexibility. Smart Contracts are part of this flexibility. Many features are implemented using smart contracts, and smart contracts can customize blockchain behavior. Some examples are consensus, governance, and resource models. For more information see eosio.contracts and the bios boot sequence tutorial.

Development and Testing

There are several ways to configure a Nodeos environment for development and testing. Which option to use largely depends on what the project goals are. Some practical options are provided below.

Local Single-Node Testnet

This runs a blockchain, with a single node, locally. The local single-node testnet is the simplest blockchain configuration. A local single-node testnet is generally used as a test envronment to get started developing smart contracts.

Local Multi-Node Testnet

A local single node testnet is a great place to start, but a blockchain running on a single node is not much of a blockchain. To run many nodes locally see the guides listed below. Often multi node testnets will be used for advanced development and testing giving a more realistic blockchain environment. Other uses for a a multi node testnet are benchmarking, optimization and experimentation, or to increase your knowledge.

Block Producers

Block producers operate in a distributed and/or decentralised environment. A block producer may run many instances of Nodeos and these may be in one of two modes:

Producing Nodes are configured for block production. They connect to the peer-to-peer network and actively produce new blocks. Loose transactions are also validated and relayed. On mainnet, Producing Nodes only produce blocks if their assigned block producer is part of an active schedule.

Non-Producing Nodes connect to the peer-to-peer network but do not actively produce new blocks; they are useful for acting as proxy nodes, relaying API calls, validating transactions, broadcasting information to other nodes, etc. Non-Producing Nodes are also useful for monitoring the blockchain state.

Plugin Guides

Use plugins to extend, or specialize, the behaviour of nodeos and kleosd. See the Plugins section to learn more.

Core Components

The main components of the EOSIO platform.

  • nodeos : The core service daemon that runs on every EOSIO node.
  • cleos : A command line interface to interact with the blockchain and manage wallets.
  • keosd : A key manager service daemon for storing private keys and signing digital messages.
  • eosio.cdt : Contract Development Toolkit is a suite of tools used to build EOSIO contracts.
  • eosio.contracts : Smart contracts that provide some of the basic functions of the EOSIO blockchain.