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:
The diagram identifies the following two workflows:
- Set up local development environment
- Build and deploy a basic Hello World smart contract
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.
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.