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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
Use plugins to extend, or specialize, the behaviour of nodeos and kleosd. See the Plugins section to learn more.
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.