Commit graph

735 commits

Author SHA1 Message Date
NoodleDoodleNoodleDoodleNoodleDoodleNoo
dbbc457836 Update db_bdb.cpp 2015-07-15 23:20:12 -07:00
NoodleDoodleNoodleDoodleNoodleDoodleNoo
4b7ad2b0a7 Update db_bdb.cpp 2015-07-15 23:20:10 -07:00
NoodleDoodleNoodleDoodleNoodleDoodleNoo
da1d3c01de
Experimental BDB workaround optimizations 2015-07-15 21:13:42 -07:00
Riccardo Spagni
b4849310dc
Merge pull request #336
ea58576 Add missing file - i18n.cpp (moneromooo-monero)
2015-07-15 01:08:07 +02:00
moneromooo-monero
ea58576cf6
Add missing file - i18n.cpp 2015-07-15 00:01:05 +01:00
Riccardo Spagni
ad841cb1b9
Merge pull request #335
78b2eab Translatable strings for simplewallet (moneromooo-monero)
2015-07-15 00:54:21 +02:00
Riccardo Spagni
9688e6fdd8
Merge pull request #334
fd73d9c Check and resize if needed at batch transaction start (warptangent)
f9e4afd blockchain_utilities: Increase debug statement's log level (warptangent)
699e4b3 blockchain_utilities: Pass expected number of blocks when starting batch (warptangent)
6e170c8 Optionally allow DB to know expected number of blocks at batch transaction start (warptangent)
2015-07-15 00:53:45 +02:00
moneromooo-monero
78b2eabc87 Translatable strings for simplewallet
The system is mostly the Qt system, but we don't use Qt to avoid
the dependencies.

See README.i18n for details.
2015-07-14 20:28:25 +01:00
warptangent
fd73d9cc3a
Check and resize if needed at batch transaction start
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-12 00:51:39 -07:00
warptangent
f9e4afd52a
blockchain_utilities: Increase debug statement's log level 2015-07-11 23:54:16 -07:00
warptangent
699e4b3f65
blockchain_utilities: Pass expected number of blocks when starting batch 2015-07-11 23:54:14 -07:00
warptangent
6e170c8b78
Optionally allow DB to know expected number of blocks at batch transaction start
This will assist in a DB resize check.
2015-07-11 23:54:12 -07:00
NoodleDoodleNoodleDoodleNoodleDoodleNoo
5d304cabfd Fix loop bug when calling core::get_block_template, causing calling thread to lock up. 2015-07-10 22:09:21 -07:00
moneromooo-monero
369c7b32f8
blockchain_utilities/README.md: add workaround for resizing in batch mode 2015-07-07 19:06:34 +01:00
moneromooo-monero
26970c7e27 blockchain_utilities/README.md: add high level "what is this about" 2015-07-07 18:50:43 +01:00
Wladimir J. van der Laan
204759f111
mnemonics: fix duplicate symbol error 2015-06-23 09:28:52 +02:00
moneromooo-monero
ea33cadebf
mnemonics: fix prefix extraction with non ASCII text 2015-06-21 11:28:45 +01:00
Riccardo Spagni
1720affbd6
Merge pull request #325
3ade396 Set dnssec_valid value correctly in dns_utils; fix address_from_url test (Rostislav)
2015-06-20 22:41:30 +02:00
Riccardo Spagni
4790db9d04
Merge pull request #324
dc4dbc1 simplewallet: allow creating a wallet from a public address and view secret key (moneromooo-monero)
6a0f61d account: allow creating an account from a public address and view secret key (moneromooo-monero)
e05a58a wallet2: fix write_watch_only_wallet comment description (moneromooo-monero)
4bf6f0d simplewallet: forbid seed commands for watch only wallets (moneromooo-monero)
2015-06-20 22:40:47 +02:00
Rostislav
3ade396406 Set dnssec_valid value correctly in dns_utils; fix address_from_url test 2015-06-20 20:02:13 +00:00
moneromooo-monero
dc4dbc1ceb
simplewallet: allow creating a wallet from a public address and view secret key
The needed information is supplied via a triple:

