How to support a new blockchain

Hi,
I want to know:

  • What’s the process to support a new blockchain?
  • Are you using your own nodes to connect to get blockchain data or using external APIs?
  • Do you have a common API with all smart contract based blockchains (or similar)?

Thanks!
P/

Hi Paybo!

  • What’s the process to support a new blockchain?

The Welcome page on rosetta-api.org is a good place to start. In short, you would implement the Rosetta specification to create a “Rosetta node”.

There are various ways to model the relationship of the Rosetta implementation to the core node software. For instance, you can wrap the node runtime in some sort of sidecar that transforms requests/responses into a Rosetta-compatible format or modify the node software directly to support Rosetta (enabled via some flag).
On a related note, please also see the Docker deployment expectations.

  • Are you using your own nodes to connect to get blockchain data or using external APIs?

Clients of a Rosetta implementation will connect to the Rosetta implementation aka Rosetta node to get blockchain data.

  • Do you have a common API with all smart contract based blockchains (or similar)?

The specification does not cover smart contracts explicitly. But, it provides support for expressive balance queries that help in integrating smart contract based chains. Please take a look at this page on the rosetta-api site.

Hope that helps. Thank you!