Learning Path Outline

Introduction

Welcome to the educational center for Komodo technology. This section provides a descriptive outline for new developers in the Komodo ecosystem.

The content first familiarizes the developer with basic blockchain principles, and then narrows down on principles that are unique to Komodo.

Once the developer is comfortable on a conceptual level, the content leads the developer into the process of utilizing the Komodo software itself in a development environment.

Using Komodo software is about as difficult as using any other programming framework. The developer needs to first understand how the software functions on a conceptual level, and then the developer learns the vocabulary necessary to integrate Komodo software into their personal creative endeavors.

This process can take anywhere from a single full day to a few weeks, depending upon the skill level of the developer. Each step of the journey provides a time estimate based on a normal developer that has a few years' experience in a mainstream programming language.

A Description of Our Intended Audience

As mentioned in the Documentation Orientation section, this website is intended for readers who are already familiar with a mainstream programming language.

Now, we divide readers further into two categories.

The Normal Komodo Developer

The first is a developer who intends to utilize Komodo technology only as it is provided to them. This is the most common type of developer we expect in the Komodo ecosystem.

This developer likely intends to utilize Komodo software to release a blockchain product that either stands alone, or compliments another software product the developer is creating.

For example, this developer could be involved with the creation of a blockchain-based asset for a business they are building. This developer expects an audience to purchase and trade these assets, and the audience may utilize Komodo's white-label software for asset management.

As another example, this type of developer could be building software for a web application that integrates with blockchain technology. The developer could be utilizing Antara Modules, such as Oracles, to securely record data that is relevant to or even created by their audience. Once the data is recorded, the developer could display this information on their website, for simple gameplay enhancements or data-driven storytelling.

The Advanced Komodo Developer

The advanced Komodo developer intends both to use the Komodo software as it is provided to them, and also to add in their own customized functionality beyond the scope of the normal software. This developer is highly skilled in a mainstream programming language, such as C/C++, and is prepared to thoroughly understand and manipulate blockchain software.

For example, this developer may intend to build customized Antara Modules to add to the consensus mechanism of their Smart Chain. These customized modules could create unique and fully playable blockchain-based games of a complexity level similar to this Komodo-based Roguelike game, or this Komodo-based version of Sudoku.

How Each Type of Developer Should Approach the Educational Outlines

Both types of developers should begin at the beginning.

The Normal Developer should proceed until they reach the content with a difficulty level labeled Advanced and then stop, while the Advanced Developer there should proceed.

We recommend that developers complete steps with a priority label of Recommended. There are also a few sections labeled Optional that may be skipped, although the developer who completes them will, hopefully, find them worth the while as these sections contain short cuts and other recommended best practices.

Step 0: Install Komodo Software

Priority: Recommended

Difficulty: Normal

Time: 10 Minutes


Access to Komodo software allows the developer to immediately begin learning through direct experimentation.

We recommend that all developers install Komodo software not by using pre-built binaries, but rather by installing and compiling from source code.

This allows the developer to later have instant access to Komodo security patches, feature enhancements, and upgrades.

Link to Komodo Source Code Installation Methods

Link to AtomicDEX Source Code Installation Methods

Step 1: Reach Out to Our Community on Discord

Priority: Recommended

Difficulty: Normal

Time: 5 Minutes


Discovering Komodo is best accomplished with a friend.

Komodo utilizes a third-party chat service called Discord.

Reach out to us on Discord at this link.

Once you are logged in to the Komodo Discord server, you will see a list of channels on the left side of your browser. All channels begin with a # hashtag.

Say hello in channels such as #arrivals, #start-here, or #introductions.

The #support channel is a good place to ask for basic support with Komodo software.

To find fellow developers, head to the #dev-general channel. All channels that begin with dev are created for developers.

We look forward to meeting you there!

Step 2: Begin a Conceptual Understanding of Komodo's Software

Priority: Recommended

Difficulty: Normal

Time: 10 Minutes


With the Komodo software installed and a connection made to our community, you are prepared to begin learning about Komodo on a conceptual level.

These conceptual concepts must be grasped first, before attempting to manipulate blockchain assets and software. The concepts help to orient you in your development process.

