GithubHelp home page GithubHelp logo

jdalvar3z / rosetta-dogecoin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rosetta-dogecoin/rosetta-dogecoin

0.0 0.0 0.0 383 KB

Dogecoin Rosetta API implementation

License: Apache License 2.0

Dockerfile 1.01% Makefile 0.98% Go 95.89% Shell 2.12%

rosetta-dogecoin's Introduction

Dogecoin Rosetta API implementation

ROSETTA-DOGECOIN IS UNDER INITIAL DEVELOPMENT AND IF IT IS NOT BROKEN, THIS IS ACCIDENTAL. DO NOT USE THIS SOFTWARE, YET.

Overview

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.

Target features for v1.0

  • Rosetta API implementation (both Data API and Construction API)
  • UTXO cache for all accounts (accessible using /account/balance)

Target Architecture

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                                            |
|                                                                                           |
+-------------------------------------------------------------------------------------------+

Development

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.

With Docker

  • make deps to install dependencies
  • make test to run tests
  • make lint to lint the source code
  • make salus to check for security concerns
  • make build-local to build a Docker image from the local context
  • make coverage-local to generate a coverage report

Without Docker

Dependencies

Download and install the latest (current 1.16.3) version of Go.

https://golang.org/doc/install

Build

go build

Running

MODE=OFFLINE NETWORK=TESTNET PORT=8080 ./rosetta-dogecoin -d

Testing

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

License

This project is available open source under the terms of the Apache 2.0 License.

rosetta-bitcoin is © 2020 Coinbase

rosetta-dogecoin's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.