oxen-core/src/blockchain_utilities
Jason Rhinelander dfe566480b
Remove cryptonote_config macros
- Replace all cryptonote_config macros with constexpr variables.  Some
  become integer types, some become chrono types.
  - generally this involved removing a "CRYPTONOTE_" prefix since the
    values are now in the `cryptonote` namespace
  - some constants are grouped into sub-namespaces (e.g.
    cryptonote::p2p)
  - deprecated constants (i.e. for old HFs) are in the `cryptonote::old`
    namespace.
  - all the magic hash key domain separating strings are now in
    cryptonote::hashkey::WHATEVER.
- Move some economy-related constants to oxen_economy.h instead
- Replaced the BLOCKS_EXPECTED_IN_DAYS constexpr functions with more
  straightforward `BLOCKS_PER_DAY` value (i.e.  old
  `BLOCKS_EXPECTED_IN_DAYS(10)` is now `BLOCKS_PER_DAY * 10`.
- Replaced `network_version` unscoped enum with a scoped enum
  `cryptonote::hf`, replacing all the raw uint8_t values where it was
  currently accepted with the new `hf` type.
- Made `network_type` a scoped enum so that it now has to be qualified
  (network_type::TESTNET) and can't be arbitrarily/unintentionally
  converted to/from an int.
- HARDFORK_WHATEVER macros have become cryptonote::feature::WHATEVER
  constexpr hf values.
- Add `revision` to rpc hard_fork_info response
- Don't build trezor code at all (previously we were pointlessly
  building an empty dummy lib).
2022-05-16 20:37:07 -03:00
..
blockchain_ancestry.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
blockchain_blackball.cpp shorten wire names 2021-02-09 11:54:27 +11:00
blockchain_depth.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
blockchain_export.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
blockchain_import.cpp Add snode revision soft forks & drop hard fork voting code 2021-06-19 15:13:57 -03:00
blockchain_objects.h initial loki -> oxen pass 2021-01-04 11:09:45 +11:00
blockchain_prune.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
blockchain_prune_known_spent_data.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
blockchain_stats.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
blockchain_usage.cpp Remove cryptonote_config macros 2022-05-16 20:37:07 -03:00
blockchain_utilities.h utils: Increase max block size for import/export 2019-10-17 19:14:41 -06:00
blocksdat_file.cpp executable names changed 2021-01-04 14:19:42 +11:00
blocksdat_file.h std::filesystem 2020-10-24 12:45:37 -03:00
bootstrap_file.cpp executable names changed 2021-01-04 14:19:42 +11:00
bootstrap_file.h std::filesystem 2020-10-24 12:45:37 -03: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 Batching of service node rewards 2022-04-29 09:51:14 +10:00
README.md executable names changed 2021-01-04 14:19:42 +11:00
sn_key_tool.cpp Update oxenmq to latest oxen-mq+oxen-encoding 2022-04-14 14:32:01 -03:00

Oxen 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

$ oxen-blockchain-export

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

Import the exported file

$ oxen-blockchain-import

This imports blocks from $OXEN_DATA_DIR/export/blockchain.raw (exported using the oxen-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 oxen-blockchain-import command again, and it will restart from where it left off.

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

## fast import with large batch size, database mode "fastest", verification off
$ oxen-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:

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

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

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