Announcement - 26th March 2020 - cardano-rest 2.0.0 and cardano-db-sync 1.4.0
IOHK has released cardano-rest 2.0.0 and cardano-db-sync 1.4.0 along with cardano-node 1.8.0 as the two new components of Cardano Explorer. The release of these components is part of the Byron reboot process that prepares relevant IOHK codebases, repositories, components and the blockchain for the upcoming Shelley release.
*During this process exchanges and 3rd party wallets will need to perform some extra steps in order to maintain compliance and avoid any service outage*
In this release, the new cardano-explorer codebase has been split into two separate repositories cardano-rest and cardano-db-sync; cardano-explorer repository has been archived. These two repositories are now being maintained separately with cardano-db-sync managing the underlying PostgreSQL syncing engine and cardano-rest managing the API component.
cardano-rest
The cardano-rest Web API is an extensible framework that is used to retrieve transactions, addresses and time periods (epochs and slots) from the cardano-db-sync component. It provides a series of method calls including a Web API interface used for building HTTP web-based services that can be accessed via HTTP URL. For a full list of available endpoints please consult the documentation here.
cardano-db-sync
The cardano-db-sync component consists of a set of components:
- cardano-db which defines common data types and functions used by any application that needs to interact with the database from Haskell. In particular, it defines the database schema.
- cardano-db-sync which acts as a Cardano node, following the chain and inserting data from the chain into a PostgreSQL database.
- cardano-db-sync-extended is a relatively simple extension to cardano-db-sync which maintains an extra table containing epoch data.
For more information please see Readme.md.
Building & running cardano-rest and cardano-db-sync
cardano-rest and cardano-db-sync have been built and tested on Linux, macOS and will support Docker as a target environment.
The cardano-rest and cardano-db-sync are designed to work with a locally running cardano-node. The following git repositories cardano-node, cardano-rest and cardano-db-sync need to be checked out so that they are all at the same level in your local file directory.
How to use cardano-rest
To use the cardano-rest API, you will need to:
- Set up and run a local Cardano node
- Set up and run a local Cardano DB Sync node
- Set up and run a local Cardano Rest
Once you have completed these steps, you will be able to use the cardano-rest API to view data from the PostgreSQL database, and the cardano-submit-api to submit transactions.
Building cardano-rest components using Docker
For exchanges wanting to build cardano-rest and cardano-db-sync using docker please see the following documentation here
What is the cardano-submit-api ?
The cardano-submit-api is a program that comes bundled in cardano-rest and provides a web API allowing transactions (generated by external wallet or SDK ) to be posted to the Cardano blockchain. It is designed for exchanges and wallets who manage their own UTXO distribution with full control of transaction generation and signing. To submit a transaction to the network (mainnet, staging, or any of the testnets), cardano-rest , cardano-db-sync, and cardano-node must be running and have access to the genesis file and genesis hash value for the network.
To build and run the cardano-submit-api see the documentation here
*Action required
All exchanges and 3rd party wallets using the new cardano-explorer or cardano-sl-explorer must transition to cardano-rest and cardano-db-sync in order to avoid any outage and maintain compliance with Shelley.