Decred/Rosetta middleware service
This version is currently compatible to Rosetta version 1.4.10 and passes
check:construction validations done by the
tool version 0.7.2.
dcrros works as an API conversion layer and cache for the data required by Rosetta implementations. It requires a running
dcrd node to use for authoritative blockchain data. For technical information about the mapping between Decred and Rosetta concepts, please see the mapping document.
Running via Docker
The recommended way to run
dcrros as specified by the Rosetta documentation, is by running via Docker.
The Dockerfile contained in this repository contains everything needed to run a
dcrros container along with an embedded
dcrd. The simplest command to build and run a mainnet instance using the current stable version and without any requirements in the host OS other than Docker is to use:
$ docker build --tag dcrros:stable https://raw.githubusercontent.com/decred/dcrros/master/Dockerfile $ docker run --rm -p 9128:9128/tcp dcrros:stable
If the port of the
dcrros service is exposed (like in the previous command), the rosetta-cli tool can be used to perform some simple checks on the service, such as (note the use of an appropriate
$ rosetta-cli --configuration-file docs/roscli-mainnet.json view:block 0
For additional configuration options, including how to run on the test network, please see the Docker Options document.
A guide for using simnet for development purposes is available in docs/simnet-development.md.
An End-to-End test suite, including running the Rosetta CLI's
check:construction tests is included in /internal/e2etest. This test suite runs on a local simnet instance that exercises a large number of common on-chain operations found in the Decred chain.
The tests can also be run via Docker by using the included Dockerfile.e2e:
$ docker build --tag dcrros:e2e -f Dockerfile.e2e . $ docker run --rm dcrros:e2e
dcrros is licensed under the copyfree ISC License.