Merge pull request 'upstream' (#402) from wowario/wownero:upstream into master

Reviewed-on: #402
pull/403/head v0.10.0.2
wowario 3 years ago
commit cdb068cd0b

@ -54,7 +54,7 @@ jobs:
- uses: eine/setup-msys2@v2 - uses: eine/setup-msys2@v2
with: with:
update: true update: true
install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-ccache mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb git install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-ccache mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound git
- name: build - name: build
run: | run: |
ccache --max-size=150M ccache --max-size=150M

4
.gitmodules vendored

@ -1,7 +1,3 @@
[submodule "external/unbound"]
path = external/unbound
url = https://github.com/monero-project/unbound
branch = monero
[submodule "external/miniupnp"] [submodule "external/miniupnp"]
path = external/miniupnp path = external/miniupnp
url = https://github.com/miniupnp/miniupnp url = https://github.com/miniupnp/miniupnp

@ -307,7 +307,6 @@ if(NOT MANUAL_SUBMODULES)
message(STATUS "Checking submodules") message(STATUS "Checking submodules")
check_submodule(external/miniupnp) check_submodule(external/miniupnp)
check_submodule(external/unbound)
check_submodule(external/rapidjson) check_submodule(external/rapidjson)
check_submodule(external/RandomWOW) check_submodule(external/RandomWOW)
check_submodule(external/supercop) check_submodule(external/supercop)
@ -612,8 +611,7 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
add_subdirectory(external) add_subdirectory(external)
# Final setup for libunbound # Final setup for libunbound
include_directories(${UNBOUND_INCLUDE}) include_directories(${UNBOUND_INCLUDE_DIR})
link_directories(${UNBOUND_LIBRARY_DIRS})
# Final setup for easylogging++ # Final setup for easylogging++
include_directories(${EASYLOGGING_INCLUDE}) include_directories(${EASYLOGGING_INCLUDE})

@ -91,7 +91,7 @@ Dates are provided in the format YYYY-MM-DD.
| 160,777 | 2019-11-20 | Gaping Goatse | v0.7.0.0 | v0.7.1.0 | Only allow >= 2 outputs, change to the block median used to calculate penalty, rct sigs in coinbase forbidden, 4 unlock time as protocol rule | 160,777 | 2019-11-20 | Gaping Goatse | v0.7.0.0 | v0.7.1.0 | Only allow >= 2 outputs, change to the block median used to calculate penalty, rct sigs in coinbase forbidden, 4 unlock time as protocol rule
| - | 2020-06-28 | Hallucinogenic Hypnotoad | v0.8.0.0 | v0.8.0.2 | Dandelion++ support | - | 2020-06-28 | Hallucinogenic Hypnotoad | v0.8.0.0 | v0.8.0.2 | Dandelion++ support
| 253,999 | 2020-10-09 | Illiterate Illuminati | v0.9.0.0 | v0.9.3.3 | Dynamic coinbase unlock (up to 1 mo.), Deterministic unlock times, Enforce maximum coinbase amount, show_qr_code wallet command, CLSAG | 253,999 | 2020-10-09 | Illiterate Illuminati | v0.9.0.0 | v0.9.3.3 | Dynamic coinbase unlock (up to 1 mo.), Deterministic unlock times, Enforce maximum coinbase amount, show_qr_code wallet command, CLSAG
| 331,170 | 2021-07-04 | Junkie Jeff | v0.10.0.0 | v0.10.0.1 | Bulletproofs+, Miner Block Header Signing, Vote by Block, Change coinbase unlock time to 1 day, Reset difficulty and switch back to Monero's difficulty algorithm | 331,170 | 2021-07-04 | Junkie Jeff | v0.10.0.0 | v0.10.0.2 | Bulletproofs+, Miner Block Header Signing, Vote by Block, Change coinbase unlock time to 1 day, Reset difficulty and switch back to Monero's difficulty algorithm
X's indicate that these details have not been determined as of commit date. X's indicate that these details have not been determined as of commit date.

@ -1,8 +1,8 @@
package=expat package=expat
$(package)_version=2.2.4 $(package)_version=2.4.1
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_2_2_4 $(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_2_4_1
$(package)_file_name=$(package)-$($(package)_version).tar.bz2 $(package)_file_name=$(package)-$($(package)_version).tar.bz2
$(package)_sha256_hash=03ad85db965f8ab2d27328abcf0bc5571af6ec0a414874b2066ee3fdd372019e $(package)_sha256_hash=2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40
define $(package)_set_vars define $(package)_set_vars
$(package)_config_opts=--enable-static $(package)_config_opts=--enable-static

@ -1,8 +1,8 @@
package=ldns package=ldns
$(package)_version=1.6.17 $(package)_version=1.7.1
$(package)_download_path=https://www.nlnetlabs.nl/downloads/ldns/ $(package)_download_path=https://www.nlnetlabs.nl/downloads/$(package)/
$(package)_file_name=$(package)-$($(package)_version).tar.gz $(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=8b88e059452118e8949a2752a55ce59bc71fa5bc414103e17f5b6b06f9bcc8cd $(package)_sha256_hash=8ac84c16bdca60e710eea75782356f3ac3b55680d40e1530d7cea474ac208229
$(package)_dependencies=openssl $(package)_dependencies=openssl
define $(package)_set_vars define $(package)_set_vars

@ -1,4 +1,4 @@
packages:=boost openssl zeromq libiconv packages:=boost openssl zeromq libiconv expat ldns unbound
native_packages := native_ccache native_packages := native_ccache

@ -1,12 +1,12 @@
package=unbound package=unbound
$(package)_version=1.6.8 $(package)_version=1.13.1
$(package)_download_path=https://www.unbound.net/downloads/ $(package)_download_path=https://www.nlnetlabs.nl/downloads/$(package)/
$(package)_file_name=$(package)-$($(package)_version).tar.gz $(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=e3b428e33f56a45417107448418865fe08d58e0e7fea199b855515f60884dd49 $(package)_sha256_hash=8504d97b8fc5bd897345c95d116e0ee0ddf8c8ff99590ab2b4bd13278c9f50b8
$(package)_dependencies=openssl expat ldns $(package)_dependencies=openssl expat ldns
define $(package)_set_vars define $(package)_set_vars
$(package)_config_opts=--disable-shared --enable-static --without-pyunbound --prefix=$(host_prefix) --with-libexpat=$(host_prefix) --with-ssl=$(host_prefix) --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads $(package)_config_opts=--disable-shared --enable-static --without-pyunbound --prefix=$(host_prefix) --with-libexpat=$(host_prefix) --with-ssl=$(host_prefix) --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only
$(package)_config_opts_linux=--with-pic $(package)_config_opts_linux=--with-pic
$(package)_config_opts_w64=--enable-static-exe --sysconfdir=/etc --prefix=$(host_prefix) --target=$(host_prefix) $(package)_config_opts_w64=--enable-static-exe --sysconfdir=/etc --prefix=$(host_prefix) --target=$(host_prefix)
$(package)_build_opts_mingw32=LDFLAGS="$($(package)_ldflags) -lpthread" $(package)_build_opts_mingw32=LDFLAGS="$($(package)_ldflags) -lpthread"

@ -24,6 +24,9 @@ SET(Readline_INCLUDE_DIR @prefix@/include)
SET(Readline_LIBRARY @prefix@/lib/libreadline.a) SET(Readline_LIBRARY @prefix@/lib/libreadline.a)
SET(Terminfo_LIBRARY @prefix@/lib/libtinfo.a) SET(Terminfo_LIBRARY @prefix@/lib/libtinfo.a)
SET(UNBOUND_INCLUDE_DIR @prefix@/include)
SET(UNBOUND_LIBRARIES @prefix@/lib/libunbound.a)
SET(LRELEASE_PATH @prefix@/native/bin CACHE FILEPATH "path to lrelease" FORCE) SET(LRELEASE_PATH @prefix@/native/bin CACHE FILEPATH "path to lrelease" FORCE)
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android") if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android")

@ -55,26 +55,12 @@ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
find_package(Unbound) find_package(Unbound)
if(NOT UNBOUND_INCLUDE_DIR OR STATIC) if(NOT UNBOUND_INCLUDE_DIR)
# NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered. die("Could not find libunbound")
# unbound has config tests which used OpenSSL libraries, so -ldl may need to
# be set in this case.
# The unbound CMakeLists.txt can set it, since it's also needed for the
# static OpenSSL libraries set up there after with target_link_libraries.
add_subdirectory(unbound)
set(UNBOUND_STATIC true PARENT_SCOPE)
set(UNBOUND_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/unbound/libunbound" PARENT_SCOPE)
set(UNBOUND_LIBRARY "unbound" PARENT_SCOPE)
set(UNBOUND_LIBRARY_DIRS "${LIBEVENT2_LIBDIR}" PARENT_SCOPE)
else() else()
message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}") message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}")
if(UNBOUND_LIBRARIES) if(UNBOUND_LIBRARIES)
message(STATUS "Found libunbound shared library") message(STATUS "Found libunbound library")
set(UNBOUND_STATIC false PARENT_SCOPE)
set(UNBOUND_INCLUDE ${UNBOUND_INCLUDE_DIR} PARENT_SCOPE)
set(UNBOUND_LIBRARY ${UNBOUND_LIBRARIES} PARENT_SCOPE)
set(UNBOUND_LIBRARY_DIRS "" PARENT_SCOPE)
else() else()
die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent") die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent")
endif() endif()

1
external/unbound vendored

@ -1 +0,0 @@
Subproject commit 0f6c0579d66b65f86066e30e7876105ba2775ef4

Binary file not shown.

@ -224,6 +224,7 @@ namespace cryptonote
ADD_CHECKPOINT2(331458, "f79a664a5e4bc11fa7d804be2c3c72db50c87a27f1f540f337564cbb6314e4cd", "0x7c34d47adf218"); //Hard fork to v19 ADD_CHECKPOINT2(331458, "f79a664a5e4bc11fa7d804be2c3c72db50c87a27f1f540f337564cbb6314e4cd", "0x7c34d47adf218"); //Hard fork to v19
ADD_CHECKPOINT2(331891, "faceea4b4ab33fc962c24dfa2f98c2aeda4788f67c1e0044c62419912c1a64fe", "0x7c359086aeb58"); // restart DIFFICULTY_WINDOW ADD_CHECKPOINT2(331891, "faceea4b4ab33fc962c24dfa2f98c2aeda4788f67c1e0044c62419912c1a64fe", "0x7c359086aeb58"); // restart DIFFICULTY_WINDOW
ADD_CHECKPOINT2(332100, "d32c409058c1eceb9a105190c7a5f480b2d6f49f318b18652b49ae971c710124", "0x7c538441cca36"); ADD_CHECKPOINT2(332100, "d32c409058c1eceb9a105190c7a5f480b2d6f49f318b18652b49ae971c710124", "0x7c538441cca36");
ADD_CHECKPOINT2(334000, "17d3b15f8e1a73e1c61335ee7979e9e3d211b9055e8a7fb2481e5f49a51b1c22", "0x7ddd5a79d69c4");
return true; return true;
} }

