Learning EOSIO development (Telos, EOS and other blockchains)
This article is intended for software developers and technical professionals that want to learn how EOSIO blockchain networks work and how to develop applications using it. This knowledge can be used to deploy applications on the public Telos and EOS blockchains (built on EOSIO), other deployed public or private networks, or deploy your own EOSIO network.
EOSIO is a blockchain software that can be used to deploy blockchain networks that support general, scalable, decentralized applications through smart contracts. It can be used to create public or private networks that work at scale and have important characteristics such as free transactions and upgradeable contracts that make the user and developer experience easier.
Telos and EOS are two of the many public networks run using EOSIO software.
Block One is the company that writes the EOSIO software.
This is a collection of learning resources for beginners to experienced EOSIO developers that should suit any style of learning. Please comment below any new resources you have found useful or send them to me here and I will add it to the doc.
Books
Learn EOS Development, by Christopher Micheal (use code “jackandtheblockstalk” for 25% discount): I started with this book and it is a well-organized walkthrough to understand smart contract development.
Official developer resources
Developer portal: This is the official documentation that explains the architecture of EOSIO and how it can be used. It is an excellent place to start with using EOSIO. While it does a great job of explaining how to use EOSIO, it has some basics on how EOSIO works under the hood but does not go in detail.
The smart contract API documentation contains all the available libraries and classes that can be used while writing EOSIO smart contracts. This is well written and an absolutely essential tool for all EOSIO developers.
eosjs, eos-java and eosio-swift are the three official SDKs to use for connecting to an EOSIO blockchain.
Workshops
Free EOSIO developer workshop with Jack Tanner (that’s me!): This is a free, full-day, in-person workshop with theory and practical elements supported by mentors. The workshop teaches how to develop EOSIO smart contract. It also teaches how the EOSIO protocol works and architecture which is not knowledge that you can easily find elsewhere. The course uses a web IDE for development which takes away the hassle for developers to do anything with command lines and get straight into contract writing.
YOU CAN NOW WATCH THE FULL WORKSHOP ON YOUTUBE HERE!
Note: the video quality could be better
Online courses
EOSIO Webinars by Block One: These are a selection of 1hr webinars offered by Block One that teach different components of EOSIO. Timeslots are at discrete times and require people to sign up beforehand.
EOSIO developer workshop by Everything EOS: This is an online course taught by Peter Keay going through the development of the Elemental Battles dapp (the official tutorial by Block One) including development of the front-end React app. The 7.5hr course costs about $50. This is available here through Udemy.
EOS Programming 101 by Ivan on Tech: You can access the course with a monthly subscription to Ivan on Tech academy, starting at $19/month which gives you access to more than just the EOS course. This course goes through the commands to run an EOSIO node and how to develop and deploy contracts to the network.
Introduction to EOSIO for Developers by B9 Lab: This free online course takes approximately 10–15hrs. It covers basic EOSIO concepts, how to deploy a network and write and deploy smart contracts. It also teaches writing a front-end application using React.
Technical support
The EOS stack exchange and a google search always do well when facing issues with using nodeos and smart contract development.
The EOS Developers and the Telos Developers telegram channel are also both ok to find technical answers. Check stackexchange / google search before going here.
If you find out an answer, and it wasn’t on stackexchange please consider adding a report there for others. Sharing is caring.
Articles and blogs
The official Block One news page is handy. EOSIO is under rapid development and there are technical and non-technical announcements for all application developers. You can add your email to be notified of any new news.
The EOS Canada blog has some really good articles that explain different EOSIO concepts at a very technical level.
Blockgeeks have written several articles to explain the EOS blockchain. They are fairly generic and give a good starting overview.
EOS Writer is an aggregation of any articles written about EOSIO chains and software. It contains mostly non-technical articles but is a nice place to watch for news.
EOS Smart-Contract Development gives a good high level overview of the technical capacity of EOSIO blockchains.
Security best practices articles
- EOS Smart Contract Security Best Practices
- EOS Smart Contracts Security Audit — A Comprehensive Guide
Tutorials
Elemental Battles is the official tutorial provided by Block One, and takes developers through setting up a blockchain node, to writing a smart contract and React app.
Community resources
Scatter docs explain how to use one of the most popular EOSIO transaction wallets and key management solutions. Many projects use this as they start of.
Liquid Apps docs explain how to use their scalability and usability solutions to assist decentralized applications. Liquid apps brings quite a few extensions to the basic EOSIO network which can be quite handy.
Dfuse is my favorite APIs to develop EOSIO applications on, and has recently gone open source! It has an improved interface to interact with the blockchain, including a very powerful transaction search engine and event listeners via websockets for interactive websites. There are a number of other general-purpose APIs available to help applications, mostly all looking at how to search transaction history, explained in this article.
eoslime is a handy javascript framework to manage contracts, including a very stable unit test suite. This is what I use for unit testing. This article explains contract unit testing in more detail.
IDEs
EOS Studio is a community web IDE with a beautiful interface and key management so that you can start writing contracts immediately. This can also be run locally on Mac, Windows and Linux. See their Tutorials to get started. This is often a good place to prototype smart contracts. Once the functionality is stable, I switch to a C++ IDE for final touches and then build a test suite using eoslime.
EOSIO Quickstart Web IDE is Block One’s officially supported in-browser IDE environments to help devs start with smart contracts quickly. Developers need to clone the reposity and then start a gitput app which will launch their smart contract. All work done using this will be public on your github repository.
Zeus IDE offers a similar experience to the EOSIO Quickstart IDE, but it has all the tools for Liquid App built into it.
Trails is the voting and governance API for the Telos blockchain.
Any popular C++ IDE, such as CLion or Visual C++ can be used to write smart contracts and unit tests.
Testing
hthea
Tools and comparisons
EOS Authority has built over 70 tools that analyse the data from public EOSIO blockchains and can be really insightful. These range from price alerts, to voter analysis and more for investors to developers to use.
EOS Aloha has also built a wide variety of analytics tools to analyze EOSIO public chains.
You can also check out Dapp Radar, State of the Dapp or Dapp.com for dapp on-chain metrics and rankings. You can get some nice comparative metrics from Messari (look at the on-chain columns), Blocktivity and Coinmetrics.
Ecosystem and more tools
Get ready to be overwhelmed, these links tell you everything!
InEOS has a great list of the different deployed public blockchain networks and what they do.
All Things EOS has an extensive list of projects, tools, resources and all other things EOS related!
This is a large infographic, pdf, spreadsheet and/or list of projects, tools and other stuff in the EOS ecosystem. Check it out!
EOS Map is a visual map of projects in the ecosystem as well!
If you find this article useful please give it a clap. And let me know if there are any other useful things EOSIO developers should be aware of.