aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2017-10-19core: do not forbid txes without destinationmoneromooo-monero1-6/+0
This was spuriously forbidden in the recent subaddress patch, which isn't inherently incompatible with these.
2017-10-19core: don't add empty additional pub keys field to extramoneromooo-monero1-1/+1
Saves a couple bytes per tx
2017-10-15remove reference to cryptonote::null_hashJaquee1-3/+3
2017-10-12blockchain: avoid exceptions in output verificationmoneromooo-monero1-2/+12
This can happen if we get a bad tx, so let's not spam the log.
2017-10-11core: guard against a mined block not finding all txes in the poolmoneromooo-monero1-1/+9
This can happen for several reasons, but mainly if another block was received, which took that tx off the pool.
2017-10-07Subaddresseskenshi842-8/+115
2017-10-03construct_tx_and_get_tx_key: return sorted sources for print_ring_memebrs to ↵stoffu2-4/+4
work properly
2017-09-29core: fix failure to sync when a tx is already in the poolmoneromooo-monero3-9/+28
2017-09-27core: remove out sorting from v7 rulesmoneromooo-monero2-37/+4
and restore random shuffle of outputs This turned out to have a flaw (sort order depends on output index), and this doesn't really bring much anyway
2017-09-27core: fix logging the one time public key on errormoneromooo-monero1-1/+1
2017-09-27blockchain: fix off by one getting blocksmoneromooo-monero1-2/+2
2017-09-26core: undo output sortingmoneromooo-monero1-0/+2
It looks like it may be buggy
2017-09-25core: fix creation of v1 txesmoneromooo-monero1-1/+2
2017-09-25checkpoints: add a token checkpoint on testnet (the genesis block)moneromooo-monero1-1/+1
2017-09-25fix typo in basic and core CMakeLists.txtmoneromooo-monero1-1/+1
2017-09-25move checkpoints in a separate librarymoneromooo-monero3-3/+2
2017-09-25tx_pool: pre-init tvc.m_verifivation_failed before processingmoneromooo-monero1-3/+3
CID 175316
2017-09-25tx_pool: guard against failure getting tx hashmoneromooo-monero1-1/+2
Should be impossible in practice, but easy change CID 175282
2017-09-25core: check return value from parse_hexstr_to_binbuffmoneromooo-monero1-2/+3
2017-09-25get_blockchain_top now returns voidmoneromooo-monero2-5/+2
It was always returning true, and could not be foreseen to usefully return errors in the future. This silences CID 162652 as well as saves some checking code in a few places.
2017-09-22Source updates are in a source subdirectorymoneromooo-monero1-1/+2
rather than in the same directory as the prebuilt versions
2017-09-21build: auto update version info without manually deleting version.hstoffu1-0/+1
2017-09-20tx_pool: drop invalid txes from the pool on startupmoneromooo-monero1-3/+23
instead of just failing This is a workaround for bad tx blobs being inserted in the pool for unknown reasons
2017-09-20blockchain: fix crash checking pre-validated txidsmoneromooo-monero1-2/+2
2017-09-18precomputed block hashes are now in blocks of N (currently 256)moneromooo-monero4-9/+133
This shaves a lot of space off binaries
2017-09-18blockchain: reject unsorted ins and outs from v7moneromooo-monero1-0/+39
This ensures no information is leaked by the ordering
2017-09-17Use actual batch size for resize estimatesHoward Chu1-1/+10
And optimize import startup: Remember start_height position during initial count_blocks pass to avoid having to reread entire file again to arrive at start_height
2017-09-17protocol: remove hop count on block propagationmoneromooo-monero1-1/+0
It is unused, as it was apparently a future optimization, and it leaks some information (though since pools publish thei blocks they find, that amount seems small).
2017-09-16tx_pool: set the "invalid input" bit when check_tx_inputs failsmoneromooo-monero1-0/+1
2017-09-14Use a threadpoolHoward Chu3-97/+56
Instead of constantly creating and destroying threads
2017-09-14Remove 1.25x multiplier from tx_poolNano Akron1-1/+1
2017-09-13core: sort ins and outs key key image and public key, respectivelymoneromooo-monero2-6/+32
This avoids leaking some small amount of information
2017-09-12core: guard against exceptions in tx verification worker threadsmoneromooo-monero1-2/+18
2017-09-06update checkpoint hashesRiccardo Spagni1-1/+1
2017-09-05json serialization for rpc-relevant monero typesThomas Winget5-1/+112
Structured {de-,}serialization methods for (many new) types which are used for requests or responses in the RPC. New types include RPC requests and responses, and structs which compose types within those. # Conflicts: # src/cryptonote_core/blockchain.cpp
2017-09-05Refactor some things into more composable (smaller) functionsThomas Winget2-73/+179
This commit refactors some of the rpc-related functions in the Blockchain class to be more composable. This change was made in order to make implementing the new zmq rpc easier without trampling on the old rpc. New functions: Blockchain::get_num_mature_outputs Blockchain::get_random_outputs Blockchain::get_output_key Blockchain::get_output_key_mask_unlocked Blockchain::find_blockchain_supplement (overload) functions which previously had this functionality inline now call these functions as necessary.
2017-09-04tx_pool: catch exceptions in LockedTXN dtormoneromooo-monero1-1/+1
This might prevent some calls to terminate when the LockedTXN dtor is called as part of stack unwinding caused by another exception in the first place.
2017-09-03Add a --fluffy-blocks option to relay blocks as fluffy blocksmoneromooo-monero2-0/+11
Defaults to off, but fluffy blocks are forced enabled on testnet
2017-08-31DRY refactoringThomas Winget2-1/+13
2017-08-29tx_pool: wrap tx meta updates in a LockedTXNmoneromooo-monero1-0/+3
2017-08-29Fix blockchain_import wedge on exception in cleanup_handle_incoming_blocksmoneromooo-monero2-5/+17
2017-08-29core: guard against exceptions in handle_incoming_{block,tx}moneromooo-monero1-0/+8
When one happens, cleanup must be called or the incoming tx lock will stay locked
2017-08-29move db specific options to BlockchainDBmoneromooo-monero1-6/+4
Avoids common depending on blockchain_db, which can cause link errors.
2017-08-26blockchain: cap memory size of retrieved blocksmoneromooo-monero1-2/+7
It helps keep memory usage down when a wallet refreshes through a string of large blocks
2017-08-26rpc: add a new RPC to get current txpool backlog (sizes and fees)moneromooo-monero4-0/+31
2017-08-25txpool: update db tx metadata when it changesmoneromooo1-1/+15
2017-08-25txpool: add tx size median to the pool statsmoneromooo1-1/+5
2017-08-23tx_pool: fix crash in statsHoward Chu1-1/+1
if tx receive_time == now. supersedes #2322
2017-08-22Cleanup test impact of adding safesyncmode() methodHoward Chu2-0/+12
2017-08-20Toggle SAFE syncmode on and off automaticallyHoward Chu3-2/+30
If monerod is started with default sync mode, set it to SAFE after synchronization completes. Set it back to FAST if synchronization restarts (e.g. because another peer has a longer blockchain). If monerod is started with an explicit sync mode, none of this automation takes effect.
2017-08-19DB cleanupHoward Chu1-23/+7
Hide LMDB-specific stuff behind blockchain_db.h. Nobody besides blockchain_db.cpp should ever be including DB-specific headers any more.
2017-08-18core: add mainnet v6 fork height at 1400000moneromooo-monero1-0/+3
2017-08-17cryptonote_protocol: large block sync size before v4moneromooo-monero2-3/+11
2017-08-15protocol: pass blockchain cumulative difficulty when syncingmoneromooo-monero4-0/+23
Not used yet.
2017-08-12core: add --db-salvage command line flagmoneromooo-monero1-0/+7
Use to load the database when the primary meta page is corrupted
2017-08-10tests: fix tests buildmoneromooo-monero2-0/+24
Add get_fork_version and add_ideal_fork_version to core so cryptonote_protocol does not have to need the Blockchain class directly, as it's not in its dependencies, and add those to the fake core classes in tests too.
2017-08-09protocol: add checks for top block hard fork versionmoneromooo-monero1-0/+9
We won't even talk to a peer which claims a wrong version for its top block. This will avoid syncing to known bad peers in the first place. Also add IP fails when failing to verify a block.
2017-08-07change mixin to ring size in user visible placesmoneromooo-monero2-7/+7
2017-08-07core: fix invalid memory access creating txmoneromooo-monero1-1/+1
2017-08-07core: new API to disable DNS checkpoint lookupsmoneromooo-monero2-1/+10
2017-08-07blockchain: add testnet v6 fork height at 971400moneromooo-monero1-0/+2
2017-08-07core: thread most of handle_incoming_txmoneromooo-monero2-25/+104
2017-08-04blockchain: log more info when we reject an orphanmoneromooo-monero1-1/+3
We want to know what happened when a block is wrongly rejected
2017-08-03blockchain: remove a few unused variablesmoneromooo-monero2-14/+4
2017-08-01core: speed up output index unique set calculationmoneromooo-monero1-8/+8
A sort+uniq step was done for every tx in a 200 block chunk, causing a lot of repeated scanning as the size of the offset map got larger with every added tx. We now do the step only once at the end of the loop. Doing it this way potentially uses more memory, but testing shows that it's currently only about 2% more.
2017-07-31some include cleanupmoneromooo-monero1-0/+1
2017-07-31core: add a message when loading checkpoints at init timemoneromooo-monero1-0/+2
This uses DNS, which can take a while, so it's useful to know this is the culprit when loading pauses
2017-07-30tx_pool: remove obsolete unused m_config_folder fieldmoneromooo-monero1-1/+0
2017-07-30blockchain: skip checking tx semantics in embedded block hash rangemoneromooo-monero3-1/+17
If the txes are bad, this'll be picked up by the block hash mismatch since the tx merkle root is part of the block hash.
2017-07-29core: fix lock ordering bug at init timemoneromooo-monero1-1/+2
2017-07-28blockchain: fix cryptonight buffer leak on exitmoneromooo-monero1-1/+1
2017-07-27blockchain: ensure all blocks get their longhash precalculatedmoneromooo-monero2-2/+4
If the number of blocks to check was not a multiple of the number of preparation threads, the last few blocks would not be included in the threaded long hash calculation. Those would still get calculated when the block gets added to the chain, however, so this was only a tiny performance hit, rather than a security bug.
2017-07-27blockchain: pass correct height to get_block_longhashmoneromooo-monero1-4/+2
2017-07-25core: randomly shuffle outputsmoneromooo-monero1-1/+1
They used to be sorted by amount, which was fine before rct, but is now suboptimal, since amounts are not known anymore. In particular, it would give a recipient knowledge of whether change was higher or lower than the amount received.
2017-07-24blockchain: one off warning when seeing a block with unknown versionmoneromooo-monero1-0/+14
2017-07-22core: forbid duplicate ring members from v6moneromooo-monero2-0/+31
This avoids someone adding what amounts to mixin 0 rings in practice, as there is no other good reason to allow this.
2017-07-02tx_pool: initialize padding in txpool meta structuremoneromooo-monero1-0/+2
2017-07-02cryptonote_core: initialize checkpoint flagmoneromooo-monero1-0/+1
2017-06-23Fix mismatch of parameter name between header file and implementation for ↵Julien Klepatch1-3/+2
set_user_options()
2017-06-11blockchain_db: add a txpool tx getter which returns existencemoneromooo-monero3-2/+7
Avoids exception spam for the "nope, not found" case
2017-06-04Add histogram to poolstatsHoward Chu1-1/+47
2017-06-01Speedup print_pool_statsHoward Chu4-0/+45
Since we're just counting txs, there's no reason to deserialize all the blobs.
2017-06-01Don't copy blockchain for coinbase_tx_sumHoward Chu3-7/+12
Changed Blockchain::for_all_blocks() to for_blocks_range() Operate on blockchain in-place instead of building a copy first.
2017-05-31tx_pool: add missing blockchain lock in add_txmoneromooo-monero1-0/+5
2017-05-25Move txpool to the databasemoneromooo-monero6-278/+484
Integration could go further (ie, return_tx_to_pool calls should not be needed anymore, possibly other things). poolstate.bin is now obsolete.
2017-05-23changed crypto to cncrypto so it generated libcncryptoGentian1-1/+1
fix a cmakelist
2017-05-10Update sync time copyxmr-eric1-1/+1
2017-04-19Add expected total reward to RPC "getblocktemplate".assylias6-8/+11
Only works from V5 fork onward - returns 0 before that block.
2017-04-12Fix block_longhash_worker threadhyc1-1/+3
Wasn't getting its stack size initialized; crashes on Android with a default stack size of 1MB.
2017-04-04tx_pool: add blob size and fee/byte when logging a new txmoneromooo-monero1-1/+1
2017-03-25core: avoid possible reordering bugs wth tx/bloch hash cachemoneromooo-monero1-3/+3
2017-03-24Fixed typo in v5 hard fork finalized dateDerek Zhang1-1/+1
2017-03-24blockchain: offset v5 addition date on testnetmoneromooo-monero1-1/+1
to silence the update warning, since v5 was done very early on testnet
2017-03-23tx_pool: ensure txes loaded from poolstate.bin have their txid cachedmoneromooo-monero1-5/+6
The txid is not saved, and we want to make sure the transactions have their txid cached while in the pool, since get_transactions copies the transaction object, so any txid calculation on those copies would not benefit any later caller, since the original tx would be left without a cached txid.
2017-03-23tx_pool: remove transactions if they're in the blockchainmoneromooo-monero1-1/+9
When starting up, if the pool state was not saved, the pool might contain transactions which made it into the blockchain, so these need removing
2017-03-23core, wallet: faster tx pool scanningmoneromooo-monero4-1/+28
Includes a new RPC to get tx pool hashes fast.
2017-03-23core: cache tx and block hashes in the respective classesmoneromooo-monero1-0/+6
An idea from smooth
2017-03-21tx_pool: silence use of uninitialized warningmoneromooo-monero1-1/+1
The result is not actually used when uninitialized
2017-03-20blockchain: lower the relay fee by 2%moneromooo-monero1-1/+1
This ensures we accept txes with a fee that's slightly too small, to accomodate blockchain median jitter
2017-03-20tx_pool: use new filling algorithm from v5 onlymoneromooo-monero1-20/+30
2017-03-19core: call {prepare|cleanup}_handle_incoming_blocks when adding a mined blockmoneromooo-monero1-0/+17
This ensures that a batch can't also be started/stopped out of sync by another thread and us getting in the middle
2017-03-18Removed boost/asio.hpp include from epee/string_tools.hLee Clagett1-0/+1
2017-03-15Add intervening v5 fork for increased min block sizemoneromooo-monero3-29/+28
Minimum mixin 4 and enforced ringct is moved from v5 to v6. v5 is now used for an increased minimum block size (from 60000 to 300000) to cater for larger typical/minimum transaction size. The fee algorithm is also changed to decrease the base per kB fee, and add a cheap tier for those transactions which we do not care if they get delayed (or even included in a block).
2017-03-12core: don't try to re-relay an empty set of pool transactionsmoneromooo-monero1-1/+1
2017-03-10fix dependency: put HardFork back to cryptonote_basic, made some ↵kenshi844-685/+1
BlockchainDB functions virtual again to avoid missing symbols error
2017-03-05blockchain: don't try to load an empty block hash setmoneromooo-monero1-1/+1
If the blocks aren't being linked against a binary (such as one of the blockchain utilities), the symbol will not be NULL, but the size will be 0. This avoids a apurious warning about the data hash.
2017-03-05core: print the "new update found" message in cyan, for visibilitymoneromooo-monero1-2/+2
2017-03-05core: make update download cancellablemoneromooo-monero2-17/+55
2017-03-03core: quantize per kB fee to 8 decimalsmoneromooo-monero1-1/+19
2017-03-03tx_pool: log separately "not ready" and "double spend" casesmoneromooo-monero1-2/+8
2017-03-03Fix #1824 don't end batch that we didn't startHoward Chu1-2/+3
2017-02-25core: move hardfork back to cryptonote_coremoneromooo-monero4-1/+684
should fix a cross dependency betewen cryptonote_basic and blockchain_db
2017-02-23core: protect precomputed block hashes with SHA256moneromooo-monero1-1/+28
2017-02-23core: bound the amount of entries in bad tx semantics cachemoneromooo-monero2-6/+16
This is to prevent unbounded memory use. Since I don't think there is a container that has quick insert, quick lookup, and automatic FIFO, I use two and swap every N, clearing the oldest one.
2017-02-23core: remove a couple unused/obsolete bitsmoneromooo-monero1-3/+0
2017-02-22updates: remove testnet casemoneromooo-monero1-1/+1
It need not be any different
2017-02-22updates: we now have a user URL, and an automatic onemoneromooo-monero1-1/+2
So the user can use https, while the automatic does not have to
2017-02-22updates: s/monerod/monero/ for the main downloadmoneromooo-monero1-2/+2
Also print download success message as global log
2017-02-21core: do not download an update we already downloadedmoneromooo-monero1-14/+23
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni10-10/+10
2017-02-21Fix core_tests breaking on startupmoneromooo-monero1-0/+2
You're wondering how this fixes core tests, aren't you... It prevents the miner (initialized by cryptonote::core) from breaking trying to access arguments that were not added. Since the tests don't use the miner directly, it makes more sense to have cryptonote_core add those, since it also uses the miner.
2017-02-21core: add p2p bind port options from net_nodemoneromooo-monero1-0/+4
They're now used by core to determine the data directory to use for the txpool directory. This fixes an assert in the core tests, which don't use the RPC server, which normally initializes the P2P code.
2017-02-20core: updates can now be downloaded (and SHA256 hash checked)moneromooo-monero1-0/+30
2017-02-20core: test key images against validity domainmoneromooo-monero2-0/+28
2017-02-20Optionally query moneropulse DNS records to check for updatesmoneromooo-monero2-0/+64
It just checks and prints a message if there is a new version for now.
2017-02-20core: display any fork warning at startup toomoneromooo-monero1-1/+1
This is a good time for the operator to be around and see it
2017-02-20tx_pool: revert template filling changesmoneromooo-monero1-0/+16
They are not ready yet
2017-02-18Get rid of directory lockHoward Chu2-58/+0
We don't need it any more. Fixes issue #1633
2017-02-18Add a few read txns to streamlineHoward Chu1-0/+4
Slight perf gain, but mainly to reduce spam at loglevel 3
2017-02-14core: add a missing newline on a string to be loggedmoneromooo-monero1-1/+1
2017-02-13blockchain_db: add "raw" blobdata getters for block and transactionmoneromooo-monero4-41/+119
This speeds up operations such as serving blocks to syncing peers
2017-02-13blockchain_db: do not throw on expected partial results getting keysmoneromooo-monero1-1/+1
When scanning for outputs used in a set of incoming blocks, we expect that some of the inputs in their transactions will not be found in the blockchain, as they could be in previous blocks in that set. Those outputs will be scanned there at a later point. In this case, we add a flag to control wehther an output not being found is expected or not.
2017-02-12tx_pool: add a debug message when adding a tx to the poolmoneromooo-monero1-0/+1
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi8430-5388/+616
2017-02-05 bugfix: infinite recursion in get_account_address_from_str_or_urlkenshi841-1/+1
2017-02-02core: fix integrated addresses breaking with auto zero changemoneromooo-monero1-0/+2
Zero change is sent to a random address, which confuses the code which determines which key to use to encrypt the payment id. Ignore zero amounts for this purpose, so the payment id gets encrypted with the real destination's key.
2017-01-28Separate data per P2P portMiguel Herranz1-1/+11
poolstate.bin and p2pstate.bin are stored in .bitmonero/ if the default P2P port is being used. If another port is used both files are stored in .bitmonero/PORTNUMBER/.
2017-01-28core: set missing verifivation_failed flag when rejecting a txmoneromooo-monero1-0/+1
This fixes two core rct tests
2017-01-25Blockfill - Sort tx pool correctlyAlexis Enston1-2/+2
2017-01-25Blockfill - Take TX fees into account properlyAlexis Enston1-1/+1
2017-01-25Consider empty block when filling with TXsAlexis Enston1-1/+5
2017-01-24moved get_account_address_from_str_or_url from libcommon to libcryptonote_corekenshi842-1/+43
2017-01-23Update log messages to reflect fact we no longer need to type `exit` to save ↵NanoAkron1-5/+4
database before quitting
2017-01-22Remove boost/foreach.cpp includesMiguel Herranz5-5/+0
2017-01-22Replace BOOST_REVERSE_FOREACH with ranged forMiguel Herranz1-1/+2
2017-01-22Replace BOOST_FOREACH with C++11 ranged forMiguel Herranz4-26/+26
2017-01-22core: cache tx hashes of failing semantics txesmoneromooo-monero2-0/+10
2017-01-22rpc: fix orphan_status when getting blocksmoneromooo-monero4-5/+10
It was always set to false, even for orphan blocks
2017-01-21core: early out in handle_incoming_tx if already in pool or blockchainmoneromooo-monero1-0/+12
2017-01-16core: don't try to deserialize an empty extra to remove a fieldmoneromooo-monero1-0/+2
2017-01-16Change logging to easylogging++moneromooo-monero11-178/+210
This replaces the epee and data_loggers logging systems with a single one, and also adds filename:line and explicit severity levels. Categories may be defined, and logging severity set by category (or set of categories). epee style 0-4 log level maps to a sensible severity configuration. Log files now also rotate when reaching 100 MB. To select which logs to output, use the MONERO_LOGS environment variable, with a comma separated list of categories (globs are supported), with their requested severity level after a colon. If a log matches more than one such setting, the last one in the configuration string applies. A few examples: This one is (mostly) silent, only outputting fatal errors: MONERO_LOGS=*:FATAL This one is very verbose: MONERO_LOGS=*:TRACE This one is totally silent (logwise): MONERO_LOGS="" This one outputs all errors and warnings, except for the "verify" category, which prints just fatal errors (the verify category is used for logs about incoming transactions and blocks, and it is expected that some/many will fail to verify, hence we don't want the spam): MONERO_LOGS=*:WARNING,verify:FATAL Log levels are, in decreasing order of priority: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE Subcategories may be added using prefixes and globs. This example will output net.p2p logs at the TRACE level, but all other net* logs only at INFO: MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE Logs which are intended for the user (which Monero was using a lot through epee, but really isn't a nice way to go things) should use the "global" category. There are a few helper macros for using this category, eg: MGINFO("this shows up by default") or MGINFO_RED("this is red"), to try to keep a similar look and feel for now. Existing epee log macros still exist, and map to the new log levels, but since they're used as a "user facing" UI element as much as a logging system, they often don't map well to log severities (ie, a log level 0 log may be an error, or may be something we want the user to see, such as an important info). In those cases, I tried to use the new macros. In other cases, I left the existing macros in. When modifying logs, it is probably best to switch to the new macros with explicit levels. The --log-level options and set_log commands now also accept category settings, in addition to the epee style log levels.
2017-01-14Must wait for previous batch to finish before starting new oneHoward Chu1-1/+6
2017-01-14Tweak default db-sync-mode to fast:async:1Howard Chu1-4/+7
fsync the DB asynchronously, to allow block download/verification to proceed while syncing. Sync after every batch. Note that "fastest" still defaults to fastest:async:1000.
2017-01-14Use batch transactions when syncingHoward Chu1-2/+7
Faster throughput while avoiding corruption. I.e., makes running with --db-sync-mode safe more tolerable.
2017-01-14core: check block version for alt chains toomoneromooo-monero3-0/+36
This is incompatible with block version voting
2017-01-14rct: split rct checks between semantics and othermoneromooo-monero2-6/+47
Semantics can be checked early
2017-01-14fix do_not_relay not preventing relaying on a timermoneromooo-monero5-27/+40
Also print its value when printing pool
2017-01-13account: fix build error involving std::max and different typesmoneromooo-monero1-2/+6
2017-01-13core: ensure block size limit is set from the startmoneromooo-monero1-0/+2
It can now be queried by RPC, so it needs to be set before it is otherwise needed for consensus, even if no blocks had to be added (ie, exit and restart quickly).
2017-01-13Prioritize older transactions in the mempoolMiguel Herranz2-21/+26
The transactions are first prioritized by fee and in case the fees are equal by receive_time.
2017-01-12initialize timestamp to 0 and check for mktime() errorChris Vickio1-4/+4
2017-01-12Add start_time to get_info methods and show uptimeMiguel Herranz2-0/+15
2017-01-10fix time stats mixinluigi11111-3/+6
also add blobsize
2017-01-10Remove db-auto-remove-logsMiguel Herranz1-3/+0
2017-01-10Remove berkeley from db_type initializationMiguel Herranz1-12/+0
2017-01-09wallet cli: print originating block heights of mixin keys when making transferkenshi841-1/+1
2017-01-07blockchain: allow marking "tx not found" without an exceptionmoneromooo-monero1-5/+5
This is a normal occurence in many cases, and there is no need to spam the log with those when it is.
2017-01-07tx_pool: better block template filling algorithmmoneromooo-monero3-17/+33
Continue filling until we reach the block size limit, or the resulting coinbase decreases. Also remove old sanity check on block size, which is now not wanted anymore.
2017-01-02portable serializer: make signerd/unsigned tx portable, ignore archive ↵kenshi841-11/+22
version checking
2016-12-25core: invalidate difficulty cache when resetting blockchainmoneromooo-monero1-0/+1
2016-12-24tx_pool: fix uninitialized "last failed" fieldsmoneromooo-monero1-0/+2
2016-12-21add tx hash to time statsluigi11111-2/+5
Also miner tx hash to log level 1 (have you ever tried to find a testnet miner tx hash?)
2016-12-21core: fix recalculation of emission/feesmoneromooo-monero1-7/+4
It was counting things many, many times
2016-12-20also use portable serializer for boost_serialization_helper.h and ↵kenshi843-5/+0
net_node.inl, completely adandon boost/archive/binary_oarchive.hpp
2016-12-17rpc: new function and RPC to get alternative chain infomoneromooo-monero2-0/+39
2016-12-16added experimental boost::archive::portable_binary_{i|o}archivekenshi841-2/+6
2016-12-13blockchain: fix reorganizations past a hard fork boundarymoneromooo-monero1-0/+3
After popping blocks from the old chain, the hard fork object's notion of the current version was not in line with the new height, causing the first blocks from the new chain to be rejected due to a false expection of a newer version.
2016-12-13update checkpointsRiccardo Spagni1-0/+3
2016-12-09Fix sending outputs from a tx with more than one pubkeymoneromooo-monero2-10/+14
A bug in cold signing caused a spurious pubkey to be included in transactions, so we need to ensure we use the correct one when sending outputs from one of those.
2016-12-08blockchain: fix setting non trovial alternate chain as invalidmoneromooo-monero1-4/+4
The wrong iterator was being used. Also preincrement iterators to avoid possibly invalidating them, I'm not sure this is necessary, but let's be safe.
2016-12-06blockchain: bring the v4 fork height one block forwardluigi11111-3/+3
This will ensure the early 0.10 daemons will barf at the fork height, and not a bit later, which could be confusing.
2016-12-04ringct: switch to Borromean signaturesShen Noether1-4/+4
2016-12-04Fix a few minor typosPierre Boyer4-7/+7
2016-12-04Fix delayed exit when syncingmoneromooo-monero3-2/+26
2016-12-01blockchain: use high bound block reward on error where appropriatemoneromooo-monero1-1/+7
If the block reward to use for the fee calculation can't be calculated (should not happen in practice), use a high bound, so we use a fee overestimate that will be accepted by the network.
2016-11-28blockchain: reject invalid pubkeys from v4moneromooo-monero1-0/+13
2016-11-27change 'invalid address format' loglevelJaquee1-1/+1
2016-11-22Add a get_outs (fully text based) version of get_outs.binmoneromooo-monero4-4/+4
2016-11-16wallet2: try all tx keys when scanning a new transactionmoneromooo-monero1-2/+2
The vast majority of transactions will have just one tx pubkey, but a bug with cold wallet signing caused two such keys to be there, with the second one being the real one.
2016-11-15core: remove any tx pubkey from extra before adding onemoneromooo-monero1-0/+1
This will happen when signing a transaction from a cold wallet, and we don't want the placeholder the hot wallet put in it.
2016-11-09add lightweight block propagation ("fluffy blocks")Dion Ahmetaj2-0/+19
Added a new command to the P2P protocol definitions to allow querying for support flags. Implemented handling of new support flags command in net_node. Changed for_each callback template to include support flags. Updated print_connections command to show peer support flags. Added p2p constant for signaling fluffy block support. Added get_pool_transaction function to cryptnote_core. Added new commands to cryptonote protocol for relaying fluffy blocks. Implemented handling of fluffy block command in cryptonote protocol. Enabled fluffy block support in node initial configuration. Implemented get_testnet function in cryptonote_core. Made it so that fluffy blocks only run on testnet.
2016-11-01refresh speedupluigi11112-0/+8
Compute derivation only once per tx, instead of once per output. Approx 33% faster while using 75% as much CPU on my machine. Note old functions in cryptonote_core (lookup_acc_outs and is_out_to_acc) are still used by tests.
2016-10-31rpc: add a dynamic fee estimation RPC callmoneromooo-monero2-0/+44
2016-10-31core: dynamic fee algorithm from ArticMinemoneromooo-monero3-5/+80
The fee will vary based on the base reward and the current block size limit: fee = (R/R0) * (M0/M) * F0 R: base reward R0: reference base reward (10 monero) M: block size limit M0: minimum block size limit (60000) F0: 0.002 monero Starts applying at v4
2016-10-30core: fix removal of extra nonce using wrong typemoneromooo-monero1-1/+1
2016-10-23daemon: report transaction relay status in print_pool* commandsmoneromooo-monero1-0/+2
2016-10-23core: notify the txpool when transactions are relayedmoneromooo-monero2-0/+19
2016-10-22tx_pool: set relayed flag on relaymoneromooo-monero1-0/+3
2016-10-15wallet: select part of the fake outs from recent outputsmoneromooo-monero2-3/+4
25% of the outputs are selected from the last 5 days (if possible), in order to avoid the common case of sending recently received outputs again. 25% and 5 days are subject to review later, since it's just a wallet level change.
2016-10-14patched parameter type bug that was causing failure on 32 bitDion Ahmetaj2-2/+2