Platform Overview

The Platform Overview section provides the broadest conceptual understanding of the Komodo Platform.

Link to Platform Overview.

Product Introductions

The Production Introductions section contains simplified introductions to Komodo software products and their architecture.

Link to Product Introductions

Doc Orientation

The Doc Orientation section gives the reader an understanding of the nature of this documentation website.

Doc Orientation

Step 3: Read the Core Technology Discussions Section

Priority: Recommended

Difficulty: Normal

Time: 1 - 8 Hours


The Core Technology Discussions section provides a thorough explanation of blockchain technology and Komodo. The principles explained herein are crucial in later stages.

Introduction

The Introduction section presents a broad overview of the nature of the Komodo ecosystem and the philosophy and goals that drive this community.

Link to Introduction Section

Delayed Proof of Work

The Delayed Proof of Work section explains to the reader the fundamental aspects of blockchain technology that apply to members of the Komodo ecosystem. The primary aspects that a developer should understand here are the value of the consensus mechanism and the nature of Komodo notarization.

Link to Delayed Proof of Work Section

Creating and Distributing a New Komodo Smart Chain

This section helps the reader to understand the basic process an entrepreneur and developer goes through in releasing a new blockchain-based product. This can be called a "Decentralized Initial Coin Offering," or dICO for brevity.

This also helps the reader to understand how Komodo uses runtime forks to allow each Komodo developer to create their own blockchain that can be connected to the rest of the ecosystem.

Link to Creating and Distributing a New Komodo Smart Chain Section

The Antara Framework

The Antara Framework section explains to the reader the basic concepts of the Antara Framework. This framework is a key aspect of the Komodo development process. The framework provides functionality that can be compared to "smart contracts" found on other blockchain platforms.

Link to Antara Framework Section

AtomicDEX and Atomic Swaps

As a developer gains understanding of blockchain technology, and as your audience grows, you will likely seek to make atomic swaps available to your users. The AtomicDEX software is our signature method for conducting atomic swaps.

This section helps the reader to understand why atomic swaps are a key to the future of cryptocurrency trading and how they work.

Link to AtomicDEX and Atomic Swaps Section

Miscellaneous

The Miscellaneous section explains a few leftover concepts that we recommend the reader understand. For example, a developer will no doubt encounter a "Utxo," or the developer may be curious about privacy on a Komodo Smart Chain, and this section provides preparation.

Link to Miscellaneous Section

Step 4: Complete the Beginner Series in the Antara Tutorials Section

Priority: Recommended

Difficulty: Normal

Time: 1 Hour


The Beginner Series tutorials provide the reader with an easy pathway into the process of using Komodo technology.

Many of the technical aspects of using Komodo software are simplified here, to allow you to familiarize yourself with the nature of blockchain commands and responses without having to encounter everything all at once.

As a part of this tutorial, you will download a separate piece of software (a Docker-based image) in which you will enter your first commands.

Towards the end of the series, we then walk you through the process of interacting with Komodo Smart Chains in the terminal.

Link to Beginner Series Tutorial - Part 0 - Preparation

Step 5: Familiarize Yourself with Smart Chain API Basics

Priority: Recommended

Difficulty: Normal

Time: < 1 Hour


Having completed the Beginner Series, the reader is now prepared to use the terminal more frequently while interacting with Komodo Smart Chains.

The Smart Chain API Basics tutorial walks the reader through many of the common commands and Remote Procedure Calls (RPCs) and assists the reader in becoming comfortable in the Komodo environment.

Link to Smart Chain API Basics Tutorial

Step 6: Enhance Your Development Environment and Experience

Priority: Optional

Difficulty: Normal

Time: 1 - 5 Hours


At this point, the Normal Developer should be generally comfortable with the basic concepts of utilizing the default Komodo Smart Chain software.

The following tutorials are optional, but we still recommend that the developer explore the concepts contained herein. You may find short cuts and solutions that will help you avoid common pitfalls in the development process.

Basic Environment Setup for Linux VPS

