aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2015-12-29wallet: store cache to file without unnecessary memory buffermoneromooo-monero1-6/+8
2015-12-29Tweak 45800a25e9374e63caaabba05c89585c86acd668hyc1-5/+5
trivial cleanup
2015-12-28wallet_rpc_server: exit async, so we reply to stop_wallet RPCmoneromooo-monero2-1/+11
Reported by saddam
2015-12-28blockchain_db: inform user about new format if blockchain.bin is foundmoneromooo-monero1-0/+22
2015-12-28blockchain: always stop the ioservice before returningmoneromooo-monero1-0/+2
Fixes a use after free
2015-12-28wallet: do not return error if incoming_transfers finds nonemoneromooo-monero1-5/+0
reported by saddam
2015-12-28db_lmdb: safety close db at exitmoneromooo-monero1-0/+3
Noticed by hyc Also set m_open to false when closed
2015-12-28db_lmdb: fix a strdup/delete[] mistmatchmoneromooo-monero1-3/+6
2015-12-27Remove assert from status commandhyc1-1/+1
Crashes every time...
2015-12-26BlockchainDB: skip fixup check if read-only databasewarptangent6-0/+32
2015-12-26blockchain: remove obsolete containersmoneromooo-monero2-8/+1
2015-12-26blockchain: Fix height in call to on_blockchain_decmoneromooo-monero1-1/+1
It was a noop anyway
2015-12-26hardfork: ensure current_fork_index can not become negative on rescanmoneromooo-monero1-1/+1
2015-12-25blockchain: fix a few block addition bugsmoneromooo-monero2-34/+46
If the block reward was too high, the verification failed flag was set, but the function continued. The code which was supposed to trap this flag and return failure failed to trap it, and, while the block was not added to the chain, the function would return success. The reason for avoiding returning when the block reward problem was detected was to be able to return any transactions to the pool if needed. This is now mooted by moving the transaction return code to a separate function, which is now called at all appropriate points, making the logic much simpler, and hopefully correct now. We also move the hard fork version check after the prev_id check, as block which does not go on the top of the chain might not have the expected version there, without being invalid just for this reason. Last, we trap the case where a block fails to be added due to using already spent key images, to set the verification failed flag.
2015-12-25blockchain: fix an off by one error in unlocked time checkmoneromooo-monero1-1/+1
2015-12-25blockchain: reinstate double spending checks in check_tx_inputsmoneromooo-monero1-3/+7
This fixes some double spending tests. This may or may not be unneeded in normal (non test) circumstances, to be determined later. Keeping these for now may be slower, but safer.
2015-12-25blockchain: make some flag twiddling code closer to the originalmoneromooo-monero1-2/+2
Probably paranoid and unnecessary
2015-12-25blockchain: fix bitflipping test with quantized block rewardsmoneromooo-monero3-2/+6
Block reward may now be less than the full amount allowed. This was breaking the bitflipping test. We now keep track of whether a block which was accepted by the core has a lower than allowed block reward, and allow this in the test.
2015-12-25blockchain: add missing m_tx_pool.on_blockchain_decmoneromooo-monero1-0/+1
It was missing in the port to DB. This is actually a noop, so should not have functional changes.
2015-12-25blockchain: fix switch to alternative blockchain for more than one blockmoneromooo-monero1-1/+1
When rolling over more than one block, the db height will decrease, but the split height should be constant, as per the original code.
2015-12-25blockchain: add a missing validity check to rollback_blockchain_switchingmoneromooo-monero1-0/+6
It was present in the original code
2015-12-25core: catch exceptions from get_output_keymoneromooo-monero1-2/+18
This can happen when trying to find an amount that does not exist, and fixes a core test.
2015-12-25db: throw when given a non txout_to_key output to addmoneromooo-monero3-0/+13
The check was explicit in the original version, so it seems safer to make it explicit here, especially as it is now done implicitely in a different place, away from the original check.
2015-12-24BlockchainDB: Remove txs in reverse orderwarptangent1-3/+5
Data should be removed in the reverse order it was added. Not doing so breaks assumptions and can cause problems in other DB implementations. This matches the order of tx removal in blockchain_storage::purge_block_data_from_blockchain.
2015-12-24BlockchainLMDB: When removing, find amount output index fast by starting at endwarptangent1-4/+5
This improves blockchain reorganization time by allowing one of the more expensive DB lookups when popping a block to not have to seek through a long dup list in the "output_amounts" subdb. This is most noticeable for HDDs. As before, the dup list is still walked if necessary (but in reverse), and the global output index still confirmed to be the one looked for. But under proper use, the result will be found at the end of the dup list, so we start there. Removing an amount output index is always done in the context of popping a block, so the global output index being looked for should be the last one in that amount key's dup list. Even if the txs themselves aren't removed in reverse order (supposed to be according to original implementation), the specified amount output index will still be near the end, because the txs are in the same block. TEST: Pop blocks with blockchain_import. Blocks should be successfully removed with no errors shown. bitmonerod should be able to start syncing from the reduced blockchain height.
2015-12-24BlockchainLMDB: Remove tx outputs in reverse orderwarptangent1-5/+5
Data should be removed in the reverse order it was added. This matches the order of removal in blockchain_storage::pop_transaction_from_global_index.
2015-12-24fixed missing parenthesisRiccardo Spagni1-1/+1
2015-12-24fix for 'failed to generate new wallet: failed to save file' error during ↵Lex Kalinkin1-3/+5
wallet generation
2015-12-23changed height to uint64_tBrendan Telzrow1-4/+4
2015-12-23added RPC wallet command getheightBrendan Telzrow3-1/+35
2015-12-22net_node: fix a hang on exitmoneromooo-monero1-1/+1
One loop was not paying attention to the stop signal, and could end up looping forever
2015-12-21Strip redundant includeshyc8-24/+4
In particular, <boost/program_options.hpp> blows up daemon.cpp.obj, making it too big to compile in debug mode on Win32. Even on a release build it drops daemon.cpp.o on Linux from 31MB to 20MB. This has no effect on the final linked binary size.
2015-12-20wallet: fix load/save versioning bug for recently added tx datamoneromooo-monero1-2/+5
The version number passed to those data's serialize function was always 0, not the wallet's version as I had expected. A version number now exists for these structures so they're versioned correctly.
2015-12-19Allow the wallet to access hard fork informationmoneromooo-monero8-8/+63
And make it change behavior slightly when close/after first hard fork
2015-12-19Add missing semicolons after log statementsmoneromooo-monero8-12/+12
2015-12-18print top block hash in daemon diff commandmoneromooo-monero3-1/+11
and add top block hash in get_info RPC
2015-12-17replace std::auto_ptr with std::unique_ptrmoneromooo-monero2-3/+3
The former is obsolete
2015-12-17move another non user useful log to L1moneromooo-monero1-1/+1
2015-12-17p2p: minor log formatting fixmoneromooo-monero1-1/+1
2015-12-17wallet: save to a temporary file, then renamemoneromooo-monero2-1/+20
This should avoid most of wallet cache corruption cases
2015-12-15Replace tabs and remove trailing whitespacewarptangent1-24/+24
2015-12-15Optionally restrict DNS queries to TCPwarptangent1-3/+24
Sample use: DNS_PUBLIC=tcp torsocks bin/bitmonerod --p2p-bind-ip 127.0.0.1 Test: Run above with --log-level 4 with and without DNS_PUBLIC environment variable set. DNS debugging info should show successful DNS lookups only when DNS_PUBLIC is set to "tcp": DNS lookup for seeds.moneroseeds.se: 17 results DNS lookup for seeds.moneroseeds.ae.org: 17 results DNS lookup for seeds.moneroseeds.ch: 12 results DNS lookup for seeds.moneroseeds.li: 12 results
2015-12-15Fix typowarptangent2-2/+2
2015-12-15blockchain.cpp: Change indentation from 4 to 2 spaceswarptangent1-2255/+2253
2015-12-15Replace tabs with two spaces for consistency with rest of codebasewarptangent25-1308/+1306
Remove trailing whitespace in same files.
2015-12-14Revert connection limit to more customary 8Javier Smooth1-1/+1
2015-12-14db_lmdb: always use a batch tx if possiblemoneromooo-monero1-290/+127
Also wrap that code in two prefix/suffix macros so they are easier to use and not forget. Also add consts to returned data casts where applicable.
2015-12-14Tone down L0 logs during daemon sync some moremoneromooo-monero2-3/+3
2015-12-14hardfork: only accept major versions we know aboutmoneromooo-monero1-0/+1
2015-12-14Tone down a bit L0 logs during daemon syncmoneromooo-monero2-3/+11
2015-12-13daemon: fix crash exiting with ^Cmoneromooo-monero1-1/+1
We need to stop the p2p layer, which causes the rest to shutdown gracefully. Hitting ^C was still going through another path.
2015-12-13posix_daemonizer: only create the main daemon object in the last childmoneromooo-monero1-1/+1
This prevents the intermediate thread from exiting properly, as fork creates a child process with only one thread, so any existing data_logger thread will not be in the child. Since this thread sets a flag the data_logger dtor blocks on, all children threads will hang on exit.
2015-12-13Add LMDB error string to database transaction exception messagewarptangent1-68/+74
When throwing an exception from being unable to begin an LMDB transaction, include the reason. It's often been due to a write transaction attempted within a write transaction (batch mode), but there can be other reasons such as write transaction attempted while database was opened read only, or environment's map needs to be resized.
2015-12-13add a --fakechain argument for testsmoneromooo-monero6-8/+23
The core tests use the blockchain, and reset it to be able to add test data to it. This does not play nice with the databases, since those will save that data without an explicit save call. We add a fakechain flag that the tests will set, which tells the core and blockchain code to use a separate database, as well as skip a few things like checkpoints and fixup, which only make sense for real data.
2015-12-13blockchain: log block (not chain) height in "BLOCK SUCCESFULLY ADDED"moneromooo-monero1-1/+1
This makes it log the same height as the original code, which is less confusing when comparing behaviors.
2015-12-13blockchain: fix off by one in get_blocksmoneromooo-monero1-1/+1
2015-12-13db_lmdb: implement BlockchainLMDB::resetmoneromooo-monero1-1/+27
It is needed by the core tests
2015-12-13db_bdb: implement BlockchainBDB::resetmoneromooo-monero1-1/+40
It is needed by the core tests
2015-12-13tx_pool: fix "minumim" typo in messagemoneromooo-monero1-1/+1
2015-12-13db_lmdb: create all needed directories, not just the leaf onemoneromooo-monero1-1/+1
2015-12-13db_bdb: create all needed directories, not just the leaf onemoneromooo-monero1-1/+1
2015-12-11Stop displaying internal commands for --helpluigi11111-1/+1
Displaying in-program commands with --help doesn't match daemon behaviour (or make sense)
2015-12-11simplewallet help & error cleanupluigi11111-120/+120
Typos, grammar, consistency. I don't claim to have gotten everything.
2015-12-10Fix data refs in read-only txnsHoward Chu1-16/+42
Data is only guaranteed to be valid within the lifetime of a txn. You cannot use data returned from LMDB after the txn ends. Also, fixed a missing txn.commit BlockchainLMDB::get_tx_unlock_time()
2015-12-08Register daemon command line arguments to core if they're used in coremoneromooo-monero7-69/+76
This fixes coretests, which does not register daemon specific arguments, but uses core, which uses those arguments. Also gets rid of an unwanted dependency on daemon code from core.
2015-12-07net_node: add a --offline argumentmoneromooo-monero2-0/+12
It will not try to connect to the monero network, nor listen
2015-12-07daemon: add mining status to the status commandmoneromooo-monero1-8/+22
2015-12-07db_bdb: move log_set_config call before openmoneromooo-monero1-3/+3
This is a precaution for older Berkeley DB versions. - smooth reports an issue running with 4.7: DB_ENV->log_set_config: DB_LOG_IN_MEMORY: method not permitted after handle's open method - this works just fine with 5.3 - we do not use DB_LOG_IN_MEMORY, but we use DB_LOG_AUTO_REMOVE - libdb docs say some flags must be set before open, and some may be set at any time, but never say some must be set after open - moving the call to log_set_config before open works with 5.3 Therefore, it seems best to move the call before open.
2015-12-07db_bdb: support for libdb without DB_FORCESYNCmoneromooo-monero1-0/+34
2015-12-07p2p: failure to load p2pstate.bin is not fatal anymoremoneromooo-monero1-2/+11
Clear any partially loaded data, and start with a default config
2015-12-06blockchain_db: fixup missing key images in early DB versionmoneromooo-monero7-0/+605
Early DB versions did not store key images for inputs if the transaction spending them had no outputs (ie, all fee). This is not correct, as this would allow these outputs to be double spent. This was fixed in 533acc30eda7792c802ea8b6417917fa99b8bc2b a few months ago, but databases having synced blocks 2021612 and 685498 with a faulty version will be missing those key images in the spent keys database. This code checks for this, and adds those key images if they are missing.
2015-12-05wallet: make the wallet refresh type a wallet settingmoneromooo-monero4-34/+93
instead of a command line setting. It makes sense that is is a long lived setting.
2015-12-05wallet: default auto-refresh to true for old walletsmoneromooo-monero1-0/+1
2015-12-05blockchain_db: make the indexing base a BlockchainDB virtual functionmoneromooo-monero3-3/+6
2015-12-05wallet: add a stop_wallet RPC callmoneromooo-monero3-0/+40
2015-12-05blockchain_dump: fix output key dump for BDB 1-based indicesmoneromooo-monero1-2/+5
Berkeley DB uses 1 based indices for RECNO databases, and the implementation of BlockchainDB for Berkeley DB assumes 1 based indices are passed to the API, whereas the LMDB one assumes 0 based indices. This is all internally consisteny, but since the BDB code stores 1 based indices in the database, external users have to be aware of this, as the indices will be off by one depending on which DB is used.
2015-12-04db_bdb: read 32 bit heights from keysmoneromooo-monero1-1/+1
Keys in Berkeley DB are 32 bits. We don't want to read random bits in the high part.
2015-11-30wallet2: default auto-refresh to true for preexisting walletsmoneromooo-monero1-1/+1
2015-11-30Revert "Merge pull request #506"Riccardo Spagni1-2/+2
This reverts commit c6bf73131aaf804cb17f24c856f826be2761a566, reversing changes made to 8a52cf4055d247dd4b162985c931e99683992e3c.
2015-11-29wallet: cancellable refreshmoneromooo-monero5-14/+58
^C while in manual refresh will cancel the refresh, since that's often an annoying thing to have to wait for. Also, a manual refresh command will interrupt any running background refresh and take over, rather than wait for the background refresh to be done, and look to be hanging.
2015-11-29simplewallet: add tr markers in a few missing user visible stringsmoneromooo-monero1-8/+8
2015-11-29simplewallet: swap colors in show_transfersmoneromooo-monero1-1/+1
Green is now used for incoming transfers, and magenta for outgoing transfers. This is consistent to the scheme used by other logging.
2015-11-29wallet2: remove confirmed transactions from detached blocksmoneromooo-monero1-0/+8
2015-11-28wallet2: speed up wallet refresh for large minersmoneromooo-monero1-14/+47
2015-11-28wallet: optional automatic refresh from the daemonmoneromooo-monero4-11/+122
The daemon will be polled every 90 seconds for new blocks. It is enabled by default, and can be turned on/off with set auto-refresh 1 and set auto-refresh 0 in the wallet.
2015-11-27core: serialize block major/minor versions as bytes, not varintsmoneromooo-monero1-2/+2
This allows them to be saved as a fixed (one byte) chunk whatever the value. Using a varint will use two bytes as the high bit gets set. This is backward compatible with current usage (0-2 values).
2015-11-27core_rpc_server: add a --restricted-rpc optionmoneromooo-monero2-12/+22
It does not expose the RPC for commands like start_mining, etc (ie, commands a public node operator might want to be restricted)
2015-11-27wallet2: parallelize pulling blocks and processing them on refreshmoneromooo-monero2-13/+49
This needed locking the use of m_http_client, to avoid collisions in I/O.
2015-11-27wallet2: maintain the short chain manually when refreshingmoneromooo-monero2-4/+17
2015-11-27wallet2: split pull blocks between pulling and processingmoneromooo-monero2-10/+20
2015-11-26rpc: pass current block target in rpcmoneromooo-monero3-2/+4
This fixes the hash rate being wrong on testnet after the switch to 2 minute blocks
2015-11-26add RPC calls and commands to get/set bansmoneromooo-monero11-4/+302
2015-11-25net_node: allow bans for custom amounts of timemoneromooo-monero2-4/+4
m_blocked_ips now stores the unblocking time, rather than the blocking time. Also change > to >=, since banning for 0 seconds should not ban
2015-11-25util: use putenv instead of setenv for mingwmoneromooo-monero1-0/+5
2015-11-24hardfork: fix more major/minor issuesmoneromooo-monero3-24/+26
Also add some more tests, and rename some instances of "version" and "add" for clarity. NOTE: the starting height values are sometimes wrong. I suspect this is due to the hard fork reorg code being buggy, since they're good when syncing after the fact. However, they're not actually used by the consensus code, so I'm ignoring this for now, but this needs debugging.
2015-11-23hardfork: fix rescan on loadmoneromooo-monero1-1/+1
2015-11-23Add IP blocking for misbehaving nodes (adapted from Boolberry)Javier Smooth6-2/+107
With minor cleanup and fixes (spelling, indent) by moneromooo
2015-11-23quiet down p2p logging a bitJavier Smooth1-1/+1
2015-11-23blockchain: log versions as numbers, not charactersmoneromooo-monero1-1/+1
2015-11-23hardfork: fix actual/voting confusionmoneromooo-monero1-3/+8
2015-11-23daemon: fix blockchain height display not updating after syncmoneromooo-monero1-1/+1
2015-11-22cn_deserialize: a new tool to decode blocks and transactionsmoneromooo-monero2-0/+196
2015-11-22add recent static checkpointJavier Smooth1-0/+1
2015-11-22wallet: make the refresh optimizations selectable via command linemoneromooo-monero4-6/+62
Take the opportunity to add a no-coinbase case too, for even faster sync when an address is known to never have mined to.
2015-11-22wallet: speedup refresh from daemonmoneromooo-monero2-38/+59
Assume the whole of a coinbase goes to the same address (so that if the first output isn't for us, none of it is), and only look for payment id when we received something in the transaction.
2015-11-22wallet2: minor cleanupmoneromooo-monero1-7/+4
- use std::vector::std::deque to not leak when exceptions happen - use std::unique_ptr instead of the deprecated std::auto_ptr
2015-11-22wallet2: speedup refresh a bitmoneromooo-monero2-3/+151
Use the NoodleDoodle threading technique to speedup a couple code blocks on the main path when refreshing blocks without any transactions for us.
2015-11-22fixed testnet fork point, added comment data back inRiccardo Spagni1-3/+3
2015-11-22wallet: storing outgoing tx info now defaults to enabledmoneromooo-monero1-2/+2
The info is stored encrypted, and is pretty useful, often after the fact.
2015-11-22wallet: rename store-tx-keys to store-tx-infomoneromooo-monero4-18/+19
With backward compatibility
2015-11-22wallet: improve show_transfersmoneromooo-monero3-14/+89
More information is now saved and displayed
2015-11-21wallet: use incoming blocks to keep track of payments toomoneromooo-monero3-5/+27
2015-11-21disable time-stats by default, tweak fast-block-sync descriptionRiccardo Spagni1-2/+2
2015-11-21update v2 testnet fork heightRiccardo Spagni1-3/+6
2015-11-21checkpoints updateRiccardo Spagni1-0/+0
2015-11-21simplewallet: lessen display flicker confusionmoneromooo-monero1-2/+2
Height seemed to be flying all over the place on a rescan here. Logging to a file shows the heights are actually correct, and this is some kind of screen refresh artifact. Flush after \r and update less often to reduce this effect a lot.
2015-11-21Fix startup crash when using a locale boost does not likemoneromooo-monero7-1/+33
There are various locale related bugs in various versions of boost, where exceptions are thrown in boost::filesystem APIs when the current locale is not to boost's liking. It's not clear what "not to boost's liking" means in detail, though "en" and "en_US.UTF-8" are not to its liking. Fix it by running a test function that's known to throw in such a case, and resetting LANG and LC_ALL to C if an exception is thrown. In simplewallet, the locale is queried before that so the correct translations will still be used.
2015-11-21i18n: allow language to be passed as a parametermoneromooo-monero2-5/+7
If empty, it will still be fetched from the environment
2015-11-21Relay transactions when they linger too long in the poolmoneromooo-monero9-31/+128
The last relayed time of a transaction is maintained, and transactions will be relayed again if they are still in the pool after a certain amount of time, which increases with the transaction's age. All such transactions are resent, whether or not they originated on the local node.
2015-11-15wallet: track outgoing payments and add a show_transfers commandmoneromooo-monero4-11/+166
It's a user friendly display of incoming and outgoing transfers, listed by height, within an optional height range.
2015-11-13Revert "db_bdb: record numbers for recno databases start at 1"moneromooo-monero1-3/+3
It looks like some of the indices passed to the DB access functions are already bumped by 1. Moreover, the existing code was not throwing DB errors with 0 keys, and this is unlikely if it really was using 0 keys. Last, this patch broke sync from scratch in at least one case. So I'm calling it bad and reverting it. This reverts commit bfc97401ae81bb30278a318de7f048c653bf6582.
2015-11-13More changes for 2-min blocksJavier Smooth6-13/+14
Use the correct block time for realtime fuzz on locktime Use the correct block time to calculate next_difficulty on alt chains (will not work as-is with voting) Lock unit tests to original block time for now
2015-11-13Adjust difficulty target (2 min) and full reward zone (60 kbytes) for block ↵Javier Smooth6-17/+29
version 2
2015-11-10hardfork: add a get_ideal_version(uint64_t) functionmoneromooo-monero2-0/+18
It returns the ideal version for a given height, which is based on the minimum height for a fork, disregarding votes
2015-11-08hardfork: allow per-fork voting thresholdsmoneromooo-monero3-21/+42
And setup the first fork to not vote
2015-10-30blockchain_dump: fix build without berkeley dbmoneromooo-monero1-0/+4
2015-10-30simplewallet: add a set default-mixin commandmoneromooo-monero4-5/+87
The default default mixin is 4. It can now be changed per wallet.
2015-10-30wallet2: fix CLANG compile errormoneromooo-monero1-1/+1
2015-10-28rpc: fix start_mining and status RPC crashesmoneromooo-monero5-6/+11
They check whether they're running on testnet by accessing the m_rpc_server object, which does not exist when in RPC mode. Also, fix hard_fork_info being called with the wrong API.
2015-10-27blockchain_utilities: properly exit on errormoneromooo-monero2-7/+7
Replace boolean values and exceptions where appropriate
2015-10-27Remove some old/obsolete/unused codemoneromooo-monero7-220/+0
git history's here if needed to get any of this back
2015-10-27common: const and init list pedantrymoneromooo-monero2-2/+3
2015-10-27Fix a possibly-unused warning, and rationalize typesmoneromooo-monero3-12/+12
2015-10-26Build fixes for the old blockchain_storage versionmoneromooo-monero3-8/+13
2015-10-26db_bdb: add versioning, to detect incompatible format changesmoneromooo-monero2-0/+83
2015-10-26db_lmdb: add versioning, to detect incompatible format changesmoneromooo-monero2-8/+85
2015-10-26renamed folderRiccardo Spagni174-4830/+0
2015-10-26rpc: fix hard_fork_info RPCmoneromooo-monero3-4/+8
I had never tested it, obviously
2015-10-26rpc: fix a few commands not working as command linemoneromooo-monero1-3/+3
The method name to the "json_rpc" commands are names, not part of URLs.
2015-10-25daemon: add a status commandmoneromooo-monero5-0/+71
Displays current block height and target, net hash, hard fork basic info, and connections. Useful as a basic user friendly "what's going on here" command.
2015-10-25Fix leak on real output when using a very recent outputmoneromooo-monero5-3/+14
The wallet and the daemon applied different height considerations when selecting outputs to use. This can leak information on which input in a ring signature is the real one. Found and originally fixed by smooth on Aeon.
2015-10-25blockchain_utilities: new blockchain_dump diagnostic toolmoneromooo-monero2-0/+458
It dumps data from the blockchain to a JSON format, and is intended to help detect differences between data held in different database formats.
2015-10-25Add functions to iterate through blocks, txes, outputs, key imagesmoneromooo-monero9-0/+362
2015-10-25db_bdb: record numbers for recno databases start at 1moneromooo-monero1-3/+3
2015-10-25db_bdb: DB_KEYEMPTY is also not found for non-top recon fieldsmoneromooo-monero1-2/+2
2015-10-25blockchain_db: use the DNE exceptions where appropriatemoneromooo-monero2-17/+19
2015-10-21hardfork: switch voting to block minor versionmoneromooo-monero3-9/+20
Using major version would cause older daemons to reject those blocks as they fail to deserialize blocks with a major version which is not 1. There is no such restriction on the minor version, so switching allows older daemons to coexist with newer ones till the actual fork date, when most will hopefully have updated already. Also, for the same reason, we consider a vote for 0 to be a vote for 1, since older daemons set minor version to 0.
2015-10-17blockchain_export can now export to a blocks.dat formatmoneromooo-monero11-38/+368
Also make the number of blocks endian independant, and add support for testnet
2015-10-17bootstrap_file: do not try to create a directory with an empty namemoneromooo-monero1-10/+13
This will happen if the chosen output file does not have a path specified
2015-10-17hardfork: use DB transactions when reorganizingmoneromooo-monero1-3/+3
It speeds up a lot, which can be significant when reorganizing from the genesis block to create the hard fork data.
2015-10-17hardfork: simplify work done on reloadmoneromooo-monero2-1/+40
There is no need to fully recalculate and rewrite state, just refill state from the DB.
2015-10-15renamed folderRiccardo Spagni174-4830/+0
2015-10-14simplewallet: add a check_tx_key commandmoneromooo-monero2-0/+106
It allows one to check the amount of monero sent to a particular address in a particular transaction, given that transaction's tx key
2015-10-14wallet2: really include non canonical outputs in dust sweepmoneromooo-monero1-1/+1
2015-10-13core_rpc_server: add optional json decoded tx to COMMAND_RPC_GET_TRANSACTIONSmoneromooo-monero2-0/+6
2015-10-13core_rpc_server: add a getblock RPC command, and fix print_blockmoneromooo-monero4-8/+104
2015-10-12simplewallet: hide start_mining behind --trusted-daemonmoneromooo-monero1-0/+6
because it leaks your standard address
2015-10-11simplewallet: add a --trusted-daemon flagmoneromooo-monero2-0/+10
It allows enabling the rescan_spent command only for trusted daemon
2015-10-11simplewallet: bump default mixin from 3 to 4moneromooo-monero1-1/+1
As recommended in MRL-0004
2015-10-11from hard fork 2, all outputs must be decomposedmoneromooo-monero6-48/+67
The wallet decomposes fully as of now too.
2015-10-10from hard fork 2, claim a quantized reward in coinbasemoneromooo-monero4-4/+22
The small leftover is carried forward
2015-10-10cryptonote_format_utils: add a function to tell if an amount is canonicalmoneromooo-monero2-0/+31
2015-10-05Update to compile with latest miniupnpcwarptangent1-0/+6
upnpDiscover() takes a new argument for TTL. Use the suggested default of 2.
2015-10-04build: default to Berkeley DB for 32 bit and ARMmoneromooo-monero1-1/+1
2015-10-04db_bdb: fix hard fork keysmoneromooo-monero1-4/+4
Berkeley DB requires RECNO keys to be 32 bits, and forbids a key value of 0.
2015-10-04hardfork: move an assert so it actually worksmoneromooo-monero1-1/+1
An unsigned quantity is always >= 0
2015-09-27blockchain: on hardfork 2, require mixin 2 at least if possiblemoneromooo-monero1-0/+37
2015-09-27hardfork: make the voting window a weekmoneromooo-monero1-1/+1
2015-09-27hardfork: rescan speedupmoneromooo-monero3-15/+41
Add a block height before which version 1 is assumed Use DB transactions
2015-09-27hardfork: remove use of GNU extension for initializing objectmoneromooo-monero2-4/+5
2015-09-27blockchain: on hardfork 2, allow miners to claim less money than allowedmoneromooo-monero1-3/+7
So they can avoid dust if they so wish
2015-09-27hardfork: change window semantics to not count the newly added blockmoneromooo-monero1-5/+20
This allows knowing the hard fork a block must obey in order to be added to the blockchain. The previous semantics would use that new block's version vote to determine this hard fork, which made it impossible to use the rules to validate transactions entering the tx pool (and made it impossible to validate a block before adding it to the blockchain).
2015-09-27blockchain: use different hard fork settings for testnet and mainnetmoneromooo-monero1-3/+19
2015-09-27dns_utils: fix wrong assertsmoneromooo-monero1-2/+2
Braino.
2015-09-20hardfork: most state now saved to the DBmoneromooo-monero9-100/+321
There will be a delay on first load of an existing blockchain as it gets reparsed for this state data.
2015-09-20hardfork: remove the "parts are copyright cryptonote" noticesmoneromooo-monero2-4/+0
I coded the whole thing from scratch.
2015-09-19Add an RPC call and daemon command to get info on hard fork votingmoneromooo-monero13-5/+169
2015-09-19blockchain: force a hardfork recalculation at load timemoneromooo-monero1-0/+3
Since the state isn't actually saved anywhere, as the archive code isn't called in the new DB version.
2015-09-19core: add consts where appropriatemoneromooo-monero6-79/+82
2015-09-13core: moan when we think an update is needed to get latest hard fork infomoneromooo-monero4-0/+35
2015-09-12blockchain: use the new hardfork classmoneromooo-monero3-8/+29
2015-09-12New hardfork classmoneromooo-monero3-2/+475
This keeps track of voting via block version, in order to decide when to enable a particular fork's code.
2015-09-12blockchain: add a couple missing includesmoneromooo-monero1-0/+2
2015-08-30dns_utils: remove unnecessary string conversionmoneromooo-monero1-5/+2
2015-08-30dns_utils: factor the fetching code for different DNS record typesmoneromooo-monero2-59/+34
2015-08-30dns_utils: simplify string handling and fix leakmoneromooo-monero1-5/+1
2015-08-27dns_utils: add a const where possiblemoneromooo-monero2-2/+2
2015-08-27dns_utils: lock access to the singletonmoneromooo-monero1-0/+4
This avoids races which could result in two objects being created
2015-08-27dns: make ctor privatemoneromooo-monero2-1/+15
This ensures one can't instanciate a DNSResolver object by mistake, but uses the singleton. A separate create static function is added for cases where a new object is explicitely needed.
2015-08-26Re-enable optimized slow-hash if someone is trying to compile w/MSVC ↵Javier Smooth1-1/+1
(disabling it was unintentional)
2015-08-26wallet: use mutex protected random generation apimoneromooo-monero2-2/+2
2015-08-24blockchain: remove obsolete call to libc srandmoneromooo-monero1-1/+0
crypto::rand is now used for output selection
2015-08-24simplewallet: add a store-tx-keys option to setmoneromooo-monero2-1/+46
To enable storing tx keys in the (now encrypted) wallet cache.
2015-08-24wallet: only return tx keys via RPC if requestedmoneromooo-monero6-11/+36
To get the tx keys returned via RPC, set the "get_tx_key" or "get_tx_keys" request field to true (defaults to false).
2015-08-23Added ref10 shen_ed25519_ref code, which includes code that can replace ↵ShenNoether174-0/+23117
crypto-ops with a version straight from Bernstein's ref 10
2015-08-23revert to 776b4fc91a821be152f0f23e6873aabb78a72029ShenNoether1-0/+0
2015-08-23Added shen_ed25519_ref to crypto ops subfolder, the point is to directly ↵ShenNoether1-0/+0
have bitmonero's crypto code come from bernstein et al's ref 10 code
2015-08-23use correct unsigned typeroman1-1/+2
2015-08-23removed some gcc warnings. mainly unused variables.roman4-7/+1
2015-08-22wallet: encrypt the cache filemoneromooo-monero2-2/+76
It contains private data, such as a record of transactions. The key is derived from the view and spend secret keys. The encryption currently is one shot, so may require a lot of memory for large wallet caches.