aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2015-08-04wallet: set watch-only flag to false when creating a new walletmoneromooo-monero1-0/+1
2015-07-24slight modification to wordlist contributor tagline (as these contributors ↵Riccardo Spagni2-2/+2
haven't used git to submit a PR, so we're creating the wordlist on their behalf
2015-07-24added Russian wordlistRiccardo Spagni3-0/+1701
2015-07-23change unique_prefix_length=4 for japanese.hDavid Vorick1-1/+1
I ran some tests, and all prefixes seem to be unique for len(3)
2015-07-22add Germany and Italian wordlistsRiccardo Spagni4-0/+3402
2015-07-22wallet: new transaction construction algorithmmoneromooo-monero6-5/+438
It should avoid a lot of the issues sending more than half the wallet's contents due to change. Actual output selection is still random. Changing this would improve the matching of transaction amounts to output sizes, but may have non obvious effects on blockchain analysis. Mapped to the new transfer_new command in simplewallet, and transfer uses the existing algorithm. To use in RPC, add "new_algorithm: true" in the transfer_split JSON command. It is not used in the transfer command.
2015-07-22fix portuguese wordlistRiccardo Spagni1-3/+3
2015-07-22fix license on English wordlistRiccardo Spagni1-2/+0
2015-07-19simplewallet: fix context/string order mismatchmoneromooo-monero1-1/+1
2015-07-19simplewallet: use unsigned long long instead of size_t in messagemoneromooo-monero1-4/+4
boost doesn't support %zu for size_t, and the previous change to %u could technically lose bits (though it would require splitting a transfer into 4 billion transactions, which seems unlikely).
2015-07-18wallet: add boolean to always confirm transactions with the usermoneromooo-monero4-6/+82
This can be useful if you want to be given a veto over the tx fee, or if you want to see what a tx fee would be without actually sending.
2015-07-18boost doesn't like %zu for size_t, replace with %umoneromooo-monero1-2/+2
2015-07-18blockchain: fix testnet syncing (to not use blocks.dat)moneromooo-monero1-1/+1
These are mainnet blocks, and would cause syncing on testnet to reject all incoming blocks.
2015-07-17Fixed threadpool bug when running on single core systems.NoodleDoodleNoodleDoodleNoodleDoodleNoo1-5/+8
*Thanks to freshman for reporting bug.
2015-07-16Add batch support to BlockchainLMDB::get_output_keywarptangent1-6/+12
This allows blockchain_import to work with batch and verify modes enabled (the default).
2015-07-15Removed on_idle() calls to Blockchain::store_blockchain() for lmdb.NoodleDoodleNoodleDoodleNoodleDoodleNoo5-17/+53
Added option to cache tx-input verification results.
2015-07-15Fixed binary size issue due to embedded checkpoint data.NoodleDoodleNoodleDoodleNoodleDoodleNoo7-9/+15
Fixed OSX compilation issues due to random lmdb resize points. Fixed infinite loop bug when calling core::get_block_template(..).
2015-07-15Pause miner before preparing for incoming blocksNoodleDoodleNoodleDoodleNoodleDoodleNoo1-6/+5
2015-07-15** CHANGES ARE EXPERIMENTAL (FOR TESTING ONLY)NoodleDoodleNoodleDoodleNoodleDoodleNoo29-2315/+3946
Bockchain: 1. Optim: Multi-thread long-hash computation when encountering groups of blocks. 2. Optim: Cache verified txs and return result from cache instead of re-checking whenever possible. 3. Optim: Preload output-keys when encoutering groups of blocks. Sort by amount and global-index before bulk querying database and multi-thread when possible. 4. Optim: Disable double spend check on block verification, double spend is already detected when trying to add blocks. 5. Optim: Multi-thread signature computation whenever possible. 6. Patch: Disable locking (recursive mutex) on called functions from check_tx_inputs which causes slowdowns (only seems to happen on ubuntu/VMs??? Reason: TBD) 7. Optim: Removed looped full-tx hash computation when retrieving transactions from pool (???). 8. Optim: Cache difficulty/timestamps (735 blocks) for next-difficulty calculations so that only 2 db reads per new block is needed when a new block arrives (instead of 1470 reads). Berkeley-DB: 1. Fix: 32-bit data errors causing wrong output global indices and failure to send blocks to peers (etc). 2. Fix: Unable to pop blocks on reorganize due to transaction errors. 3. Patch: Large number of transaction aborts when running multi-threaded bulk queries. 4. Patch: Insufficient locks error when running full sync. 5. Patch: Incorrect db stats when returning from an immediate exit from "pop block" operation. 6. Optim: Add bulk queries to get output global indices. 7. Optim: Modified output_keys table to store public_key+unlock_time+height for single transaction lookup (vs 3) 8. Optim: Used output_keys table retrieve public_keys instead of going through output_amounts->output_txs+output_indices->txs->output:public_key 9. Optim: Added thread-safe buffers used when multi-threading bulk queries. 10. Optim: Added support for nosync/write_nosync options for improved performance (*see --db-sync-mode option for details) 11. Mod: Added checkpoint thread and auto-remove-logs option. 12. *Now usable on 32-bit systems like RPI2. LMDB: 1. Optim: Added custom comparison for 256-bit key tables (minor speed-up, TBD: get actual effect) 2. Optim: Modified output_keys table to store public_key+unlock_time+height for single transaction lookup (vs 3) 3. Optim: Used output_keys table retrieve public_keys instead of going through output_amounts->output_txs+output_indices->txs->output:public_key 4. Optim: Added support for sync/writemap options for improved performance (*see --db-sync-mode option for details) 5. Mod: Auto resize to +1GB instead of multiplier x1.5 ETC: 1. Minor optimizations for slow-hash for ARM (RPI2). Incomplete. 2. Fix: 32-bit saturation bug when computing next difficulty on large blocks. [PENDING ISSUES] 1. Berkely db has a very slow "pop-block" operation. This is very noticeable on the RPI2 as it sometimes takes > 10 MINUTES to pop a block during reorganization. This does not happen very often however, most reorgs seem to take a few seconds but it possibly depends on the number of outputs present. TBD. 2. Berkeley db, possible bug "unable to allocate memory". TBD. [NEW OPTIONS] (*Currently all enabled for testing purposes) 1. --fast-block-sync arg=[0:1] (default: 1) a. 0 = Compute long hash per block (may take a while depending on CPU) b. 1 = Skip long-hash and verify blocks based on embedded known good block hashes (faster, minimal CPU dependence) 2. --db-sync-mode arg=[[safe|fast|fastest]:[sync|async]:[nblocks_per_sync]] (default: fastest:async:1000) a. safe = fdatasync/fsync (or equivalent) per stored block. Very slow, but safest option to protect against power-out/crash conditions. b. fast/fastest = Enables asynchronous fdatasync/fsync (or equivalent). Useful for battery operated devices or STABLE systems with UPS and/or systems with battery backed write cache/solid state cache. Fast - Write meta-data but defer data flush. Fastest - Defer meta-data and data flush. Sync - Flush data after nblocks_per_sync and wait. Async - Flush data after nblocks_per_sync but do not wait for the operation to finish. 3. --prep-blocks-threads arg=[n] (default: 4 or system max threads, whichever is lower) Max number of threads to use when computing long-hash in groups. 4. --show-time-stats arg=[0:1] (default: 1) Show benchmark related time stats. 5. --db-auto-remove-logs arg=[0:1] (default: 1) For berkeley-db only. Auto remove logs if enabled. **Note: lmdb and berkeley-db have changes to the tables and are not compatible with official git head version. At the moment, you need a full resync to use this optimized version. [PERFORMANCE COMPARISON] **Some figures are approximations only. Using a baseline machine of an i7-2600K+SSD+(with full pow computation): 1. The optimized lmdb/blockhain core can process blocks up to 585K for ~1.25 hours + download time, so it usually takes 2.5 hours to sync the full chain. 2. The current head with memory can process blocks up to 585K for ~4.2 hours + download time, so it usually takes 5.5 hours to sync the full chain. 3. The current head with lmdb can process blocks up to 585K for ~32 hours + download time and usually takes 36 hours to sync the full chain. Averate procesing times (with full pow computation): lmdb-optimized: 1. tx_ave = 2.5 ms / tx 2. block_ave = 5.87 ms / block memory-official-repo: 1. tx_ave = 8.85 ms / tx 2. block_ave = 19.68 ms / block lmdb-official-repo (0f4a036437fd41a5498ee5e74e2422ea6177aa3e) 1. tx_ave = 47.8 ms / tx 2. block_ave = 64.2 ms / block **Note: The following data denotes processing times only (does not include p2p download time) lmdb-optimized processing times (with full pow computation): 1. Desktop, Quad-core / 8-threads 2600k (8Mb) - 1.25 hours processing time (--db-sync-mode=fastest:async:1000). 2. Laptop, Dual-core / 4-threads U4200 (3Mb) - 4.90 hours processing time (--db-sync-mode=fastest:async:1000). 3. Embedded, Quad-core / 4-threads Z3735F (2x1Mb) - 12.0 hours processing time (--db-sync-mode=fastest:async:1000). lmdb-optimized processing times (with per-block-checkpoint) 1. Desktop, Quad-core / 8-threads 2600k (8Mb) - 10 minutes processing time (--db-sync-mode=fastest:async:1000). berkeley-db optimized processing times (with full pow computation) 1. Desktop, Quad-core / 8-threads 2600k (8Mb) - 1.8 hours processing time (--db-sync-mode=fastest:async:1000). 2. RPI2. Improved from estimated 3 months(???) into 2.5 days (*Need 2AMP supply + Clock:1Ghz + [usb+ssd] to achieve this speed) (--db-sync-mode=fastest:async:1000). berkeley-db optimized processing times (with per-block-checkpoint) 1. RPI2. 12-15 hours (*Need 2AMP supply + Clock:1Ghz + [usb+ssd] to achieve this speed) (--db-sync-mode=fastest:async:1000).
2015-07-15Update blockchain.cppNoodleDoodleNoodleDoodleNoodleDoodleNoo1-1/+0
Fix compilation error
2015-07-15Update db_bdb.cppNoodleDoodleNoodleDoodleNoodleDoodleNoo1-7/+5
- bugfix: prevent re-entering db->get when current buffer contains all possible index values.
2015-07-15Update db_bdb.cppNoodleDoodleNoodleDoodleNoodleDoodleNoo1-72/+72
2015-07-15Update db_bdb.cppNoodleDoodleNoodleDoodleNoodleDoodleNoo1-1154/+1166
2015-07-15Experimental BDB workaround optimizationsNoodleDoodleNoodleDoodleNoodleDoodleNoo5-19/+240
2015-07-15Add missing file - i18n.cppmoneromooo-monero1-0/+297
2015-07-14Translatable strings for simplewalletmoneromooo-monero4-249/+307
The system is mostly the Qt system, but we don't use Qt to avoid the dependencies. See README.i18n for details.
2015-07-12Check and resize if needed at batch transaction startwarptangent2-5/+109
This currently only affects blockchain_import and blockchain_converter. When the number of blocks expected for the batch transaction is provided, make an estimate of the DB space needed. If not enough free space remains, resize the DB. The estimate is made based on: - the average size of the last 500 blocks, or if larger, a min. block size of 4k - a factor for the expanded size a block occupies in the DB across the sub-dbs/tables - a safety factor (1.7) to allow for a "reasonable" average block size increase over the batch Increase the DB size by whichever is greater: the estimated size needed or a minimum increase size, currently 128 MB. The conservative factors in the estimate help in testing that the resize occurs when needed, and without gratuitous size increases. For common use, the safety factor and minimum increase size could reasonably be increased. For testing, setting DEFAULT_MAPSIZE (blockchain_db/lmdb/db_lmdb.h) to 1 << 27 (128 MB) and recompiling will ensure DB resizes take place sooner and more frequently.
2015-07-11blockchain_utilities: Increase debug statement's log levelwarptangent1-1/+1
2015-07-11blockchain_utilities: Pass expected number of blocks when starting batchwarptangent2-4/+4
2015-07-11Optionally allow DB to know expected number of blocks at batch transaction startwarptangent6-8/+8
This will assist in a DB resize check.
2015-07-10Fix loop bug when calling core::get_block_template, causing calling thread ↵NoodleDoodleNoodleDoodleNoodleDoodleNoo1-0/+9
to lock up.
2015-07-07blockchain_utilities/README.md: add workaround for resizing in batch modemoneromooo-monero1-0/+3
2015-07-07blockchain_utilities/README.md: add high level "what is this about"moneromooo-monero1-1/+7
2015-06-23mnemonics: fix duplicate symbol errorWladimir J. van der Laan1-1/+1
2015-06-21mnemonics: fix prefix extraction with non ASCII textmoneromooo-monero2-5/+25
2015-06-20Set dnssec_valid value correctly in dns_utils; fix address_from_url testRostislav1-3/+3
2015-06-20simplewallet: allow creating a wallet from a public address and view secret keymoneromooo-monero4-8/+124
The needed information is supplied via a triple: --generate-from-view-key address:viewkey:filename
2015-06-20account: allow creating an account from a public address and view secret keymoneromooo-monero2-0/+17
2015-06-20wallet2: fix write_watch_only_wallet comment descriptionmoneromooo-monero1-2/+2
2015-06-20simplewallet: forbid seed commands for watch only walletsmoneromooo-monero1-0/+10
They do not make sense
2015-06-17wallet2: use the same exponential splitting for normal txesmoneromooo-monero1-2/+4
2015-06-17wallet2: try to split dust sweep txs exponentiallymoneromooo-monero1-2/+3
This ensures even massive wallets full of dust can sweep.
2015-06-16Fix standard address deserializationmoneromooo-monero1-7/+17
2015-06-14Fix DNS checkpoint consensus codemoneromooo-monero1-9/+6
It's supposed to load all records and pick one that it finds twice.
2015-06-14daemon: fix an exit crashmoneromooo-monero2-1/+12
2015-06-13Add RPC commands to manipulate integrated addressesmoneromooo-monero3-0/+113
2015-06-12simplewallet: allow integrated_address to generate a random payment idmoneromooo-monero1-4/+11
2015-06-12account: add a couple constsmoneromooo-monero2-4/+4
2015-06-12Integrated addresses (standard address plus payment id)moneromooo-monero8-8/+181
2015-06-12simplewallet: allow a different password for the watch-only walletmoneromooo-monero3-8/+14
2015-06-07dns_utils: simpify smart pointer use, and use for url strings toomoneromooo-monero2-39/+46
OK, I admit I wanted to template this struct for fun too.
2015-06-06properly decrement p2p socket countThomas Winget1-0/+1
2015-06-03fix ^D exit for bitmonerodmoneromooo-monero3-4/+4
It uses the async console handler differently than simplewallet, and wasn't running the same exit code, causing it to never actually exit after breaking out of the console entry loop.
2015-05-31wallet: add watch only wallet supportmoneromooo-monero4-7/+84
The new save_watch_only saves a copy of the keys file without the spend key. It can then be given away to be used as a normal keys file, but with no spend ability.
2015-05-31account: add a forget_spend_key methodmoneromooo-monero2-0/+7
2015-05-31cleaning up, removing redundant files, renaming, fixing incorrect licensesRiccardo Spagni40-206/+468
2015-05-30wallet_rpc_server: add a sweep_dust RPC command as wellmoneromooo-monero3-0/+64
2015-05-30wallet: add a sweep_dust commandmoneromooo-monero4-1/+344
Sends all the dust to your own wallet. May fail (if the fee required is more than the dust total). May end up paying most of the dust in fees. Unlocked dust total is now also displayed in "balance".
2015-05-30Replace hardcoded value with existing constant of same valuewarptangent1-1/+1
This was likely the intent.
2015-05-30Update database resize behaviorwarptangent1-2/+20
On an existing database, don't set LMDB map size to be the initial size for a new database. Check if resize is needed at startup.
2015-05-30Include database error in more error messageswarptangent1-35/+54
2015-05-28rpc_command_executor: fix mining in testnet modemoneromooo-monero1-2/+1
2015-05-28core_rpc_server: add a getter for the testnet flagmoneromooo-monero1-0/+1
2015-05-28core_rpc_server: log some error messages to the consolemoneromooo-monero1-0/+3
It's helpful when you don't know something failed (especially as everything ends up returning true, so caller thinks all's fine)
2015-05-28daemon: remove obsolete daemon_commands_handler.hmoneromooo-monero2-530/+0
2015-05-28core_rpc_server: reenable print_plmoneromooo-monero1-3/+2
2015-05-28net_peerlist: fix grayt/white naming mismatchmoneromooo-monero1-2/+2
Looking at how these are called confirms this must have been a mistake
2015-05-28daemon: Set log file default to use data dirwarptangent1-1/+16
The log file previously used the default data dir even if --data-dir was set to something else. Document data dir and log file path.
2015-05-28simplewallet: Update and add log optionswarptangent1-9/+29
Replace --set_log with --log-level for consistency. Show default log level in usage. Add --log-file for specifying log file path. Document log file path. Display log file path at startup.
2015-05-28simplewallet: Don't log view key and spend keywarptangent1-4/+7
As with display of seed, don't log view key and spend key. Includes: - display of viewkey at wallet creation - "viewkey" command output - "spendkey" command output
2015-05-27blockchain_db: add a few constmoneromooo-monero6-10/+10
2015-05-27wallet: add consts where appropriatemoneromooo-monero2-18/+19
because const is always appropriate
2015-05-25Fix compile for GCC 5.1.0warptangent1-1/+5
Add fix for compile error with multiple uses of peerid_type (uint64_t) variable in lambda expression. - known GCC issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65843 epee: replace return value of nullptr for expected boolean with false. Fixes #231.
2015-05-25Build seed node list without duplicateswarptangent1-31/+36
The random selection of a node shouldn't favor repeats that occur in the hardcoded and DNS seed node lists. Remove hardcoded ":18080" address which gives parse error. Test: bitmonerod --log-level 2 The seed node list displayed at startup shouldn't show duplicate addresses (includes port).
2015-05-19Add spendkey dump to simplewalletluigi11112-0/+9
2015-05-19Allow name@domain.tld for OpenAlias lookupswarptangent3-1/+27
Based on tewinget's update. Make OpenAlias address format independent of existing DNS functions. Add tests. Test: make debug-test cd build/debug/tests/unit_tests # test that regular DNS functions work, including IPv4 lookups. # also test function that converts OpenAlias address format make && ./unit_tests --gtest_filter=DNSResolver* # test that OpenAlias addresses like donate@getmonero.org work from # wallet tools make && ./unit_tests --gtest_filter=AddressFromURL.Success
2015-05-19Revert "Allow name@domain.tld for OpenAlias lookups"warptangent2-25/+14
This reverts commit b18368b635ba08aea541ef52ebc74180822644a2.
2015-05-18Check if LMDB needs resize every 1000 blocksThomas Winget1-1/+1
(this was 10 for testing purposes)
2015-05-18null out batch txn pointer as needed (BlockchainLMDB)Thomas Winget1-4/+5
2015-05-17s/terget/target/moneromooo-monero4-7/+7
2015-05-17print limits when running limit commands with no argumentsmoneromooo-monero5-3/+60
It's more user friendly that an error message saying the command does not exist.
2015-05-16Support debugging command --pop-blocks on in-memory blockchainwarptangent2-9/+17
Add public method blockchain_storage::debug_pop_block_from_blockchain() Ensure blockchain_import calls destructors before exit. To test: DATABASE=memory make release // create blockchain.bin from blockchain.raw if needed build/release/bin/blockchain_import --block-stop 1000 // try popping a single block build/release/bin/blockchain_import --pop-blocks 1
2015-05-16LMDB should now dynamically resize the mapsizeThomas Winget2-60/+187
Some filesystems (*cough* NTFS *cough*) aren't good with sparse files, so this makes LMDB dynamically resize its mapsize as needed. Note: the check interval is currently every 10 blocks (for testing) and will probably need to change to 1000 or something. Default mapsize set to 1GiB. Blockchain conversion tools using batching will probably segfault, I'll fix that in the next commit.
2015-05-16Allow BlockchainLMDB to be opened in read-only modewarptangent2-4/+11
Have blockchain_export use read-only mode when source is BlockchainLMDB.
2015-05-15Move mdb_txn_safe implementation to cpp fileThomas Winget2-51/+58
2015-05-15Rename "--block-number" option to "--block-stop"warptangent3-46/+45
Update help output for this and other options.
2015-05-15Check if chunk size is zero instead of negativewarptangent1-2/+2
This corrects an unnecessary check and fixes compile error on OS X.
2015-05-13Fixes changes to sort tx by fee per kbThomas Winget2-14/+46
2015-05-08Rename src/blockchain_converter/ to src/blockchain_utilities/warptangent10-2/+2
Update appropriate files (CMakeLists.txt, README.md)
2015-05-08Add --block-number option to blockchain_importwarptangent1-7/+17
This enables the importer to stop after reaching a specified block number (zero-based index), before reaching the end of the source blockchain.
2015-05-08Update blockchain utilities with portable bootstrap file formatwarptangent8-460/+755
Remove repeated coinbase tx in each exported block's data. Add resume from last exported height to blockchain_export, making it the default behavior when the file already exists. Start reorganizing the utilities. Various cleanup. Update output, including referring to both height and block numbers as zero-based instead of one-based. This better matches the block data, rather than just some parts of the existing codebase. Use smaller default batch sizes for importer when verifying, so progress is saved more frequently. Use small default batch size (1000) for importer on Windows, due to current issue with big transaction sizes on LMDB. file format ----------- [4-byte magic | variable-length header | block data] header ------ 4-byte file_info length file_info struct file format major version file format minor version header length (includes file_info struct) [rest of header, padded with 0 bytes up to header length] block data ---------- 4-byte chunk/block_package length block_package struct block txs (coinbase/miner tx included already in block) block_size cumulative_difficulty coins_generated 4-byte chunk/block_package length block_package struct [...]
2015-05-08Add MDB_NORDAHEAD as a supported LMDB flag for blockchain_importwarptangent1-8/+2
2015-05-08Condense #if directiveswarptangent1-9/+2
2015-05-08Add basic "pop blocks" command to blockchain_import for debuggingwarptangent1-0/+58
Usage: blockchain_import --pop-blocks <num_blocks>
2015-05-08Update log statementswarptangent3-3/+3
Use filesystem path conversion to string() instead of c_str(). Windows may otherwise output an address.
2015-05-08Fix incompatibility with blockchain exporter when source is LMDBwarptangent1-1/+16
Instantiate BlockchainDB in blockchain exporter to reflect recent updates. This applies when blockchain_export.h defines SOURCE_DB as DB_LMDB.
2015-04-30Sort txs by per-kb-fee for minersThomas Winget2-7/+35
2015-04-30When removing 'stuck' transactions, don't ignore the first tx in the poolThomas Winget1-5/+5
2015-04-29Allow name@domain.tld for OpenAlias lookupsThomas Winget2-14/+25
2015-04-23Keep memory pool consistent when stuck tx removedwarptangent1-0/+1
When a stuck tx is removed from memory pool, first remove the associated spent key images.
2015-04-23Add mempool output to daemon via command and RPCwarptangent7-17/+107
This is for the "print_pool" command and "get_transaction_pool" RPC method. Add mempool's spent key images to the results.
2015-04-22DNS Checkpoint updating-related fixes/changesThomas Winget3-8/+72
Only one thread will be doing the updating. Two valid responses must match, and the first two that match will be used.
2015-04-20Fix missing virtual destructorSergey Kazenyuk2-2/+4
2015-04-13disable non-working optimized slow_hash on 32 bit intelJavier Smooth1-1/+1
2015-04-10[fix] log level change. compilation: dns, testsrfree2monero4-3/+6
old unbound #warning does not block compilation unit tests build fine. Even though the RPC/P2P network type is required again
2015-04-10Fixes start_mining in cli interactive modeThomas Winget1-2/+16
2015-04-08Disable DNS checkpoint updating on testnetThomas Winget1-0/+2
2015-04-08[fix] Network 1.8: unlimited the RPC connectionsrfree2monero3-1/+22
works for unit tests build, too
2015-04-07Only compile BerkeleyDB as an option in non-staticThomas Winget2-0/+20
2015-04-05no newline at end of fileRiccardo Spagni1-1/+1
2015-04-05handle unlikely rounding up after sqrtJavier Smooth1-0/+3
2015-04-05triangular distribution to choose recent outputs more often for mixinsJavier Smooth1-1/+5
2015-04-02Network 1.7; Quieted the debug a bit.rfree2monero2-6/+10
Really really finall version of this changes I hope.
2015-04-02Fixed DNS resolution bug in WindowsThomas Winget1-4/+2
Due to a bug in unbound, we were passing a string containing a null character to ub_ctx_resolvconf and ub_ctx_hosts rather than a NULL pointer. On *nix this wasn't causing headache, but on Windows this was causing unbound to not correctly load DNS settings from the OS. Note on the bug: in a Windows-specific code branch in the function ub_ctx_hosts(), if the hosts file specified was a NULL pointer, a call to getenv() was stored in a local char* and later freed. This is incorrect, as we do not own that data, and caused the program to crash.
2015-04-02update hardcoded fallback seedsRiccardo Spagni1-12/+25
2015-04-01Network 1.6: network limits, logging, +doxyrfree2monero1-1/+7
-dr.monero and once more again merged all work to current official monero version
2015-04-01my changelogrfree2monero1-0/+71
2015-04-01remerged; commands JSON. logging upgrade. doxygenrfree2monero25-221/+547
2015-03-27Restore daemon interactive modeThomas Winget14-153/+501
Daemon interactive mode is now working again. RPC mapped calls in daemon and wallet have both had connection_context removed as an argument as that argument was not being used anywhere.
2015-03-25Steps toward multiple dbs available -- workingThomas Winget13-58/+146
There will need to be some more refactoring for these changes to be considered complete/correct, but for now it's working. new daemon cli argument "--db-type", works for LMDB and BerkeleyDB. A good deal of refactoring is also present in this commit, namely Blockchain no longer instantiates BlockchainDB, but rather is passed a pointer to an already-instantiated BlockchainDB on init().
2015-03-24Enforce DNSSEC for checkpoint updatesThomas Winget1-10/+17
2015-03-24DNSSEC added (hardcoded key)Thomas Winget1-0/+66
DNSSEC is now implemented with the hardcoded key from unbound. This will need to be not hardcoded in the future, but is okay for now. Unit tests updated for DNSSEC (as well as for the fact that, contrary to previous assumption, example.com does not have a static IP address).
2015-03-23blockchain_converter: Add support for resume from last blockwarptangent1-10/+37
Add option "--resume <on|off>" where default is on.
2015-03-22blockchain_import: lengthen string for line clearwarptangent1-16/+19
2015-03-22blockchain_export: show progress during exportwarptangent1-9/+17
2015-03-22Update Blockchain::get_db() to return reference instead of pointerwarptangent4-14/+14
Where this method is used, a BlockchainDB object is always expected, so a pointer is unnecessary and less safe.
2015-03-22Add README for blockchain converter, importer, and exporter utilitieswarptangent1-0/+54
2015-03-20Hopefully fixes build on Windows for real this timeThomas Winget1-5/+5
2015-03-20Hopefully fixes build on WindowsThomas Winget3-3/+15
2015-03-17BerkeleyDB implementation of BlockchainDB seems to be working!Thomas Winget2-20/+20
2015-03-17BlockchainBDB passes unit testsThomas Winget1-1/+4
2015-03-16blockchain_export: Add compile-time support for BlockchainDBwarptangent2-31/+63
This allows an LMDB database to be used as the blockchain to export. Adjust SOURCE_DB in src/blockchain_converter/blockchain_export.h depending on needs. Defaults to DB_MEMORY. DB_MEMORY is a sensible default for users migrating to LMDB, as it allows the exporter to use the in-memory blockchain while the other binaries work with LMDB, without recompiling anything.
2015-03-16BerkeleyDB Blockchain building, not working yetThomas Winget3-189/+200
Everything except actually *using* BlockchainBDB is wired up, but the db itself is not yet working. Some error about user mem not large enough. I think I know what this error means, but I can't determine the cause. Notes: BerkeleyDB does not allow 0-indexing in its recno type databases, so block numbers *in the database* will be 1-indexed. Modifications to indexing have been made as needed.
2015-03-16CMake wiring, minor cleanup, minor test additionThomas Winget1-0/+3
Make Cmake things aware of BerkeleyDB and BlockchainBDB Make the BlockchainDB unit tests aware of BlockchainBDB
2015-03-16BerkeleyDB BlockchainDB impl copy/paste/modifyThomas Winget2-9/+1304
LMDB implementation code copy/paste/modified into the Berkeley DB implementation. Need to test if it builds, then if it works, and so on, but the code is all there.
2015-03-16Try to not pollute cryptonote namespaceThomas Winget2-47/+47
2015-03-16Initial commit of BDB BlockchainDB implementationThomas Winget2-0/+678
Basically verbatim copy of LMDB implementation, but with the guts ripped out and includes changed, etc.
2015-03-16Add blockchain_export utilitywarptangent3-0/+470
Based on work by tomerkon. See https://github.com/tomerkon/bitmonero src/cryptonote_core/bootfilesaver.{h,cpp} src/bootfilegen/bootfilegen.cpp
2015-03-16Add support for database open with flagswarptangent7-14/+77
Add support to: - BlockchainDB, BlockchainLMDB - blockchain_import utility to open LMDB database with one or more LMDB flags. Sample use: $ blockchain_import --database lmdb#nosync $ blockchain_import --database lmdb#nosync,nometasync
2015-03-16Add mdb_flags variable to LMDB database openwarptangent1-1/+2
2015-03-16Add blockchain_import utilitywarptangent4-0/+894
This imports to the blockchain database from an exported blockchain file. It can be used to bootstrap a new database or to add blocks to an existing one. Supports: - both the in-memory and LMDB implementations - optional: batching, verification, testnet See help for usage. Based on work by tomerkon. See https://github.com/tomerkon src/cryptonote_core/bootfileloader.{h,cpp}
2015-03-15Blockchain: add get_db() accessor, needed for blockchain_importwarptangent1-0/+5
This handling may be changed in the future.
2015-03-15blockchain_converter: Add support for batch transactionswarptangent1-23/+173
Add log level support. Add testnet support. Add command-line options: --help --data-dir --testnet-data-dir --testnet --log-level --batch --batch-size --block-number See help for usage. Run at log level 1 to see profiling stats.
2015-03-15Update and relocate comment that applies class widewarptangent1-8/+14
2015-03-15Do store transaction's blob size in transaction_chain_entrySergey Kazenyuk2-4/+5
2015-03-15Use single get_transaction_hash to get both id and blob sizeSergey Kazenyuk1-2/+4
2015-03-13BlockchainDB implementations have names nowThomas Winget5-3/+20
In order to make things more general, BlockchainDB now has get_db_name() which should return a string with the "name" of that type of db. This "name" will be the subfolder name that holds that db type's files within the monero folder. Small bugfix: blockchain_converter was not correctly appending this in the prior hard-coded-string implementation of the subfolder data directory concept.
2015-03-10default mix factor in simplewalletsmooth1-10/+16
2015-03-06Moved BlockchainDB into its own src/ subfolderThomas Winget12-13/+72
Ostensibly janitorial work, but should be more relevant later down the line. Things that depend on core cryptonote things (i.e. cryptonote_core) don't necessarily depend on BlockchainDB and thus have no need to have BlockchainDB baked in with them.
2015-03-06update checkpointsmooth1-0/+1
2015-03-05add comment about avoiding overflowsmooth1-0/+6
2015-03-04minimum subsidy for mining incentives, remove unused LEGACY_FEE definesmooth3-4/+7
2015-03-04fixed English word list issue: 'launchpad' should be 'ourselves'Riccardo Spagni1-1/+1
2015-03-04fixed English word list issue: 'incline' should have remained 'inline'Riccardo Spagni1-1/+1
2015-03-01DNS checkpoint loading for testnet should now be correctThomas Winget4-4/+19
2015-03-01sending commands to forked daemon works on testnet nowThomas Winget1-0/+4
2015-03-01Fix tests building -- function signatures changedThomas Winget2-0/+3
2015-02-24fix locking in count-peers thread (2)rfree2monero4-12/+28
2015-02-242014 network limit 1.3 fix log/path/data +utilsrfree2monero6-63/+142
+toc -doc -drmonero Fixed the windows path, and improved logging and data (for graph) logging, fixed some locks and added more checks. Still there is a locking error, not added by my patches, but present in master version (locking of map/list of peers).
2015-02-24revert stop_daemon method to use correct exitThomas Winget1-1/+1
This was changed because sometimes the daemon does not complete its exit routine with this method, but as it does correctly wind most things down even if it gets stuck I've changed it back.
2015-02-24RPC calls for background daemon added inThomas Winget8-52/+301
The RPC calls the daemon executable uses to talk to the running daemon instance have mostly been added back in. Rate limiting has not been added in upstream, but is on its way in a separate effort, so those calls are still NOPed out.
2015-02-24Daemonize changes pulled in -- daemon buildsThomas Winget38-332/+3620
many RPC functions added by the daemonize changes (and related changes on the upstream dev branch that were not merged) were commented out (apart from return). Other than that, this *should* work...at any rate, it builds, and that's something.
2015-02-23Changed log level of debug message -- too spammyThomas Winget1-1/+1
2015-02-23BlockchainLMDB: Add profiling to tx_exists()warptangent3-1/+8
2015-02-23BlockchainLMDB: Add batch transaction support to tx_exists()warptangent1-6/+9
2015-02-23BlockchainDB, BlockchainLMDB: Add profiling for DB commitswarptangent3-0/+18
2015-02-23BlockchainDB: Add virtual function declarations for batch transactionswarptangent1-0/+3
2015-02-23BlockchainLMDB: Add check for open database to two functionswarptangent1-0/+3
2015-02-23BlockchainLMDB: Add support for batch transactionswarptangent2-55/+289
2015-02-23Improve block and tx processing efficiency by less repeat hashingwarptangent4-11/+28
BlockchainLMDB::add_block() BlockchainLMDB::add_transaction_data() BlockchainDB::add_transaction()
2015-02-23Add profiling to block and tx processingwarptangent2-0/+48
2015-02-23Move LMDB storage to subfolderwarptangent2-1/+12
2015-02-23Fix formattingwarptangent1-6/+5
2015-02-23Fix log statementwarptangent1-1/+1
2015-02-23Remove unused variablewarptangent1-1/+0
2015-02-23Add log statementwarptangent1-0/+1
2015-02-23Add and extend log statementswarptangent1-6/+10
2015-02-23Blockchain: match original function declaration from blockchain_storagewarptangent2-2/+2
2015-02-23Update year and formatting in licensewarptangent1-7/+7
2015-02-22Fix Blockchain::get_tail_id() to set parameter to last block number instead ↵warptangent1-1/+1
of height This reflects the behavior of blockchain_storage::get_tail_id(). Fixes #27 so that RPC method getlastblockheader works.
2015-02-22Revert "Bounds error, should fix #27"warptangent1-1/+1
This reverts commit 6f1c4b4c2c78c930fe30ed648e855a6ce55f7dcd.
2015-02-20Bounds error, should fix #27Thomas Winget1-1/+1
2015-02-202014 network limit 1.2 +utils +toc -doc -drmonerorfree2monero18-158/+175
new update of the pr with network limits more debug options: discarding downloaded blocks all or after given height. trying to trigger the locking errors. debug levels polished/tuned to sane values. debug/logging improved. warning: this pr should be correct code, but it could make an existing (in master version) locking error appear more often. it's a race on the list (map) of peers, e.g. between closing/deleting them versus working on them in net-limit sleep in sending chunk. the bug is not in this code/this pr, but in the master version. the locking problem of master will be fixed in other pr. problem is ub, and in practice is seems to usually cause program abort (tested on debian stable with updated gcc). see --help for option to add sleep to trigger the error faster.
2015-02-20removed not needed <netinet/in.h>rfree2monero1-1/+0
2015-02-202014 network limit 1.1 +utils +toc -doc -drmonerorfree2monero19-318/+560
Update of the PR with network limits works very well for all speeds (but remember that low download speed can stop upload because we then slow down downloading of blockchain requests too) more debug options fixed pedantic warnings in our code should work again on Mac OS X and FreeBSD fixed warning about size_t tested on Debian, Ubuntu, Windows(testing now) TCP options and ToS (QoS) flag FIXED peer number limit FIXED some spikes in ingress/download FIXED problems when other up and down limit
2015-02-202014 network limit 1.0a +utils +toc -doc -drmonerorfree2monero20-76/+2113
commands and options for network limiting works very well e.g. for 50 KiB/sec up and down ToS (QoS) flag peer number limit TODO some spikes in ingress/download TODO problems when other up and down limit added "otshell utils" - simple logging (with colors, text files channels)
2015-02-20added tx size to incoming_transfers RPC CallRiccardo Spagni2-0/+4
2015-02-02Add compile-time support for both db implementations: in-memory and LMDBwarptangent8-4/+56
Usage: default is lmdb for blockchain branch: $ make release same as: $ DATABASE=lmdb make release for original in-memory implementation: $ DATABASE=memory make release
2015-02-01Blockchain: reflect log updates from blockchain_storagewarptangent1-7/+7
See commit 4ba680f2946966df2030e5765e40ee0a36b112c4
2015-02-01Blockchain: reflect log and assert updates from blockchain_storagewarptangent1-37/+38
See commit cf5a8b1d6c3df615641e81328bb3d8cf80cd70e3
2015-02-01Blockchain: reflect log level of blockchain_storagewarptangent1-8/+8
Update to match LOG_PRINT_RED_Lx statements. See commit cf5a8b1d6c3df615641e81328bb3d8cf80cd70e3
2015-02-01Blockchain: reflect assert behavior of blockchain_storage for ↵warptangent1-0/+2
get_tx_outputs_gindexs()
2015-02-01Update recently added log statement to fix possible null dereferencewarptangent1-1/+5
This would have been triggered if function was called without fourth parameter and ring signature check failed.
2015-01-28make fallback compatible with newer slow-hashRiccardo Spagni1-0/+12
2015-01-27replaced 64-bit multiplication in difficulty.cpp with a portable versionRiccardo Spagni1-4/+34
2015-01-27replaced 64-bit multiplication in difficulty.cpp with a portable versionRiccardo Spagni1-4/+34
2015-01-27added portable slow-hash, updated makefile targets, fixed readmeRiccardo Spagni1-2/+152
2015-01-27fixed sse2 ifdefRiccardo Spagni1-2/+2
2015-01-27remove aes flag, detect no sse2Riccardo Spagni1-0/+2
2015-01-19Should fix std::min issues related to size_tThomas Winget1-2/+2