Many, if not most, developers in the Komodo ecosystem use a Linux-based Virtual Private Server (VPS) to build software. Working on a VPS simplifies many aspects of the development process, as the VPS grants the developer a disposable and rapidly customizable environment for troubleshooting.

Link to Basic Environment Setup for Linux

Creating Komodo Smart Chains

Up to this point in the outline, the developer has either relied on tutorial software to provide a Smart Chain, or the developer has relied on a regtest chain.

Now, it is time to try creating your own Smart Chain.

Link to Creating a Default Smart Chain

Creating a Smart Chain on a Single Node

Sometimes in the development process, the developer may find convenience in having a Smart Chain running on a single node. This is not the way that blockchain software is intended to function, but single-node blockchains are useful, nonetheless.

Link to Creating a Smart Chain on a Single Node

Running Komodo Software in Debug Mode

Debug Mode allows a developer to access the last lines of code executed by the daemon before the software crashes.

A Normal Developer will likely only use this when communicating with a support agent, in the unlikely event of a malfunction in the software. An Advanced Developer, on the other hand, may use Debug Mode frequently.

Link to Running Komodo Software in Debug Mode

Updating Smart Chain Software From Source Code

As the developer installs their software from source code, updating frequently is easy and recommended. Read the following section to become familiarized.

Link to Updating Smart Chain Software From Source Code

Ecosystem Launch Parameters

The developer is likely to encounter an opportunity to interact with members of another Smart Chain community in the Komodo ecosystem.

At some future point, you may also be interested in having your own Smart Chain added to this list by purchasing Komodo's dPoW security services.

The list of launch parameters for all Smart Chains supported by the Komodo notary nodes can be found here.

Link to Ecosystem Launch Parameters

Learn How to Manually Delete Blockchain Data

Sometimes, a developer will need to delete their synced blockchain data and re-sync with the network. The following section teaches the safe way to conduct this process.

Link to Smart Chain Maintenance Section

Common Runtime Parameters

As Komodo Smart Chain software is based on the Bitcoin protocol, we inherit many runtime parameters that are useful in creating a secure and efficient blockchain network.

We recommend that the developer search through our abbreviated list of popular runtime parameters and experiment with one or two, to gain a conceptual understanding. This can help to expand your growing awareness of the potential of blockchain technology and how it is superior to fiat-based currency systems.

Link to Common Runtime Parameters

Step 7: Experiment with Antara Customizations

Priority: Recommended

Difficulty: Normal

Time: 20 - 60 Minutes


The most basic aspect of Komodo's Antara Framework is the ability to customize your Smart Chain. These customizations are provided by Komodo as enhancements to the default Bitcoin/Zcash protocol.

We recommend that you scan through the list of enhancements, read the basic descriptions, and experiment with one or two that interest you.

Link to Antara Customizations

Step 8: Read the Overview of Antara Modules - Part I

Priority: Recommended

Difficulty: Normal

Time: 30 Minutes


Antara Modules are where the power of the Komodo Smart Chain and the Antara Framework begin to come into full display. Antara Modules allow the developer to expand blockchain potential far beyond the limits by which many other blockchain ecosystems are bound.

The Overview Part I provides a more thorough discussion about how the framework overcomes many problems faced by the blockchain industry.

Link to Overview of Antara Modules - Part I

Step 9: Read the Overview of Antara Modules - Part II

Priority: Recommended

Difficulty: Normal

Time: 30 Minutes


Part II of this discussion delves more deeply into the underlying methods by which Antara allows developers to solve problems.

Link to Overview of Antara Modules - Part II

Step 10: Understand Antara Addresses

Priority: Recommended

Difficulty: Normal

Time: 5 Minutes


At this point, the developer is familiar with common blockchain addresses.

However, Antara requires the user to manage additional addresses for Antara-based currency. The passphrase for these addresses can all be the same, but the public address will not be.

These addresses keep funds separate between different modules on a Smart Chain, and assist in maintaining token scarcity, among other uses.

Understanding Antara Addresses

Step 11: Experiment With the Default Heir Antara Module

Priority: Recommended

Difficult: Normal

Time: 15 Minutes


