aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
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
2016-10-10print_coinbase_tx_sum now breaks output into fee and emission componentsDion Ahmetaj2-6/+20
2016-10-10changed params from start/end index to height/countDion Ahmetaj2-4/+4
2016-10-10attempted to remove whitespace spamDion Ahmetaj1-1/+1
2016-10-10Add performance timers for ringct tx verificationmoneromooo-monero2-0/+5
2016-10-10added print_coinbase_tx_sum optionDion Ahmetaj2-1/+22
2016-10-08core: remove some unused codemoneromooo-monero1-3/+0
2016-10-04Brackets to prevent premature returnNanoAkron1-0/+2
2016-10-04Brackets to ensure doesn't function prematurely returnNanoAkron1-0/+2
2016-10-03blockchain: avoid using a reference to a temporarymoneromooo-monero1-1/+1
2016-10-03Moved logging to target functions rather than callerNanoAkron4-17/+28
2016-10-03Removed all code related to fast_exitNanoAkron2-36/+1
2016-10-02Added messages at log level 2 to reflect deactivation procedureNanoAkron1-0/+4
2016-09-27wallet: cold wallet transaction signingmoneromooo-monero2-5/+26
This change adds the ability to create a new unsigned transaction from a watch only wallet, and save it to a file. This file can then be moved to another computer/VM where a cold wallet may load it, sign it, and save it. That cold wallet does not need to have a blockchain nor daemon. The signed transaction file can then be moved back to the watch only wallet, which can load it and send it to the daemon. Two new simplewallet commands to use it: sign_transfer (on the cold wallet) submit_transfer (on the watch only wallet) The transfer command used on a watch only wallet now writes an unsigned transaction set in a file called 'unsigned_monero_tx' instead of submitting the tx to the daemon as a normal wallet does. The signed tx file is called 'signed_monero_tx'.
2016-09-26cryptonote_core: make extra field removal more genericmoneromooo-monero2-4/+4
2016-09-26Dropped "bit" from bitmonero.Randi Joseph1-2/+2
2016-09-26Dropped "bit" from bitmonero.Randi Joseph1-2/+2
2016-09-25Revert "Fix fake 'network synchronized, begin using' messages"moneromooo-monero1-4/+1
This reverts commit 78035d2b6c9922f4cd730df0766aa74f4854ccb2. The patch doesn't work, and causes constant SYNCHRONIZED OK spam.
2016-09-24core: make the sync chunk block count overridablemoneromooo-monero2-0/+14
2016-09-24blockchain: do not reject chain histories matching only genesismoneromooo-monero1-8/+0
This is fine if our local chain is so small that it is entirely contained within the last jump in the peer's short chain history.
2016-09-18fix v5 heightRiccardo Spagni1-1/+1
2016-09-18fix v5 fork date descriptionRiccardo Spagni1-1/+1
2016-09-18updated fork heights for v4 and v5Riccardo Spagni1-0/+7
2016-09-18add checkpointsRiccardo Spagni1-0/+2
2016-09-18miner: do not try to save config if the path isn't setmoneromooo-monero1-1/+2
This saves on an exception dump when trying to write to / after finding a block.
2016-09-18cmake: transitive deps and remove deprecated LINK_*redfish1-3/+3
Keep the immediate direct deps at the library that depends on them, declare deps as PUBLIC so that targets that link against that library get the library's deps as transitive deps. Break dep cycle between blockchain_db <-> crytonote_core. No code refactoring, just hide cycle from cmake so that it doesn't complain (cycles are allowed only between static libs, not shared libs). This is in preparation for supproting BUILD_SHARED_LIBS cmake built-in option for building internal libs as shared.
2016-09-15compile errors fixed when PER_BLOCK_CHECKPOINT not definedrckngOpossum1-1/+3
2016-09-15compile errors fixed when DEBUG_CREATE_BLOCK_TEMPLATE definedrckngOpossum3-2/+8
2016-09-14rct: rework serialization to avoid storing vector sizesmoneromooo-monero3-22/+56
2016-09-14core: cleanup some typecastingmoneromooo-monero1-4/+4
2016-09-03fix nigglies, as pointed out by moneromooo-moneroRiccardo Spagni1-1/+1
2016-09-03fix remaining bitmonero and simplewallet bitsRiccardo Spagni1-2/+2
2016-08-31core: faster find_blockchain_supplementmoneromooo-monero1-6/+2
Since this queries block heights for blocks that may or may not exist, queries for non existing blocks would throw an exception, and that would slow down the loop a lot. 7 seconds to go through a 30 hash list. Fix this by adding an optional return block height to block_exists and using this instead. Actual errors will still throw an exception. This also cuts down on log exception spam.
2016-08-31Remove blocks_per_sync limitsHoward Chu2-6/+5
The code used to cap at 5000 blocks per sync. It also treated 0 as 1. Remove these checks; if specified as 0 do no periodic syncs at all. Then the user is responsible for syncing in some external process.
2016-08-29core: allow empty global indices for txes with empty voutmoneromooo-monero1-1/+6
2016-08-28blockchain: testnet heights for v3, v4, and v5moneromooo-monero1-0/+4
2016-08-28core: use full rct signatures if just one inputmoneromooo-monero1-1/+4
It is slightly smaller, but requires all rings to have the real input on the same index, so can only be used for single input txes.
2016-08-28wallet: transfer_selected_rct now also selects fake outsmoneromooo-monero1-2/+2
2016-08-28increase minimum mixin to 4 on hard fork 5moneromooo-monero1-2/+3
2016-08-28core: allow v1 txes after HF 5 when sweeping unmixable outputsmoneromooo-monero2-16/+19
2016-08-28New "Halfway RingCT" outputs for coinbase transactionsmoneromooo-monero5-19/+34
When RingCT is enabled, outputs from coinbase transactions are created as a single output, and stored as RingCT output, with a fake mask. Their amount is not hidden on the blockchain itself, but they are then able to be used as fake inputs in a RingCT ring. Since the output amounts are hidden, their "dustiness" is not an obstacle anymore to mixing, and this makes the coinbase transactions a lot smaller, as well as helping the TXO set to grow more slowly. Also add a new "Null" type of rct signature, which decreases the size required when no signatures are to be stored, as in a coinbase tx.
2016-08-28rct amount key modified as per luigi1111's recommendationsmoneromooo-monero2-5/+10
This allows the key to be not the same for two outputs sent to the same address (eg, if you pay yourself, and also get change back). Also remove the key amounts lists and return parameters since we don't actually generate random ones, so we don't need to save them as we can recalculate them when needed if we have the correct keys.
2016-08-28rct: rework v2 txes into prunable and non prunable datamoneromooo-monero4-20/+69
Nothing is pruned, but this allows easier changes later.
2016-08-28rct: rework the verification preparation processmoneromooo-monero3-133/+114
The whole rct data apart from the MLSAGs is now included in the signed message, to avoid malleability issues. Instead of passing the data that's not serialized as extra parameters to the verification API, the transaction is modified to fill all that information. This means the transaction can not be const anymore, but it cleaner in other ways.
2016-08-28rct: change the simple flag to a typemoneromooo-monero3-11/+22
for future expansion
2016-08-28rct: avoid the need for the last II elementShen Noether2-18/+9
This element is used in the generation of the MLSAG, but isn't needed in verification. Also misc changes in the cryptonote code to match, by mooo.
2016-08-28wallet: do not store signatures in the wallet cachemoneromooo-monero4-1/+17
Saves some substantial space. Also avoid calculating tx hashes we don't need.
2016-08-28core: add some locking around pool usemoneromooo-monero2-1/+4
2016-08-28rct: do not serialize senderPk - it is not used anymoremoneromooo-monero1-1/+1
2016-08-28tx_pool: log why a transaction was rejected for version checksmoneromooo-monero1-0/+3
2016-08-28change fork settings to allow pre-rct txes for one more fork cyclemoneromooo-monero2-3/+8
2016-08-28rct: make the amount key derivable by a third party with the tx keymoneromooo-monero1-7/+3
Scheme design from luigi1114.
2016-08-28rct: do not serialize public keys in outPkmoneromooo-monero3-13/+53
They can be reconstructed from vout
2016-08-28core: always use the new simple rct variantmoneromooo-monero1-1/+1
2016-08-28port get_tx_key/check_tx_key to rctmoneromooo-monero2-5/+15
2016-08-28integrate simple rct apimoneromooo-monero4-102/+229
2016-08-28ringct: "simple" ringct variantShen Noether1-0/+13
Allows the fake outs to be in different positions for each ring. For rct inputs only.
2016-08-28mixable transactions must be rct for v3moneromooo-monero2-6/+29
2016-08-28Condition v2 txes on v3 hard forkmoneromooo-monero2-1/+12
2016-08-28move the rct commitments to the output_amounts databasemoneromooo-monero1-23/+2
Since these are needed at the same time as the output pubkeys, this is a whole lot faster, and takes less space. Only outputs of 0 amount store the commitment. When reading other outputs, a fake commitment is regenerated on the fly. This avoids having to rewrite the database to add space for fake commitments for existing outputs. This code relies on two things: - LMDB must support fixed size records per key, rather than per database (ie, all records on key 0 are the same size, all records for non 0 keys are same size, but records from key 0 and non 0 keys do have different sizes). - the commitment must be directly after the rest of the data in outkey and output_data_t.
2016-08-28rct: add the tx prefix hash into the MLSAGmoneromooo-monero1-3/+4
to protect the non-signatures parts of the tx from tampering.
2016-08-28ringct: do not serialize what can be reconstructedmoneromooo-monero2-24/+81
The mixRing (output keys and commitments) and II fields (key images) can be reconstructed from vin data. This saves some modest amount of space in the tx.
2016-08-28Use the supplied hard fork version in validate_miner_transactionmoneromooo-monero1-1/+1
rather than using the current one. No functional changes, but may save some bugs in the future.
2016-08-28add rct to the protocolmoneromooo-monero8-149/+451
It is not yet constrained to a fork, so don't use on the real network or you'll be orphaned or rejected.
2016-08-28make rct tx serialization workmoneromooo-monero1-0/+56
It may be suboptimal, but it's a pain to have to rebuild everything when some of this changes. Also, no clue why there seems to be two different code paths for serializing a tx...
2016-08-28core: link against libringctmoneromooo-monero1-0/+1
2016-08-28core: new /getrandom_rctouts.bin binary RPC callmoneromooo-monero4-0/+136
to get random ringct outputs to mix with
2016-08-28remove original Cryptonote blockchain_storage blockchain formatmoneromooo-monero8-2404/+0
2016-08-28Change default db-sync-mode to fast, not fastestHoward Chu1-13/+14
2016-08-23Fix fake 'network synchronized, begin using' messagesThomas Winget1-1/+4
2016-08-12daemon: print time to next forkmoneromooo-monero3-0/+26
2016-08-11Fake outs set is now decided by the walletmoneromooo-monero4-0/+46
This plugs a privacy leak from the wallet to the daemon, as the daemon could previously see what input is included as a transaction input, which the daemon hadn't previously supplied. Now, the wallet requests a particular set of outputs, including the real one. This can result in transactions that can't be accepted if the wallet happens to select too many outputs with non standard unlock times. The daemon could know this and select another output, but the wallet is blind to it. It's currently very unlikely since I don't think anything uses non default unlock times. The wallet requests more outputs than necessary so it can use spares if any of the returns outputs are still locked. If there are not enough spares to reach the desired mixin, the transaction will fail.
2016-08-01new unlocked parameter to output_histogrammoneromooo-monero2-3/+4
This constrains the number of instances of any amount to the unlocked ones (as defined by the default unlock time setting: outputs with non default unlock time are not considered, so may be counted as unlocked even if they are not actually unlocked).
2016-07-25hardfork: fix off by one in rescaning fork state after restartmoneromooo-monero1-3/+8
This code should die anyway.
2016-07-13remove hf_starting_height dbmoneromooo-monero2-24/+6
It's not really needed, it used to be an optimization for when that code was not using the db and needed to recalculate things fast on startup.
2016-06-06tx_extra: parse new chunk added by minergateblashyrkh1-1/+12
Patch from blashyrkh on forum.getmonero.org: https://forum.getmonero.org/5/support/2530/simplewallet-returns-invalid-paymentid
2016-05-01tests: fix tests broken by the removal of the block reward accumulation loopmoneromooo-monero1-1/+1
The tests for rejection of unmixable outputs in v2 are commented out, as there are no unmixable outputs created anymore. This should be restored at some point.
2016-05-01core: move tx_extra parsing errors to log level 1moneromooo-monero1-4/+4
They're not fatal, though indicate something wrong
2016-04-28add a --max-concurrency flagmoneromooo-monero1-3/+3
It sets the max number of threads to use for a parallel job. This is different that the number of total threads, since monero binaries typically start a lot of them.
2016-04-17blockchain: add missing overflow check for already generated coinsmoneromooo-monero1-1/+5
When reaching the tail emission phase, the amount of coins will eventually go over MONEY_SUPPLY, overflowing 64 bits. There was a check added to blockchain_storage, but this was not ported to the blockchain DB version. Reported by smooth.
2016-04-17blockchain: update cumulative block limit when popping a blockmoneromooo-monero1-0/+1
Avoids possible issues with accepting a tx too large to fit in an actual block. Reported by smooth.
2016-04-06blockchain: remove the tx validation result cachemoneromooo-monero2-19/+0
As pointed out by smooth, a transaction's validity may change over time as the blockchain changes.
2016-04-06tx_pool: fix (hopefully) save/load of kept_by_blockmoneromooo-monero1-0/+2
2016-04-05Schema update: tx_indices - improve further with less indirectionwarptangent1-2/+3
2016-04-05tx_pool: ensure no txes that fail check_inputs get in the block templatemoneromooo-monero1-1/+1
2016-04-02Fix potential race with parallel processing of txes/signatures/blocksmoneromooo-monero1-0/+1
2016-04-02core: keep the acc loop for the genesis blockmoneromooo-monero1-1/+13
For unknown reasons, it was generated with a block reward consisting of a single large dusty output.
2016-04-01core: remove the block reward accumulation loopmoneromooo-monero1-5/+1
This can generate non decomposed outputs for very large block rewards (or not so large ones if a miner decides to not quantize the block rewards). Out of an abundance of caution, we refuse to generate those. They are still accepted by the consensus code, however.
2016-03-30minor corrections/clarificationsThomas Winget2-4/+6
2016-03-27Convey tx verification failure reasons to the RPC clientmoneromooo-monero5-11/+39
This allows appropriate action to be taken, like displaying the reason to the user. Do just that in simplewallet, which should help a lot in determining why users fail to send. Also make it so a tx which is accepted but not relayed is seen as a success rather than a failure.
2016-03-26New RPC and daemon command to get output histogrammoneromooo-monero2-0/+14
This is a list of existing output amounts along with the number of outputs of that amount in the blockchain. The daemon command takes: - no parameters: all outputs with at least 3 instances - one parameter: all outputs with at least that many instances - two parameters: all outputs within that many instances The default starts at 3 to avoid massive spamming of all dust outputs in the blockchain, and is the current minimum mixin requirement. An optional vector of amounts may be passed, to request histogram only for those outputs.