@ -99,7 +99,7 @@ monero_add_library(common
target_link_libraries(common target_link_libraries(common
PUBLIC PUBLIC
cncrypto cncrypto
${UNBOUND_LIBRARY} ${UNBOUND_LIBRARIES}
${LIBUNWIND_LIBRARIES} ${LIBUNWIND_LIBRARIES}
${Boost_DATE_TIME_LIBRARY} ${Boost_DATE_TIME_LIBRARY}
${Boost_FILESYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}

@ -45,11 +45,6 @@ using namespace epee;
static const char *DEFAULT_DNS_PUBLIC_ADDR[] = static const char *DEFAULT_DNS_PUBLIC_ADDR[] =
{ {
"194.150.168.168", // CCC (Germany)
"80.67.169.40", // FDN (France)
"89.233.43.71", // http://censurfridns.dk (Denmark)
"109.69.8.51", // punCAT (Spain)
"193.58.251.251", // SkyDNS (Russia)
}; };
static boost::mutex instance_lock; static boost::mutex instance_lock;

@ -5525,7 +5525,7 @@ void Blockchain::cancel()
} }
#if defined(PER_BLOCK_CHECKPOINT) #if defined(PER_BLOCK_CHECKPOINT)
static const char expected_block_hashes_hash[] = "00b4308f939149e2b4ec3f133bb7215075e868042f73e295826ff85764dbdfaa"; static const char expected_block_hashes_hash[] = "25fd44a93e0880a3d69c62d7f7c429d9f04ff345c812a04936773b2fbad78868";
void Blockchain::load_compiled_in_block_hashes(const GetCheckpointsCallback& get_checkpoints) void Blockchain::load_compiled_in_block_hashes(const GetCheckpointsCallback& get_checkpoints)
{ {
if (get_checkpoints == nullptr || !m_fast_sync) if (get_checkpoints == nullptr || !m_fast_sync)

@ -2095,6 +2095,8 @@ skip:
} }
MDEBUG(context << "Nothing to get from this peer, and it's not ahead of us, all done"); MDEBUG(context << "Nothing to get from this peer, and it's not ahead of us, all done");
context.m_state = cryptonote_connection_context::state_normal; context.m_state = cryptonote_connection_context::state_normal;
if (m_core.get_current_blockchain_height() >= m_core.get_target_blockchain_height())
on_connection_synchronized();
return true; return true;
} }
uint64_t next_needed_height = m_block_queue.get_next_needed_height(bc_height); uint64_t next_needed_height = m_block_queue.get_next_needed_height(bc_height);
@ -2242,6 +2244,8 @@ skip:
} }
MDEBUG(context << "Nothing to get from this peer, and it's not ahead of us, all done"); MDEBUG(context << "Nothing to get from this peer, and it's not ahead of us, all done");
context.m_state = cryptonote_connection_context::state_normal; context.m_state = cryptonote_connection_context::state_normal;
if (m_core.get_current_blockchain_height() >= m_core.get_target_blockchain_height())
on_connection_synchronized();
return true; return true;
} }
@ -2433,10 +2437,7 @@ skip:
if (context.m_remote_blockchain_height >= m_core.get_target_blockchain_height()) if (context.m_remote_blockchain_height >= m_core.get_target_blockchain_height())
{ {
if (m_core.get_current_blockchain_height() >= m_core.get_target_blockchain_height()) if (m_core.get_current_blockchain_height() >= m_core.get_target_blockchain_height())
{
MGINFO_GREEN("SYNCHRONIZED OK");
on_connection_synchronized(); on_connection_synchronized();
}
} }
else else
{ {

@ -662,7 +662,7 @@ namespace levin
auto connections = get_out_connections(*zone_->p2p, height); auto connections = get_out_connections(*zone_->p2p, height);
if (connections.empty()) if (connections.empty())
MWARNING("Unable to send transaction(s) to " << epee::net_utils::zone_to_string(zone_->nzone) << MDEBUG("Unable to send transaction(s) to " << epee::net_utils::zone_to_string(zone_->nzone) <<
" - no suitable outbound connections at height " << height); " - no suitable outbound connections at height " << height);
zone_->strand.post(update_channels{zone_, std::move(connections)}); zone_->strand.post(update_channels{zone_, std::move(connections)});

@ -157,7 +157,11 @@ namespace trezor{
#define PROTO_HEADER_SIZE 6 #define PROTO_HEADER_SIZE 6
static size_t message_size(const google::protobuf::Message &req){ static size_t message_size(const google::protobuf::Message &req){
#if GOOGLE_PROTOBUF_VERSION < 3006001
return size_t(req.ByteSize());
#else
return req.ByteSizeLong(); return req.ByteSizeLong();
#endif
} }
static size_t serialize_message_buffer_size(size_t msg_size) { static size_t serialize_message_buffer_size(size_t msg_size) {

@ -766,7 +766,7 @@ bool simple_wallet::spendkey(const std::vector<std::string> &args/* = std::vecto
std::cout << "secret: On device. Not available" << std::endl; std::cout << "secret: On device. Not available" << std::endl;
} else { } else {
SCOPED_WALLET_UNLOCK(); SCOPED_WALLET_UNLOCK();
printf("secret: "); printf("secret (key used for mining): ");
print_secret_key(m_wallet->get_account().get_keys().m_spend_secret_key); print_secret_key(m_wallet->get_account().get_keys().m_spend_secret_key);
putchar('\n'); putchar('\n');
} }
@ -8922,12 +8922,12 @@ bool simple_wallet::export_transfers(const std::vector<std::string>& args_)
// header // header
file << file <<
boost::format("%8.8s,%9.9s,%8.8s,%25.25s,%20.20s,%20.20s,%64.64s,%16.16s,%14.14s,%100.100s,%20.20s,%s,%s") % boost::format("%8.8s,%9.9s,%8.8s,%25.25s,%20.20s,%20.20s,%64.64s,%16.16s,%14.14s,%106.106s,%20.20s,%s,%s") %
tr("block") % tr("direction") % tr("unlocked") % tr("timestamp") % tr("amount") % tr("running balance") % tr("hash") % tr("payment ID") % tr("fee") % tr("destination") % tr("amount") % tr("index") % tr("note") tr("block") % tr("direction") % tr("unlocked") % tr("timestamp") % tr("amount") % tr("running balance") % tr("hash") % tr("payment ID") % tr("fee") % tr("destination") % tr("amount") % tr("index") % tr("note")
<< std::endl; << std::endl;
uint64_t running_balance = 0; uint64_t running_balance = 0;
auto formatter = boost::format("%8.8llu,%9.9s,%8.8s,%25.25s,%20.20s,%20.20s,%64.64s,%16.16s,%14.14s,%100.100s,%20.20s,\"%s\",%s"); auto formatter = boost::format("%8.8llu,%9.9s,%8.8s,%25.25s,%20.20s,%20.20s,%64.64s,%16.16s,%14.14s,%106.106s,%20.20s,\"%s\",%s");
for (const auto& transfer : all_transfers) for (const auto& transfer : all_transfers)
{ {

@ -1,5 +1,5 @@
#define DEF_MONERO_VERSION_TAG "@VERSIONTAG@" #define DEF_MONERO_VERSION_TAG "@VERSIONTAG@"
#define DEF_MONERO_VERSION "0.10.0.1" #define DEF_MONERO_VERSION "0.10.0.2"
#define DEF_MONERO_RELEASE_NAME "Junkie Jeff" #define DEF_MONERO_RELEASE_NAME "Junkie Jeff"
#define DEF_MONERO_VERSION_FULL DEF_MONERO_VERSION "-" DEF_MONERO_VERSION_TAG #define DEF_MONERO_VERSION_FULL DEF_MONERO_VERSION "-" DEF_MONERO_VERSION_TAG
#define DEF_MONERO_VERSION_IS_RELEASE @VERSION_IS_RELEASE@ #define DEF_MONERO_VERSION_IS_RELEASE @VERSION_IS_RELEASE@

@ -855,7 +855,7 @@ bool WalletImpl::setPassword(const std::string &password)
return status() == Status_Ok; return status() == Status_Ok;
} }
std::string WalletImpl::getPassword() const const std::string& WalletImpl::getPassword() const
{ {
return m_password; return m_password;
} }

@ -96,7 +96,7 @@ public:
std::string errorString() const override; std::string errorString() const override;
void statusWithErrorString(int& status, std::string& errorString) const override; void statusWithErrorString(int& status, std::string& errorString) const override;
bool setPassword(const std::string &password) override; bool setPassword(const std::string &password) override;
std::string getPassword() const override; const std::string& getPassword() const override;
bool setDevicePin(const std::string &password) override; bool setDevicePin(const std::string &password) override;
bool setDevicePassphrase(const std::string &password) override; bool setDevicePassphrase(const std::string &password) override;
std::string address(uint32_t accountIndex = 0, uint32_t addressIndex = 0) const override; std::string address(uint32_t accountIndex = 0, uint32_t addressIndex = 0) const override;

@ -552,7 +552,7 @@ struct Wallet
//! returns both error and error string atomically. suggested to use in instead of status() and errorString() //! returns both error and error string atomically. suggested to use in instead of status() and errorString()
virtual void statusWithErrorString(int& status, std::string& errorString) const = 0; virtual void statusWithErrorString(int& status, std::string& errorString) const = 0;
virtual bool setPassword(const std::string &password) = 0; virtual bool setPassword(const std::string &password) = 0;
virtual std::string getPassword() const = 0; virtual const std::string& getPassword() const = 0;
virtual bool setDevicePin(const std::string &pin) { (void)pin; return false; }; virtual bool setDevicePin(const std::string &pin) { (void)pin; return false; };
virtual bool setDevicePassphrase(const std::string &passphrase) { (void)passphrase; return false; }; virtual bool setDevicePassphrase(const std::string &passphrase) { (void)passphrase; return false; };
virtual std::string address(uint32_t accountIndex = 0, uint32_t addressIndex = 0) const = 0; virtual std::string address(uint32_t accountIndex = 0, uint32_t addressIndex = 0) const = 0;

Loading…
Cancel
Save