--generate-from-view-key address:viewkey:filename
2015-06-20 17:33:14 +01:00
moneromooo-monero
6a0f61d800
account: allow creating an account from a public address and view secret key 2015-06-20 17:33:06 +01:00
moneromooo-monero
e05a58aead
wallet2: fix write_watch_only_wallet comment description 2015-06-20 12:30:31 +01:00
moneromooo-monero
4bf6f0d57a
simplewallet: forbid seed commands for watch only wallets
They do not make sense
2015-06-20 12:27:23 +01:00
moneromooo-monero
2952ffd80f
wallet2: use the same exponential splitting for normal txes 2015-06-17 22:00:04 +01:00
moneromooo-monero
7c8d3be656
wallet2: try to split dust sweep txs exponentially
This ensures even massive wallets full of dust can sweep.
2015-06-17 21:31:16 +01:00
moneromooo-monero
f6da25a32e
Fix standard address deserialization 2015-06-16 15:36:20 +01:00
Riccardo Spagni
2d9d6c7621
Merge pull request #321
bbc5475 Fix DNS checkpoint consensus code (moneromooo-monero)
2015-06-14 13:10:18 +02:00
Riccardo Spagni
1595187ae2
Merge pull request #320
f9b361b daemon: fix an exit crash (moneromooo-monero)
2015-06-14 13:09:53 +02:00
Riccardo Spagni
66a5c9e50f
Merge pull request #318
fb20071 simplewallet: allow a different password for the watch-only wallet (moneromooo-monero)
2015-06-14 13:09:16 +02:00
moneromooo-monero
bbc5475418
Fix DNS checkpoint consensus code
It's supposed to load all records and pick one that it finds twice.
2015-06-14 11:05:57 +01:00
moneromooo-monero
f9b361be8a
daemon: fix an exit crash 2015-06-14 00:31:09 +01:00
moneromooo-monero
6f8a6dcb6c Add RPC commands to manipulate integrated addresses 2015-06-13 16:08:00 +01:00
moneromooo-monero
67be2e4b3a
simplewallet: allow integrated_address to generate a random payment id 2015-06-12 16:49:01 +01:00
moneromooo-monero
7bd6efe313
account: add a couple consts 2015-06-12 16:48:52 +01:00
moneromooo-monero
63741d8264
Integrated addresses (standard address plus payment id) 2015-06-12 16:48:41 +01:00
moneromooo-monero
fb2007181e
simplewallet: allow a different password for the watch-only wallet 2015-06-12 16:45:29 +01:00
Riccardo Spagni
d6ba5ef8c5
Merge pull request #312
a9b1f7e dns_utils: simpify smart pointer use, and use for url strings too (moneromooo-monero)
2015-06-11 10:28:22 +02:00
Riccardo Spagni
1b25e8dfc5
Merge pull request #311
d7df08d properly decrement p2p socket count (Thomas Winget)
2015-06-11 10:27:58 +02:00
Riccardo Spagni
f89cf1df87
Merge pull request #308
35b160e fix ^D exit for bitmonerod (moneromooo-monero)
2015-06-11 10:27:36 +02:00
Riccardo Spagni
5bee2d2edf
Merge pull request #303
c882af6 wallet: add watch only wallet support (moneromooo-monero)
f7767c6 account: add a forget_spend_key method (moneromooo-monero)
2015-06-11 10:27:00 +02:00
moneromooo-monero
a9b1f7eb05
dns_utils: simpify smart pointer use, and use for url strings too
OK, I admit I wanted to template this struct for fun too.
2015-06-07 16:58:49 +01:00
Thomas Winget
d7df08d6ec
properly decrement p2p socket count 2015-06-06 13:24:33 -04:00
moneromooo-monero
35b160edea
fix ^D exit for bitmonerod
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-06-03 22:43:35 +01:00
moneromooo-monero
c882af63c1
wallet: add watch only wallet support
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-31 15:34:55 +01:00
moneromooo-monero
f7767c6508
account: add a forget_spend_key method 2015-05-31 15:32:54 +01:00
Riccardo Spagni
e01d32e52d
cleaning up, removing redundant files, renaming, fixing incorrect licenses 2015-05-31 13:40:18 +02:00
moneromooo-monero
a62daebba5
wallet_rpc_server: add a sweep_dust RPC command as well 2015-05-30 21:48:05 +01:00
moneromooo-monero
3204f0d536
wallet: add a sweep_dust command
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-30 21:47:56 +01:00
Riccardo Spagni
6aee052001
Merge pull request #297
5680604 Replace hardcoded value with existing constant of same value (warptangent)
f37ee2f Update database resize behavior (warptangent)
f85cd8e Include database error in more error messages (warptangent)
2015-05-30 22:32:23 +02:00
Riccardo Spagni
26fac96c5d
Merge pull request #294
693a8bf rpc_command_executor: fix mining in testnet mode (moneromooo-monero)
d09be11 core_rpc_server: add a getter for the testnet flag (moneromooo-monero)
754f863 core_rpc_server: log some error messages to the console (moneromooo-monero)
4f0e8cf daemon: remove obsolete daemon_commands_handler.h (moneromooo-monero)
bac366e core_rpc_server: reenable print_pl (moneromooo-monero)
39a9508 net_peerlist: fix grayt/white naming mismatch (moneromooo-monero)
8069b3b blockchain_db: add a few const (moneromooo-monero)
0932476 wallet: add consts where appropriate (moneromooo-monero)
2015-05-30 22:31:31 +02:00
warptangent
5680604437
Replace hardcoded value with existing constant of same value
This was likely the intent.
2015-05-30 09:27:54 -07:00
warptangent
f37ee2f304
Update database resize behavior
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-30 09:27:49 -07:00
warptangent
f85cd8e10b
Include database error in more error messages 2015-05-30 09:27:44 -07:00
moneromooo-monero
693a8bf7b1
rpc_command_executor: fix mining in testnet mode 2015-05-28 23:14:58 +01:00
moneromooo-monero
d09be116c6
core_rpc_server: add a getter for the testnet flag 2015-05-28 23:14:37 +01:00
moneromooo-monero
754f863a7e
core_rpc_server: log some error messages to the console
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-28 23:13:32 +01:00
moneromooo-monero
4f0e8cfa92
daemon: remove obsolete daemon_commands_handler.h 2015-05-28 14:10:46 +01:00
moneromooo-monero
bac366e173
core_rpc_server: reenable print_pl 2015-05-28 14:10:39 +01:00
moneromooo-monero
39a9508a20
net_peerlist: fix grayt/white naming mismatch
Looking at how these are called confirms this must have been a mistake
2015-05-28 14:10:26 +01:00
warptangent
10ff75e92e
daemon: Set log file default to use data dir
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-28 03:52:19 -07:00
warptangent
deacecc15e
simplewallet: Update and add log options
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-28 03:52:08 -07:00
warptangent
f24bcd5199
simplewallet: Don't log view key and spend key
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-28 01:32:49 -07:00
moneromooo-monero
8069b3ba7f
blockchain_db: add a few const 2015-05-27 19:16:37 +01:00
moneromooo-monero
09324764c0
wallet: add consts where appropriate
because const is always appropriate
2015-05-27 19:16:22 +01:00
Riccardo Spagni
8cd6072090
Merge pull request #292
c44755a Build seed node list without duplicates (warptangent)
2015-05-26 10:45:20 +02:00
Riccardo Spagni
e042fad317
Merge pull request #291
6962253 Fix compile for GCC 5.1.0 (warptangent)
2015-05-26 10:45:01 +02:00
Riccardo Spagni
634e367ff5
Merge pull request #289
01076ae Check if LMDB needs resize every 1000 blocks (Thomas Winget)
b0d849e null out batch txn pointer as needed (BlockchainLMDB) (Thomas Winget)
7b7ef73 LMDB should now dynamically resize the mapsize (Thomas Winget)
ac79502 Move mdb_txn_safe implementation to cpp file (Thomas Winget)
2015-05-26 10:44:48 +02:00
warptangent
696225321f
Fix compile for GCC 5.1.0
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-25 22:18:36 -07:00
warptangent
c44755a5e2
Build seed node list without duplicates
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-25 22:11:44 -07:00
Riccardo Spagni
6f15194049
Merge pull request #290
fee8424 Allow name@domain.tld for OpenAlias lookups (warptangent)
a0fe18f Revert "Allow name@domain.tld for OpenAlias lookups" (warptangent)
2015-05-20 14:36:38 +02:00
Riccardo Spagni
38068d07ca
Merge pull request #288
f278fe3 s/terget/target/ (moneromooo-monero)
d8ee0a9 print limits when running limit commands with no arguments (moneromooo-monero)
2015-05-20 14:36:07 +02:00
Riccardo Spagni
2939361d72
Merge pull request #287
d1eac1b Support debugging command --pop-blocks on in-memory blockchain (warptangent)
2015-05-20 14:35:50 +02:00
Riccardo Spagni
53ac50733a
Merge pull request #285
087d7f3 Add spendkey dump to simplewallet (luigi1111)
2015-05-20 14:34:29 +02:00
luigi1111
087d7f33e7 Add spendkey dump to simplewallet 2015-05-19 19:08:37 -05:00
warptangent
fee8424938
Allow name@domain.tld for OpenAlias lookups
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-19 02:56:04 -07:00
warptangent
a0fe18f63a
Revert "Allow name@domain.tld for OpenAlias lookups"
This reverts commit b18368b635.
2015-05-19 02:49:39 -07:00
Thomas Winget
01076ae700
Check if LMDB needs resize every 1000 blocks
(this was 10 for testing purposes)
2015-05-18 06:18:31 -04:00
Thomas Winget
b0d849e0a4
null out batch txn pointer as needed (BlockchainLMDB) 2015-05-18 06:12:54 -04:00
moneromooo-monero
f278fe3883
s/terget/target/ 2015-05-17 13:16:44 +01:00
moneromooo-monero
d8ee0a95c7
print limits when running limit commands with no arguments
It's more user friendly that an error message saying the command
does not exist.
2015-05-17 13:15:09 +01:00
warptangent
d1eac1b71c
Support debugging command --pop-blocks on in-memory blockchain
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-16 19:38:52 -07:00
Thomas Winget
7b7ef73c15
LMDB should now dynamically resize the mapsize
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-16 22:05:54 -04:00
warptangent
d35bffb950
Allow BlockchainLMDB to be opened in read-only mode
Have blockchain_export use read-only mode when source is BlockchainLMDB.
2015-05-16 01:34:58 -07:00
Thomas Winget
ac79502308
Move mdb_txn_safe implementation to cpp file 2015-05-15 20:42:47 -04:00
warptangent
73d3511412
Rename "--block-number" option to "--block-stop"
Update help output for this and other options.
2015-05-15 17:26:43 -07:00
warptangent
2b2dbd887d
Check if chunk size is zero instead of negative
This corrects an unnecessary check and fixes compile error on OS X.
2015-05-15 17:23:01 -07:00
Thomas Winget
b1d92bcc37
Fixes changes to sort tx by fee per kb 2015-05-13 20:27:06 -04:00
Riccardo Spagni
1d42deb767
Merge pull request #281
ac011b4 Rename src/blockchain_converter/ to src/blockchain_utilities/ (warptangent)
ed9c639 Add --block-number option to blockchain_import (warptangent)
1eb4c66 Update blockchain utilities with portable bootstrap file format (warptangent)
54bd9c1 Add MDB_NORDAHEAD as a supported LMDB flag for blockchain_import (warptangent)
a52496d Condense #if directives (warptangent)
8c1a188 Add basic "pop blocks" command to blockchain_import for debugging (warptangent)
71af046 Update log statements (warptangent)
2015-05-13 11:21:42 +02:00
Riccardo Spagni
ec5eca699d
Merge pull request #280
2ff0d75 Fix missing virtual destructor (Sergey Kazenyuk)
eb565a1 Suppress 'register storage class is deprecated' warning in boost dependency library (Sergey Kazenyuk)
2015-05-13 11:21:00 +02:00
Riccardo Spagni
a8a5939df3
Merge pull request #277
48926d0 Fix incompatibility with blockchain exporter when source is LMDB (warptangent)
2015-05-13 11:20:28 +02:00
Riccardo Spagni
012164fff8
resolved merge conflict in tx_pool.cpp 2015-05-13 11:18:22 +02:00
Riccardo Spagni
85589274aa
Merge pull request #274
b18368b Allow name@domain.tld for OpenAlias lookups (Thomas Winget)
2015-05-13 11:07:44 +02:00
warptangent
ac011b4312
Rename src/blockchain_converter/ to src/blockchain_utilities/
Update appropriate files (CMakeLists.txt, README.md)
2015-05-08 14:24:51 -07:00
warptangent
ed9c639612
Add --block-number option to blockchain_import
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-08 14:12:30 -07:00
warptangent
1eb4c66ad8
Update blockchain utilities with portable bootstrap file format
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-08 14:12:20 -07:00
warptangent
54bd9c1ed5
Add MDB_NORDAHEAD as a supported LMDB flag for blockchain_import 2015-05-08 14:12:18 -07:00
warptangent
a52496de77
Condense #if directives 2015-05-08 14:12:13 -07:00
warptangent
8c1a1884b5
Add basic "pop blocks" command to blockchain_import for debugging
Usage: blockchain_import --pop-blocks <num_blocks>
2015-05-08 14:12:08 -07:00
warptangent
71af04669c
Update log statements
Use filesystem path conversion to string() instead of c_str().
Windows may otherwise output an address.
2015-05-08 14:12:06 -07:00