Working with blockchains

Cardano Blockchain

To start working with the blockchain, the first thing to look at is the type of application that you want to run. 

Do I need to learn Haskell?

If you want to use front-end and you need backend for handling only transaction building and submitting then you will not need to learn Plutus/Haskell

If you plan to write on-chain code aka code that will live onchain then you will have to learn Plutus

Theory

To understand the blockchain first some basic theory is needed. Study about

1) eUTXO

2) Cardano node and architecture

Advanced topics:

1) Ledger rules

2) Key generation

Development Tools

The first and foremost thing that is needed is a cardano-node. It can be run locally or you can use services from Blockfrost

Current Choice of interaction with blockchain

1) Cardano-CLI: command-line


2) Ogmios: Ogmios is a Haskell tool with a Typescript API to query the cardano-node state such as the current utxo set or the current reward balance. The focus of the project is more towards providing a friendly API to the functionality of the cardano-node. Ogmios opens websocket through which clients can interact
 

ogmios.dev/ 


3) Oura is a Rust tool fetching data from the node, processing it according to rules and filters, and then passing it along to a sink which handles the data. More specifically, Oura itself does not store data anywhere. It simply makes data available to you to decide how to process it. 

github.com/txpipe/oura 


4) Kupo is a Haskell tool for fetching data from the node and processing it according to rules in filters. It synchronizes data from the blockchain according to patterns matching addresses present in transaction outputs and builds a lookup table from matches to their associated output references, values and datum hashes


github.com/CardanoSolutions/kupo#readme 


5) Dbsync and Carp:

 https://dcspark.github.io/carp/docs/intro


6) KOIOS: Koios Python is Python wrapper which allow interacting with all information and parameters stored on the Cardano blockchain using Koios REST API. Koios is best described as a Decentralized and Elastic RESTful query layer for exploring data on Cardano blockchain to consume within applications/wallets/explorers/etc. 

Koios is really useful for developers because resource and maintenance requirements for Cardano blockchain components (e.g. cardano-node, cardano-db-sync) are ever-growing. It also simplifies how to query complex information from the blockchain.

This library allows getting data from the Cardano Blockchain using a simple syntaxis in your Python code. All the querys follow Koios API REST operations.

github.com/cardano-community/koios-python