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 deps
to install dependenciesmake test
to run testsmake lint
to lint the source codemake salus
to check for security concernsmake build-local
to build a Docker image from the local contextmake coverage-local
to 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.json
rosetta-cli check:construction --configuration-file rosetta-cli-conf/testnet/config.json
rosetta-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