From eba62452c007623bf559e836cbe7e9f2f66a35e9 Mon Sep 17 00:00:00 2001 From: mydesktop Date: Thu, 26 Jun 2014 16:42:24 -0400 Subject: [PATCH] set max block size for gbt --- src/cryptonote_config.h | 1 + src/cryptonote_core/tx_pool.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h index 295f59e5..d271d2e4 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -6,6 +6,7 @@ #define CRYPTONOTE_MAX_BLOCK_NUMBER 500000000 #define CRYPTONOTE_MAX_BLOCK_SIZE 500000000 // block header blob limit, never used! +#define CRYPTONOTE_GETBLOCKTEMPLATE_MAX_BLOCK_SIZE 196608 //size of block (bytes) that is the maximum that miners will produce #define CRYPTONOTE_MAX_TX_SIZE 1000000000 #define CRYPTONOTE_PUBLIC_ADDRESS_TEXTBLOB_VER 0 #define CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX 18 // addresses start with "4" diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp index 1778c590..bf932404 100644 --- a/src/cryptonote_core/tx_pool.cpp +++ b/src/cryptonote_core/tx_pool.cpp @@ -424,6 +424,14 @@ namespace cryptonote if (tx.second.blob_size > upper_transaction_size_limit) continue; + // If adding this tx will make the block size + // greater than CRYPTONOTE_GETBLOCKTEMPLATE_MAX + // _BLOCK_SIZE bytes, reject the tx; this will + // keep block sizes from becoming too unwieldly + // to propagate at 60s block times. + if ( (total_size + tx.second.blob_size) > CRYPTONOTE_GETBLOCKTEMPLATE_MAX_BLOCK_SIZE ) + continue; + // If adding this tx will make the block size // greater than 130% of the median, reject the // tx; this will keep down largely punitive tx