oxen-core/src/blockchain_utilities
Jason Rhinelander 463b2cbf01 Add simple delimiter joining string function
Because:

    boost::join(v | boost::adaptors::transformed([](uint64_t out){return std::to_string(out);}), " ")

is ugly as sin, while:

    tools::join(" ", v)

is nice and simple.

Also removes a few unnecessary boost iterator adaptor includes and uses.
2020-08-07 17:14:02 -03:00
..
blockchain_ancestry.cpp Add simple delimiter joining string function 2020-08-07 17:14:02 -03:00
blockchain_blackball.cpp Add simple delimiter joining string function 2020-08-07 17:14:02 -03:00
blockchain_depth.cpp Add simple delimiter joining string function 2020-08-07 17:14:02 -03:00
blockchain_export.cpp Merge commit 'dc64fcb8a6c046c6e30665a6217b8fb6ec2471bc' into MergeUpstream3 2020-05-22 11:25:15 +10:00
blockchain_import.cpp Serialization (part2): application 2020-07-02 12:52:12 -03:00
blockchain_objects.h Unify and move responsibility of voting to quorum_cop (#615) 2019-05-31 11:06:42 +10:00
blockchain_prune.cpp String handling improvements 2020-07-02 12:52:12 -03:00
blockchain_prune_known_spent_data.cpp boost::variant -> std::variant 2020-07-02 12:52:12 -03:00
blockchain_stats.cpp Split up common/util.h 2020-07-02 12:52:12 -03:00
blockchain_usage.cpp Add simple delimiter joining string function 2020-08-07 17:14:02 -03:00
blockchain_utilities.h utils: Increase max block size for import/export 2019-10-17 19:14:41 -06:00
blocksdat_file.cpp "Remove namespace pollution" << ENDL 2020-05-11 18:44:45 -03:00
blocksdat_file.h monerod can now sync from pruned blocks 2019-09-27 00:10:37 +00:00
bootstrap_file.cpp boost::variant -> std::variant 2020-07-02 12:52:12 -03:00
bootstrap_file.h Update monero copyright to 2019 pre-emptively to make merge simpler 2019-04-12 14:36:43 +10:00
bootstrap_serialization.h Update monero copyright to 2019 pre-emptively to make merge simpler 2019-04-12 14:36:43 +10:00
CMakeLists.txt cmake modernization 2020-03-06 00:36:57 -04:00
README.md Merge commit 'e8487fa' into LokiMergeUpstream 2019-05-17 04:39:08 +10:00

Loki Blockchain Utilities

Copyright (c) 2014-2019, The Monero Project Copyright (c) 2018, The Loki Project

Introduction

The blockchain utilities allow one to import and export the blockchain.

Usage:

See also each utility's "--help" option.

Export an existing blockchain database

$ loki-blockchain-export

This loads the existing blockchain and exports it to $LOKI_DATA_DIR/export/blockchain.raw

Import the exported file

$ loki-blockchain-import

This imports blocks from $LOKI_DATA_DIR/export/blockchain.raw (exported using the loki-blockchain-export tool as described above) into the current database.

Defaults: --batch on, --batch size 20000, --verify on

Batch size refers to number of blocks and can be adjusted for performance based on available RAM.

Verification should only be turned off if importing from a trusted blockchain.

If you encounter an error like "resizing not supported in batch mode", you can just re-run the loki-blockchain-import command again, and it will restart from where it left off.

## use default settings to import blockchain.raw into database
$ loki-blockchain-import

## fast import with large batch size, database mode "fastest", verification off
$ loki-blockchain-import --batch-size 20000 --database lmdb#fastest --verify off

Import options

--input-file specifies input file path for importing

default: <data-dir>/export/blockchain.raw

--output-file specifies output file path to export to

default: <data-dir>/export/blockchain.raw

--block-stop stop at block number

--database <database type>

--database <database type>#<flag(s)>

database type: lmdb, memory

flags:

The flag after the # is interpreted as a composite mode/flag if there's only one (no comma separated arguments).

The composite mode represents multiple DB flags and support different database types:

safe, fast, fastest

Database-specific flags can be set instead.

LMDB flags (more than one may be specified):

nosync, nometasync, writemap, mapasync, nordahead

Examples:

$ loki-blockchain-import --database lmdb#fastest

$ loki-blockchain-import --database lmdb#nosync

$ loki-blockchain-import --database lmdb#nosync,nometasync