mirror of
https://github.com/monero-project/monero.git
synced 2025-08-05 07:54:22 -04:00
blockchain_export can now export to a blocks.dat format
Also make the number of blocks endian independant, and add support for testnet
This commit is contained in:
parent
11db442a6c
commit
b13e7f284b
11 changed files with 368 additions and 38 deletions
|
@ -30,9 +30,9 @@ if(APPLE)
|
|||
add_library(blocks STATIC blockexports.c)
|
||||
set_target_properties(blocks PROPERTIES LINKER_LANGUAGE C)
|
||||
else()
|
||||
add_custom_command(OUTPUT blocks.o COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && ld -r -b binary -o ${CMAKE_CURRENT_BINARY_DIR}/blocks.o blocks.dat)
|
||||
add_library(blocks STATIC blocks.o blockexports.c)
|
||||
add_custom_command(OUTPUT blocks.o COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && ld -r -b binary -o ${CMAKE_CURRENT_BINARY_DIR}/blocks.o blocks.dat)
|
||||
add_custom_command(OUTPUT testnet_blocks.o COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && ld -r -b binary -o ${CMAKE_CURRENT_BINARY_DIR}/testnet_blocks.o testnet_blocks.dat)
|
||||
add_library(blocks STATIC blocks.o testnet_blocks.o blockexports.c)
|
||||
set_target_properties(blocks PROPERTIES LINKER_LANGUAGE C)
|
||||
endif()
|
||||
|
||||
|
||||
|
|
|
@ -9,16 +9,22 @@ extern const struct mach_header _mh_execute_header;
|
|||
extern const struct mach_header_64 _mh_execute_header;
|
||||
#endif
|
||||
|
||||
const unsigned char *get_blocks_dat_start()
|
||||
const unsigned char *get_blocks_dat_start(int testnet)
|
||||
{
|
||||
size_t size;
|
||||
return getsectiondata(&_mh_execute_header, "__DATA", "__blocks_dat", &size);
|
||||
if (testnet)
|
||||
return getsectiondata(&_mh_execute_header, "__DATA", "__testnet_blocks_dat", &size);
|
||||
else
|
||||
return getsectiondata(&_mh_execute_header, "__DATA", "__blocks_dat", &size);
|
||||
}
|
||||
|
||||
size_t get_blocks_dat_size()
|
||||
size_t get_blocks_dat_size(int testnet)
|
||||
{
|
||||
size_t size;
|
||||
getsectiondata(&_mh_execute_header, "__DATA", "__blocks_dat", &size);
|
||||
if (testnet)
|
||||
getsectiondata(&_mh_execute_header, "__DATA", "__testnet_blocks_dat", &size);
|
||||
else
|
||||
getsectiondata(&_mh_execute_header, "__DATA", "__blocks_dat", &size);
|
||||
return size;
|
||||
}
|
||||
|
||||
|
@ -27,22 +33,34 @@ size_t get_blocks_dat_size()
|
|||
#if defined(_WIN32) && !defined(_WIN64)
|
||||
#define _binary_blocks_start binary_blocks_dat_start
|
||||
#define _binary_blocks_end binary_blocks_dat_end
|
||||
#define _binary_testnet_blocks_start binary_testnet_blocks_dat_start
|
||||
#define _binary_testnet_blocks_end binary_testnet_blocks_dat_end
|
||||
#else
|
||||
#define _binary_blocks_start _binary_blocks_dat_start
|
||||
#define _binary_blocks_end _binary_blocks_dat_end
|
||||
#define _binary_testnet_blocks_start _binary_testnet_blocks_dat_start
|
||||
#define _binary_testnet_blocks_end _binary_testnet_blocks_dat_end
|
||||
#endif
|
||||
|
||||
extern const unsigned char _binary_blocks_start[];
|
||||
extern const unsigned char _binary_blocks_end[];
|
||||
extern const unsigned char _binary_testnet_blocks_start[];
|
||||
extern const unsigned char _binary_testnet_blocks_end[];
|
||||
|
||||
const unsigned char *get_blocks_dat_start(void)
|
||||
const unsigned char *get_blocks_dat_start(int testnet)
|
||||
{
|
||||
return _binary_blocks_start;
|
||||
if (testnet)
|
||||
return _binary_testnet_blocks_start;
|
||||
else
|
||||
return _binary_blocks_start;
|
||||
}
|
||||
|
||||
size_t get_blocks_dat_size(void)
|
||||
size_t get_blocks_dat_size(int testnet)
|
||||
{
|
||||
return (size_t) (_binary_blocks_end - _binary_blocks_start);
|
||||
if (testnet)
|
||||
return (size_t) (_binary_testnet_blocks_end - _binary_testnet_blocks_start);
|
||||
else
|
||||
return (size_t) (_binary_blocks_end - _binary_blocks_start);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
const unsigned char *get_blocks_dat_start();
|
||||
size_t get_blocks_dat_size();
|
||||
const unsigned char *get_blocks_dat_start(int testnet);
|
||||
size_t get_blocks_dat_size(int testnet);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
0
src/blocks/testnet_blocks.dat
Normal file
0
src/blocks/testnet_blocks.dat
Normal file
Loading…
Add table
Add a link
Reference in a new issue