You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
monero-core-custom/changes when upgrading mone...

297 lines
8.7 KiB

1. vendor libsodium crypto_verify to contrib/libsodium
2. this should be compatible with "#include <sodium/crypto_verify_32.h>"
=================
diff -r src/common/base58.cpp /Users/paulshapiro/Documents/Repos/monero-core-custom/common/base58.cpp
38,39c38,39
< #include "int-util.h"
< #include "util.h"
---
> #include "common/int-util.h"
> //#include "util.h"
// ^----- this doesn't need to be done anymore
===================
util.h and util.cpp are heavily modified to include (almost only)
#include <boost/thread/thread.hpp>
and support only
void set_max_concurrency(unsigned n)
{
if (n < 1)
n = boost::thread::hardware_concurrency();
unsigned hwc = boost::thread::hardware_concurrency();
if (n > hwc)
n = hwc;
boost::lock_guard<boost::mutex> lock(max_concurrency_lock);
max_concurrency = n;
}
unsigned get_max_concurrency()
{
boost::lock_guard<boost::mutex> lock(max_concurrency_lock);
return max_concurrency;
}
====================
account.cpp:
< crypto::secret_key account_base::generate(const crypto::secret_key& recovery_key, bool recover, bool two_random)
---
> crypto::secret_key account_base::generate(const crypto::secret_key& recovery_key, bool recover, bool two_random, bool from_legacy16B_lw_seed)
153c87
< keccak((uint8_t *)&m_keys.m_spend_secret_key, sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key));
---
> keccak((uint8_t *)&(from_legacy16B_lw_seed ? first : m_keys.m_spend_secret_key), sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key));
====================
< crypto::secret_key generate(const crypto::secret_key& recovery_key = crypto::secret_key(), bool recover = false, bool two_random = false);
< void create_from_device(const std::string &device_name);
< void create_from_device(hw::device &hwdev);
---
> crypto::secret_key generate(const crypto::secret_key& recovery_key = crypto::secret_key(), bool recover = false, bool two_random = false, bool from_legacy16B_lw_seed = false);
> void create_from_device(const std::string &device_name) ;
102,106d89
====================
diff -r src/cryptonote_basic/cryptonote_basic_impl.cpp /Users/paulshapiro/Documents/Repos/monero-core-custom/cryptonote_basic/cryptonote_basic_impl.cpp
44c44
< #include "common/dns_utils.h"
---
> // #include "common/dns_utils.h"
================
cryptonote_basic_impl
< bool get_account_address_from_str_or_url(
< address_parse_info& info
< , network_type nettype
< , const std::string& str_or_url
< , std::function<std::string(const std::string&, const std::vector<std::string>&, bool)> dns_confirm
< )
< {
< if (get_account_address_from_str(info, nettype, str_or_url))
< return true;
< bool dnssec_valid;
< std::string address_str = tools::dns_utils::get_account_address_as_str_from_url(str_or_url, dnssec_valid, dns_confirm);
< return !address_str.empty() &&
< get_account_address_from_str(info, nettype, address_str);
< }
---
> // //--------------------------------------------------------------------------------
> // bool get_account_address_from_str_or_url(
> // address_parse_info& info
> // , network_type nettype
> // , const std::string& str_or_url
> // , std::function<std::string(const std::string&, const std::vector<std::string>&, bool)> dns_confirm
> // )
> // {
> // if (get_account_address_from_str(info, nettype, str_or_url))
> // return true;
> // bool dnssec_valid;
> // std::string address_str = tools::dns_utils::get_account_address_as_str_from_url(str_or_url, dnssec_valid, dns_confirm);
> // return !address_str.empty() &&
> // get_account_address_from_str(info, nettype, address_str);
> // }
=======================
diff -r src/cryptonote_core/cryptonote_tx_utils.cpp /Users/paulshapiro/Documents/Repos/monero-core-custom/cryptonote_core/cryptonote_tx_utils.cpp
40c40
< #include "cryptonote_basic/miner.h"
---
> //#include "cryptonote_basic/miner.h"
...... and comment functions like construct_miner_tx
< bool construct_miner_tx(size_t height, size_t median_weight, uint64_t already_generated_coins, size_t current_block_weight
, uint64_t fee, const account_public_address &miner_address, transaction& tx, const blobdata& extra_nonce, size_t max_outs, ui
nt8_t hard_fork_version) {
> // bool construct_miner_tx(size_t height, size_t median_size, uint64_t already_generated_coins, size_t current_block_size, uint64_t fee, const account_public_address &miner_address, transaction& tx, const blobdata& extra_nonce, size_t max_outs, uint8_t hard_fork_version) {
--- and ---
> // bool generate_genesis_block(
> // block& bl
> // , std::string const & genesis_tx
> // , uint32_t nonce
> // )
> // {
=============
diff -r src/cryptonote_core/cryptonote_tx_utils.h /Users/paulshapiro/Documents/Repos/monero-core-custom/cryptonote_core/cryptonote_tx_utils.h
> // bool construct_miner_tx(size_t height, size_t median_weight, uint64_t already_generated_coins, size_t current_block_weight, uint64_t fee, const account_public_address &miner_address, transaction& tx, const blobdata& extra_nonce = blobdata(), size_t max_outs = 999, uint8_t hard_fork_version = 1);
-and-
> // bool generate_genesis_block(
> // block& bl
> // , std::string const & genesis_tx
> // , uint32_t nonce
> // );
============
diff -r src/ringct/bulletproofs.cc /Users/paulshapiro/Documents/Repos/monero-core-custom/ringct/bulletproofs.cc
32,33d31
< #include <openssl/ssl.h>
< #include <openssl/bn.h>
36,37c34
< #include "common/perf_timer.h"
< #include "cryptonote_config.h"
---
> // #include "common/perf_timer.h"
* comment calls to PERF_TIMER_UNIT / PERF_TIMER_START_BP / PERF_TIMER_STOP
* replace invert with:
/* Compute the inverse of a scalar, the naive way */
static rct::key invert(const rct::key &x)
{
static const rct::key l_minus_2 = { {0xeb, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 } };
rct::key inv = rct::identity();
rct::key tmp = x;
for (int n = 0; n < 256; ++n)
{
if (l_minus_2[n>>3] & (1<<(n&7)))
sc_mul(inv.bytes, inv.bytes, tmp.bytes);
sc_mul(tmp.bytes, tmp.bytes, tmp.bytes);
}
return inv;
}
* probably can remove bulletproof_VERIFY
==============
diff -r src/ringct/rctSigs.cpp /Users/paulshapiro/Documents/Repos/monero-core-custom/ringct/rctSigs.cpp
32c32
< #include "common/perf_timer.h"
---
> // #include "common/perf_timer.h"
and comment PERF_TIMER(verRange); etc
==============
edit multiexp.cc to comment out perf timer include and MULTIEXP_PERF( …
============
epee/include/misc_log_ex.h, and logger.h/cpp are heavily customized - don't overwrite -- update them from code shared with back-end
* add `#include <sstream>` to misc_log_ex.h
============
epee/include and epee/src mlocker.cpp:
* this might not be necessary
comment #define HAVE_MLOCK 1
and replace get_page_size with
return 4096; // just to remove some calls
// CRITICAL_REGION_LOCAL(mutex());
// if (page_size == 0)
// page_size = query_page_size();
// return page_size;
===========
important for 13-word support:
mnemonics/electrum-words.cpp
- return result.checksum() % crypto::ElectrumWords::seed_length;
+ return result.checksum() % word_list.size();
=========
for emscripten: (Note this might not actually make a difference - remove if confirmed not to)
crypto/slow-hash.c
-extern int aesb_single_round(const uint8_t *in, uint8_t*out, const uint8_t *expandedKey);
-extern int aesb_pseudo_round(const uint8_t *in, uint8_t *out, const uint8_t *expandedKey);
+extern void aesb_single_round(const uint8_t *in, uint8_t*out, const uint8_t *expandedKey);
+extern void aesb_pseudo_round(const uint8_t *in, uint8_t *out, const uint8_t *expandedKey);
-extern int aesb_single_round(const uint8_t *in, uint8_t*out, const uint8_t *expandedKey);
-extern int aesb_pseudo_round(const uint8_t *in, uint8_t *out, const uint8_t *expandedKey);
+extern void aesb_single_round(const uint8_t *in, uint8_t*out, const uint8_t *expandedKey);
+extern void aesb_pseudo_round(const uint8_t *in, uint8_t *out, const uint8_t *expandedKey);
=========
Note: this may not be necessary but might simplify emscripten compilation (remove this entry if confirmed not to)
epee/src/mlocker.cpp
-#define HAVE_MLOCK 1
+// #define HAVE_MLOCK 1
- CRITICAL_REGION_LOCAL(mutex());
- if (page_size == 0)
- page_size = query_page_size();
- return page_size;
+ return 4096;
+ // CRITICAL_REGION_LOCAL(mutex());
+ // if (page_size == 0)
+ // page_size = query_page_size();
+ // return page_size;
and comment out body of other function implementations