ROSETTA-DOGECOIN IS UNDER INITIAL DEVELOPMENT AND IF IT IS NOT BROKEN, THIS IS ACCIDENTAL. DO NOT USE THIS SOFTWARE, YET.
rosetta-dogecoin provides an implementation of the Rosetta API for
Dogecoin in golang, based off the rosetta-bitcoin
reference implementation provided by Coinbase. If you haven't heard of the
Rosetta API, you can find more information here.
- Rosetta API implementation (both Data API and Construction API)
- UTXO cache for all accounts (accessible using
/account/balance)
rosetta-dogecoin plans to use the syncer, storage, parser, and server package
from rosetta-sdk-go instead
of a new Dogecoin-specific implementation of packages of similar functionality. Below
you can find a high-level overview of how everything fits together:
+------------------------------------------------------------------+
| |
| +--------------------------------------+ |
| | | |
| | indexer | |
| | | |
| | +--------+ | |
+-------------------+ pruner <----------+ | |
| | +--------+ | | |
+-----v-----+ | | | |
| dogecoind | | +------+--------+ | |
+-----+-----+ | +--------> block_storage <----+ | |
| | | +---------------+ | | |
| | +---+----+ | | |
+-------------------> syncer | | | |
| +---+----+ | | |
| | +--------------+ | | |
| +--------> coin_storage | | | |
| +------^-------+ | | |
| | | | |
+--------------------------------------+ |
| | |
+-------------------------------------------------------------------------------------------+ |
| | | | |
| +------------------------------------------------------------+ | | |
| | | | |
| | +---------------------+-----------------------+------+ | |
| | | | | | |
| +-------+---------+ +-------+---------+ +-------+-------+ +-----------+----------+ | |
| | account_service | | network_service | | block_service | | construction_service +--------+
| +-----------------+ +-----------------+ +---------------+ +----------------------+ |
| |
| server |
| |
+-------------------------------------------------------------------------------------------+
All Rosetta implementations must be deployable via Docker and support running via either online or offline mode.
However, if you prefer not to use Docker during development in your own fork (e.g for low-end machines), feel free to follow the instructions in the Without Docker section.
make depsto install dependenciesmake testto run testsmake lintto lint the source codemake salusto check for security concernsmake build-localto build a Docker image from the local contextmake coverage-localto generate a coverage report
Download and install the latest (current 1.16.3) version of Go.
https://golang.org/doc/install
go build
MODE=OFFLINE NETWORK=TESTNET PORT=8080 ./rosetta-dogecoin -d
To validate rosetta-dogecoin, install rosetta-cli
and run one of the following commands:
rosetta-cli check:data --configuration-file rosetta-cli-conf/testnet/config.jsonrosetta-cli check:construction --configuration-file rosetta-cli-conf/testnet/config.jsonrosetta-cli check:data --configuration-file rosetta-cli-conf/mainnet/config.json
This project is available open source under the terms of the Apache 2.0 License.
rosetta-bitcoin is © 2020 Coinbase