A simple application of the Antara Framework is the Heir Antara Module. This simple module allows a user to designate an inheritor of their funds, should the user become inactive on a Smart Chain.

Read the introductory section to gain a more thorough understanding, and then try executing each command found in the Heir Module Flow section.

The Heir Antara Module is active on the MORTY Smart Chain that serves as a test chain in the Komodo ecosystem.

./komodod -pubkey=$pubkey -ac_name=MORTY -ac_supply=90000000000 -ac_reward=100000000 -ac_cc=3 -addnode=138.201.136.145 &
.

Funds are freely available on this chain. Use the following faucetget RPC to tap the community faucet and receive 0.1 coins. This should be enough for the Heir Module Flow experiment.

./komodo -ac_name=MORTY faucetget

Copy the returned hex value and broadcast it using the sendrawtransaction RPC.

Link to Heir Module Introduction

Link to Heir Module Flow

Step 12: Experiment with the Tokens Antara Module

Priority: Recommended

Difficulty: Normal

Time: 15 Minutes


The Tokens Antara Module is often useful as it allows the developer to quickly and easily mint new currencies on their Smart Chain.

Use the tokenscreate RPC method to create your own tokens, and then experiment with other RPCs. This module is also available on the MORTY Smart Chain. Make sure to save the returned txid after broadcasting your raw transaction. (See the Examples section for a demonstration of the token creation method.)

Link to Tokens Antara Module - tokenscreate RPC

Use the tokensinfo RPC method to view your new tokens.

Link to Tokens Antara Module - tokensinfo RPC

Step 13: Read the Introduction to AtomicDEX

Priority: Optional

Difficulty: Normal

Time: 15 Minutes


The Normal Developer is now nearly finished with a grand tour of the Komodo software. The key remaining target is AtomicDEX, our signature method for exchanging cryptocurrencies using atomic swaps. Be one of the first people in the history of mankind to exchange assets with an anonymous person over the Internet without any middleman whatsoever.

This introductory discussion covers some of the same concepts that the reader encountered in the Core Technology Discussions section, but with several useful additional details.

Link to Introduction to AtomicDEX

Step 14: Experiment with Atomic Swaps

Priority: Recommended

Difficulty: Normal

Time: 1 Hour


Follow this walkthrough to perform your first atomic swaps.

Link to AtomicDEX Walkthrough

(If you still need to install AtomicDEX software, click here for instructions on installing from source code.)

For those Normal Developers who make it this far, congratulations! You have completed the grand tour of the Komodo software suite.

Going forward, we recommend that you experiment with individual RPCs and customizations throughout the documentation, until you feel fluent in utilizing Komodo technology.

Please keep in touch with our community on Discord. We are excited to see what you create!

Step 15: Begin the Advanced Development Tutorial

Priority: Recommended

Difficulty: Advanced

Time: 5 - 15 Hours


Advanced Developers should now be familiar enough with the nature of Komodo technology to begin a more thorough approach to manipulating blockchain technology.

The following tutorial series walks the developer through the initial development process. The tutorial will first explain several integral aspects of blockchain technology that blockchain engineers are required to understand. Then, the series walks the reader through the process of creating a simplified version of the Heir Antara Module.

This tutorial series expects that you are comfortable with downloading a Github repository and manually inspecting the source code to determine the nature of the source code's functionality.

Once you complete this tutorial, you are among the most advanced of community developers. You may feel prepared to offer your services to businesses that would like to use your skills to commission customized Antara Modules for their unique business purposes and competitive-advantage desires.

Link to Advanced Series - Part 0 - Introduction

Step 16: Inspect Komodo Community Bounties

Priority: Optional

Difficulty: Advanced

Time: ~


Now that you are comfortable building new Antara Modules, it's time to put your skills to use and build something for the community.

The Komodo team is looking for talented C/C++ developers to build new Antara Modules that can be included with Komodo's default suite of modules.

Creating a new default module can take up to a month's worth of time, and we try to make sure the value of the bounties is worth your while.

Link to Komodo Bounties

Alternatively, reach out to the Komodo development team on the #dev-general channel on Discord and ask where help is needed.

We look forward to working with you!