From 0ac4b8e63e37ad24978faa0deff2514e32c28d22 Mon Sep 17 00:00:00 2001 From: wowario Date: Thu, 19 Apr 2018 04:21:25 +0300 Subject: [PATCH] increase ringsize to 10 --- src/cryptonote_config.h | 1 + src/cryptonote_core/blockchain.cpp | 2 +- src/simplewallet/simplewallet.cpp | 6 +++--- src/wallet/api/wallet.cpp | 2 +- src/wallet/wallet2.cpp | 12 ++++++++---- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h index 84d624381..62d4f476b 100755 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -136,6 +136,7 @@ #define HF_VERSION_DYNAMIC_FEE 4 #define HF_VERSION_MIN_MIXIN_4 6 #define HF_VERSION_MIN_MIXIN_7 7 +#define HF_VERSION_MIN_MIXIN_9 10 #define HF_VERSION_ENFORCE_RCT 6 #define PER_KB_FEE_QUANTIZATION_DECIMALS 8 diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index 11259724e..a12d77930 100755 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -2561,7 +2561,7 @@ bool Blockchain::check_tx_inputs(transaction& tx, tx_verification_context &tvc, { size_t n_unmixable = 0, n_mixable = 0; size_t mixin = std::numeric_limits::max(); - const size_t min_mixin = hf_version >= HF_VERSION_MIN_MIXIN_7 ? 7 : hf_version >= HF_VERSION_MIN_MIXIN_4 ? 4 : 2; + const size_t min_mixin = hf_version >= HF_VERSION_MIN_MIXIN_9 ? 9 : hf_version >= HF_VERSION_MIN_MIXIN_7 ? 7 : hf_version >= HF_VERSION_MIN_MIXIN_4 ? 4 : 2; for (const auto& txin : tx.vin) { // non txin_to_key inputs will be rejected below diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index eecc845a5..9b2d3a30e 100755 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -85,9 +85,9 @@ typedef cryptonote::simple_wallet sw; #define EXTENDED_LOGS_FILE "wallet_details.log" -#define DEFAULT_MIX 7 +#define DEFAULT_MIX 9 -#define MIN_RING_SIZE 8 // Used to inform user about min ring size -- does not track actual protocol +#define MIN_RING_SIZE 10 // Used to inform user about min ring size -- does not track actual protocol #define OUTPUT_EXPORT_FILE_MAGIC "Monero output export\003" @@ -2136,7 +2136,7 @@ simple_wallet::simple_wallet() "store-tx-info <1|0>\n " " Whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference.\n " "default-ring-size \n " - " Set the default ring size (default and minimum is 5).\n " + " Set the default ring size (default and minimum is 10).\n " "auto-refresh <1|0>\n " " Whether to automatically synchronize new blocks from the daemon.\n " "refresh-type \n " diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp index b02884f67..595d76533 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -60,7 +60,7 @@ namespace Monero { namespace { // copy-pasted from simplewallet - static const size_t DEFAULT_MIXIN = 4; + static const size_t DEFAULT_MIXIN = 9; static const int DEFAULT_REFRESH_INTERVAL_MILLIS = 1000 * 10; // limit maximum refresh interval as one minute static const int MAX_REFRESH_INTERVAL_MILLIS = 1000 * 60 * 1; diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index d650514cd..11de9f3f0 100755 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -5265,10 +5265,14 @@ int wallet2::get_fee_algorithm() const //------------------------------------------------------------------------------------------------------------------------------ uint64_t wallet2::adjust_mixin(uint64_t mixin) const { - if (mixin < 7 && use_fork_rules(7, 10)) { + if (mixin < 9 && use_fork_rules(8, 10)) { + MWARNING("Requested ring size " << (mixin + 1) << " too low for hard fork 8, using 10"); + mixin = 9; + } + else if (mixin < 7 && use_fork_rules(7, 10)) { MWARNING("Requested ring size " << (mixin + 1) << " too low for hard fork 7, using 7"); mixin = 7; - } + } else if (mixin < 4 && use_fork_rules(6, 10)) { MWARNING("Requested ring size " << (mixin + 1) << " too low for hard fork 6, using 5"); mixin = 4; @@ -8092,14 +8096,14 @@ const wallet2::transfer_details &wallet2::get_transfer_details(size_t idx) const std::vector wallet2::select_available_unmixable_outputs(bool trusted_daemon) { // request all outputs with less than 3 instances - const size_t min_mixin = use_fork_rules(7, 10) ? 7 : 2; // v6 increases min mixin from 2 to 4 + const size_t min_mixin = use_fork_rules(8, 10) ? 9 : 2; // v8 increases min mixin from 7 to 9 return select_available_outputs_from_histogram(min_mixin + 1, false, true, false, trusted_daemon); } //---------------------------------------------------------------------------------------------------- std::vector wallet2::select_available_mixable_outputs(bool trusted_daemon) { // request all outputs with at least 3 instances, so we can use mixin 2 with - const size_t min_mixin = use_fork_rules(7, 10) ? 7 : 2; // v6 increases min mixin from 2 to 4 + const size_t min_mixin = use_fork_rules(8, 10) ? 9 : 2; // v8 increases min mixin from 7 to 9 return select_available_outputs_from_histogram(min_mixin + 1, true, true, true, trusted_daemon); } //----------------------------------------------------------------------------------------------------