Put architecture at top
This commit is contained in:
parent
bd55ee7bbb
commit
398cbb2817
1 changed files with 43 additions and 43 deletions
86
README.md
86
README.md
|
@ -67,6 +67,49 @@ enabling it._
|
||||||
You should also modify your open file settings to `100000`. This can be done on a linux-based OS
|
You should also modify your open file settings to `100000`. This can be done on a linux-based OS
|
||||||
with the command: `ulimit -n 100000`.
|
with the command: `ulimit -n 100000`.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
`rosetta-bitcoin` uses the `syncer`, `storage`, `parser`, and `server` package
|
||||||
|
from [`rosetta-sdk-go`](https://github.com/coinbase/rosetta-sdk-go) instead
|
||||||
|
of a new Bitcoin-specific implementation of packages of similar functionality. Below
|
||||||
|
you can find a high-level overview of how everything fits together:
|
||||||
|
```text
|
||||||
|
+------------------------------------------------------------------+
|
||||||
|
| |
|
||||||
|
| +--------------------------------------+ |
|
||||||
|
| | | |
|
||||||
|
| | indexer | |
|
||||||
|
| | | |
|
||||||
|
| | +--------+ | |
|
||||||
|
+-------------------+ pruner <----------+ | |
|
||||||
|
| | +--------+ | | |
|
||||||
|
+-----v----+ | | | |
|
||||||
|
| bitcoind | | +------+--------+ | |
|
||||||
|
+-----+----+ | +--------> block_storage <----+ | |
|
||||||
|
| | | +---------------+ | | |
|
||||||
|
| | +---+----+ | | |
|
||||||
|
+-------------------> syncer | | | |
|
||||||
|
| +---+----+ | | |
|
||||||
|
| | +--------------+ | | |
|
||||||
|
| +--------> coin_storage | | | |
|
||||||
|
| +------^-------+ | | |
|
||||||
|
| | | | |
|
||||||
|
+--------------------------------------+ |
|
||||||
|
| | |
|
||||||
|
+-------------------------------------------------------------------------------------------+ |
|
||||||
|
| | | | |
|
||||||
|
| +------------------------------------------------------------+ | | |
|
||||||
|
| | | | |
|
||||||
|
| | +---------------------+-----------------------+------+ | |
|
||||||
|
| | | | | | |
|
||||||
|
| +-------+---------+ +-------+---------+ +-------+-------+ +-----------+----------+ | |
|
||||||
|
| | account_service | | network_service | | block_service | | construction_service +--------+
|
||||||
|
| +-----------------+ +-----------------+ +---------------+ +----------------------+ |
|
||||||
|
| |
|
||||||
|
| server |
|
||||||
|
| |
|
||||||
|
+-------------------------------------------------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
### Optimizations
|
### Optimizations
|
||||||
* Automatically prune bitcoind while indexing blocks
|
* Automatically prune bitcoind while indexing blocks
|
||||||
* Reduce sync time with concurrent block indexing
|
* Reduce sync time with concurrent block indexing
|
||||||
|
@ -115,49 +158,6 @@ in recently processed blocks to save to disk.
|
||||||
+---------------+
|
+---------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
### Architecture
|
|
||||||
`rosetta-bitcoin` uses the `syncer`, `storage`, `parser`, and `server` package
|
|
||||||
from [`rosetta-sdk-go`](https://github.com/coinbase/rosetta-sdk-go) instead
|
|
||||||
of a new Bitcoin-specific implementation of packages of similar functionality. Below
|
|
||||||
you can find a high-level overview of how everything fits together:
|
|
||||||
```text
|
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| +--------------------------------------+ |
|
|
||||||
| | | |
|
|
||||||
| | indexer | |
|
|
||||||
| | | |
|
|
||||||
| | +--------+ | |
|
|
||||||
+-------------------+ pruner <----------+ | |
|
|
||||||
| | +--------+ | | |
|
|
||||||
+-----v----+ | | | |
|
|
||||||
| bitcoind | | +------+--------+ | |
|
|
||||||
+-----+----+ | +--------> block_storage <----+ | |
|
|
||||||
| | | +---------------+ | | |
|
|
||||||
| | +---+----+ | | |
|
|
||||||
+-------------------> syncer | | | |
|
|
||||||
| +---+----+ | | |
|
|
||||||
| | +--------------+ | | |
|
|
||||||
| +--------> coin_storage | | | |
|
|
||||||
| +------^-------+ | | |
|
|
||||||
| | | | |
|
|
||||||
+--------------------------------------+ |
|
|
||||||
| | |
|
|
||||||
+-------------------------------------------------------------------------------------------+ |
|
|
||||||
| | | | |
|
|
||||||
| +------------------------------------------------------------+ | | |
|
|
||||||
| | | | |
|
|
||||||
| | +---------------------+-----------------------+------+ | |
|
|
||||||
| | | | | | |
|
|
||||||
| +-------+---------+ +-------+---------+ +-------+-------+ +-----------+----------+ | |
|
|
||||||
| | account_service | | network_service | | block_service | | construction_service +--------+
|
|
||||||
| +-----------------+ +-----------------+ +---------------+ +----------------------+ |
|
|
||||||
| |
|
|
||||||
| server |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------------------------------------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
## Testing with rosetta-cli
|
## Testing with rosetta-cli
|
||||||
To validate `rosetta-bitcoin`, [install `rosetta-cli`](https://github.com/coinbase/rosetta-cli#install)
|
To validate `rosetta-bitcoin`, [install `rosetta-cli`](https://github.com/coinbase/rosetta-cli#install)
|
||||||
and run one of the following commands:
|
and run one of the following commands:
|
||||||
|
|
Loading…
Reference in a new issue