Some dev questions from somebody starting

Are nodes full and archive like in ethereum ?
How much space is needed for a full node and archive respectively as of today ?
Is there any de-facto library / most well maintained for offchain node querying ?

Thanks !

There is no distinction between full nodes and archive nodes up to now. All nodes have the full history of the chain. Around 191 GiB at the moment.

It’s not in a format that allows easy querying, though (basically just the blocks as they arrive on the chain).

To be able to query, the most used solution still seems to be https://github.com/IntersectMBO/cardano-db-sync which puts the history of the chain in a Postgres database and needs additional disk space for that (according to their instructions even more than the node itself).

https://koios.rest/ is an API providing basically the data in cardano-db-sync through a REST API.

There are also some alternatives for getting the data out of a node. Kupo is one of these alternatives and they have a pretty comprehensive list of the other alternatives at: https://github.com/CardanoSolutions/kupo#alternatives

thanks. So then, there is no way to query the node via RPC like with Geth ? I’m aiming to do my own data ingestion, so what I would need is a way to communicate with the node and parse transactions in blocks, etc. I have been reading here :Architecture – Adrestia Project Docs and it points to cardano-db-sync. But how does cardano-db-sync reads the data from a node ?

cardano-cli and cardano-db-sync communicate with the node via a Unix domain socket and some “mini protocols” spoken over this socket.

https://github.com/CardanoSolutions/ogmios is a minimal wrapper exposing these protocols via HTTP / WebSockets.

That is rather old documentation, by the way.

1 Like

ah, nice. That’s what I was looking for. I’ll read the RPC client docs. Thanks !