An implementation of Rosetta for Cardano
[!WARNING]>
This Repository is no longer maintained and not supported. Please refer to the new Rosetta-Java Repository here
Cardano Rosetta
[![CI][imgsrcCI]][workflowCI] [![Nightly][imgsrcNightly]][workflowNightly]A multi-platform implementation of [Rosetta] for [Cardano], targeting the version defined in the [OpenApi schema]. Skip to run if wishing to use a pre-built image from the [Docker Hub repository].
Build
Build [from anywhere], optionally specifying a [network] name other thanmainnet as a
build argument, and accessing cached build layers to reduce the initialization time. You can also
build with local source by replacing the GitHub link with .
Supported Architectures
linux/amd64linux/arm64
mainnet
DOCKER_BUILDKIT=1 \
docker build \
--build-arg BUILDKITINLINECACHE=1 \
--cache-from=cardanofoundation/cardano-rosetta:master \
-t cardanofoundation/cardano-rosetta:2.5.0 \
.
preprod
DOCKER_BUILDKIT=1 \
docker build \
--build-arg BUILDKITINLINECACHE=1 \
--build-arg NETWORK=preprod \
--cache-from=cardanofoundation/cardano-rosetta:master \
-t cardanofoundation/cardano-rosetta:2.5.0-preprod \
.
preview
DOCKER_BUILDKIT=1 \
docker build \
--build-arg BUILDKITINLINECACHE=1 \
--build-arg NETWORK=preview \
--cache-from=cardanofoundation/cardano-rosetta:master \
-t cardanofoundation/cardano-rosetta:2.5.0-preview \
.
Sanchonet
DOCKER_BUILDKIT=1 \
docker build \
--build-arg BUILDKITINLINECACHE=1 \
--build-arg NETWORK=sanchonet \
--build-arg CARDANODBSYNC_VERSION=13.6.0.1 \
--build-arg DBSYNCTAG=sanch-5-1-0
--cache-from=cardanofoundation/cardano-rosetta:master \
-t cardanofoundation/cardano-rosetta:2.5.0-sanchonet \
.
Run
Run the locally or pre-built images and mount a single volume into the [standard storage location], map the server port to the host, and allocate a suitably-sized/dev/shm. See the
complete [Docker run reference] for full control.
mainnet
docker run \
--name cardano-rosetta \
-p 8080:8080 \
-v cardano-rosetta:/data \
--shm-size=2g \
cardanofoundation/cardano-rosetta:2.5.0
preprod
docker run \
--name cardano-rosetta-preprod \
-p 8081:8080 \
-v cardano-rosetta-preprod:/data \
--shm-size=2g \
cardanofoundation/cardano-rosetta:2.5.0-preprod
preview
docker run \
--name cardano-rosetta-preview \
-p 8081:8080 \
-v cardano-rosetta-preview:/data \
--shm-size=2g \
cardanofoundation/cardano-rosetta:2.5.0-preview
Sanchonet
docker run \
--name cardano-rosetta-preview \
-p 8081:8080 \
-v cardano-rosetta-preview:/data \
--shm-size=2g \
cardanofoundation/cardano-rosetta:2.5.0-sanchonet
:informationsource: A trusted DB snapshot can be used to speed up the initial sync, however the internal instance of cardano-node must be synced past the snapshot point for it to be applied. This can be achieved by observing logs emitted from cardano-node indicating it's close to the network tip, before then following the instructions in the Upgrading section._
Configuration
Set ENVs for optional runtime configuration
-e MODE=offline
MODE
See Rosetta docs for information on [modes]
online- defaultoffline
DEFAULTRELATIVETTL
Specify the TTL without needing to access an online method. Default: 1000
LOGGERMINSEVERITY
tracedebuginfo- defaultwarnerrorfatal
PAGE_SIZE
Default: 25
Upgrading
As per the release notes, you may be required to refresh the state managed bycardano-db-sync. This can be achieved without requiring a network re-sync using one of the two
following approached:
1. Re-sync From Genesis
A trustless approach to rebuild the DB, by syncing from genesis at the cost of an extended sync duration:docker stop cardano-rosetta && \
docker rm cardano-rosetta && \
docker run --rm -v cardano-rosetta:/data ubuntu rm -rf /data/postgresql /data/db-sync
... then start a container as per usual. Sync progress will be logged by the new container.
2. Apply a Trusted cardano-db-sync Snapshot
Run the build command with the addition of an argument providing the most recent weekly snapshot link (https://update-cardano-mainnet.iohk.io/cardano-db-sync/index.html) and set is as 'SNAPSHOT_URL' below.
For example:
Build
mainnet
DOCKER_BUILDKIT=1 \
docker build \
--build-arg BUILDKITINLINECACHE=1 \
--build-arg SNAPSHOTURL=https://update-cardano-mainnet.iohk.io/cardano-db-sync/13.6/db-sync-snapshot-schema-13.6-block-11090788-x8664.tgz \
--cache-from=cardanofoundation/cardano-rosetta:master \
-t cardanofoundation/cardano-rosetta:2.5.0-apply-snapshot \
https://github.com/cardanofoundation/cardano-rosetta.git#2.5.0
Documentation
| Link | Audience | | --- | --- | | [Construction API Documentation] | Users of the Cardano Rosetta Construction API | | [Data API Documentation] | Users of the Cardano Rosetta Data API | | [Cardano Rosetta Docs] | Cardano Rosetta specific documentation | | [Developer] | Core or external developers of cardano-rosetta-server | | [Maintainer] | Solution maintainer | | [QA] | Quality Assurance Engineers |
[imgsrcCI]: https://github.com/cardano-foundation/cardano-rosetta/workflows/CI/badge.svg [workflow_CI]: https://github.com/cardano-foundation/cardano-rosetta/actions?query=workflow%3ACI [imgsrcNightly]: https://github.com/cardano-foundation/cardano-rosetta/workflows/Nightly/badge.svg [workflow_Nightly]: https://github.com/cardano-foundation/cardano-rosetta/actions?query=workflow%3ANightly [Rosetta]: https://www.rosetta-api.org/docs/welcome.html [Cardano]: https://cardano.org/ [OpenApi schema]: cardano-rosetta-server/src/server/openApi.json#L4 [Docker Hub repository]: https://hub.docker.com/r/cardanofoundation/cardano-rosetta/tags?page=1&ordering=last_updated [from anywhere]: https://www.rosetta-api.org/docs/node_deployment.html#build-anywhere [network]: config/network [standard storage location]: https://www.rosetta-api.org/docs/standardstoragelocation.html [Docker run reference]: https://docs.docker.com/engine/reference/run/ [modes]: https://www.rosetta-api.org/docs/node_deployment.html#multiple-modes [docs]: cardano-rosetta-server/README.md [standard build instructions]: #build [Construction API Documentation]: https://www.rosetta-api.org/docs/constructionapiintroduction.html [Data API Documentation]: https://www.rosetta-api.org/docs/dataapiintroduction.html [Cardano Rosetta Docs]: ./docs [Developer]: cardano-rosetta-server/README.md [Maintainer]: docs/MAINTAINER.md [QA]: docs/QA.md