Howard Chu and moneromooo-monero
3d19ab7067
Revert "Cleanup test impact of moving blockchain_db_types()"
...
This reverts commit 3dd34a49ef .
2017-08-29 13:28:16 +01:00
Howard Chu
ea15e72d73
tx_pool: fix crash in stats
...
if tx receive_time == now. supersedes #2322
2017-08-23 14:22:25 +01:00
Howard Chu
3dd34a49ef
Cleanup test impact of moving blockchain_db_types()
2017-08-22 15:11:28 +01:00
Howard Chu
c22d22e2db
Cleanup test impact of adding safesyncmode() method
2017-08-22 15:11:09 +01:00
Howard Chu
c656dd0ede
Fix refresh counter display
...
Suspend readline when refreshing
2017-08-22 08:30:04 +01:00
Howard Chu
c088d38a57
Simplify readline support
...
And don't use std::mutex
2017-08-22 08:30:04 +01:00
Howard Chu
0c6c3eb3f2
Silence stupid fallthru warning in gcc 7
2017-08-21 10:16:10 +01:00
Howard Chu
9a859844f4
Toggle SAFE syncmode on and off automatically
...
If monerod is started with default sync mode, set it to SAFE after
synchronization completes. Set it back to FAST if synchronization
restarts (e.g. because another peer has a longer blockchain).
If monerod is started with an explicit sync mode, none of this
automation takes effect.
2017-08-20 16:30:28 +01:00
Howard Chu
80344740bd
More DB support cleanup
...
Hide DB types from db_types.h - no reason to recompile dependencies
when DB types change.
Also remove lingering in-memory DB references, they've been
obsolete since 9e82b694da
2017-08-20 13:57:36 +01:00
Howard Chu
4c7f8ac04f
DB cleanup
...
Hide LMDB-specific stuff behind blockchain_db.h. Nobody besides blockchain_db.cpp
should ever be including DB-specific headers any more.
2017-08-19 18:11:38 +01:00
Howard Chu
9c6eb75c65
ITS#8704 add MDB_PREVSNAPSHOT flag to mdb_env_open
...
used to open the previous snapshot, in case the latest one
is corrupted
2017-08-12 12:21:25 +01:00
Howard Chu
33d17c37e8
Don't hardcode /tmp
2017-07-11 12:38:51 +01:00
Howard Chu
8db68a57f5
Fix #2164 histogram output
...
When there are more than 50txs, the timestamp for the last
bin was printed incorrectly. Subtracting "now" was omitted by mistake
in 3fc22e7b78
2017-07-10 15:51:03 +01:00
Howard Chu
a0d2c745c7
Fix issue #2119 SEGV
...
Due to bad refactoring in PR #2073 .
timeout_handler() doesn't work as a virtual function.
2017-07-01 23:35:16 +01:00
Howard Chu
464afd4d2d
Ensure DNSResolver destructor runs on exit
...
Plugs a noisy but benign memory leak
2017-06-28 22:21:06 +01:00
Howard Chu
07c4276cbe
Don't issue a new timedsync while one is already in progress
...
A timedsync is issued every minute on a connection, but the input
tineout is 2 minutes. This means a new sync request could be issued
while a slow sync request was already in progress. The additional
request will further clog the network on a slow connection, and
cause a premature timeout.
2017-06-15 16:54:03 +01:00
Howard Chu
cf3a376cb5
Don't timeout a slow operation that's making progress
...
If we got at least MIN_BYTES_WANTED (default 512) during any network
poll, reset the timeout to allow more time for data to arrive.
2017-06-15 16:54:03 +01:00
Howard Chu
340830de5b
Fix PR#2039
...
Missed a crypto -> cncrypto rename
2017-06-15 16:54:03 +01:00
Howard Chu
1dd524151d
Fix #1991 asm multiply again
...
Tweak temp variables and constraints. Was working before if not inlined
but newer gcc tends to inline it.
2017-06-08 21:46:40 +01:00
Howard Chu
3fc22e7b78
Add histogram to poolstats
2017-06-04 22:48:14 +01:00
Howard Chu
d09620b0e2
Fix PR#2039
...
Missed a crypto -> cncrypto rename
2017-06-04 22:48:13 +01:00
Howard Chu
5414970dcd
Speedup print_pool_stats
...
Since we're just counting txs, there's no reason to deserialize all the blobs.
2017-06-01 17:34:03 +01:00
Howard Chu
d17c0fc2d0
Don't copy blockchain for coinbase_tx_sum
...
Changed Blockchain::for_all_blocks() to for_blocks_range()
Operate on blockchain in-place instead of building a copy first.
2017-06-01 14:14:24 +01:00
Howard Chu
fa489a26ef
Fix PR#2039
...
Missed a crypto -> cncrypto rename
2017-05-31 15:34:31 +01:00
Howard Chu and moneromooo-monero
45e9838bb1
unbound: update some EVP APIs to new names
...
Replace EVP_VerifyInit with EVP_DigestInit, and EVP_VerifyUpdate
with EVP_DigestUpdate. Reported/requested by hyc, changed by mooo.
2017-05-17 22:33:16 +01:00
Howard Chu
710b2e80c6
Silence clang++ warnings
...
Using defined(foo) in a macro expansion is undefined.
2017-04-23 23:44:19 +01:00
hyc
5e5b8512d6
Fix obsolete OpenSSL API usage
...
EVP_dss1() was deprecated and EVP_sha1() is the direct replacement.
Upstream libunbound already has this patch. Note that I haven't
added a test for HAVE_EVP_DSS1 since that was deprecated quite a
long time ago in OpenSSL, there's really no reason to support it.
2017-04-12 23:56:23 +01:00
hyc
6c72d6a058
Fix Android recognition
...
The official macro is __ANDROID__; ANDROID may or may not be defined.
2017-04-12 23:55:29 +01:00
hyc
e65d66fe04
Fix ARM64 identification
...
The actual arch flag the compiler recognizes is "armv8-a".
This is true for both gcc and clang.
2017-04-12 23:54:33 +01:00
hyc
a467321800
Clean up ARMv8-a aes_expand_key()
...
The inline asm was lying about its parameters
2017-04-12 23:53:08 +01:00
hyc
a3d779013d
Fix block_longhash_worker thread
...
Wasn't getting its stack size initialized; crashes on Android
with a default stack size of 1MB.
2017-04-12 23:51:18 +01:00
Howard Chu
110b683152
Resolve #92 add ability to create wallets thru RPC
...
Reviewed and squashed. Open/Create is only allowed if no walletfile
was specified at startup.
2017-04-11 01:22:44 +01:00
Howard Chu
d3aaf74080
Partial fix #1876 , check thread in block_txn_start()
...
Don't allow use of existing batch txn if it's from the wrong thread
2017-03-19 12:27:03 +00:00
Howard Chu
3964b30f2d
Add dependency for blocksdat.o
...
To make sure it gets regenerated whenever checkpoints.dat changes
Likewise for blocks.o and testnet_blocks.o
2017-03-04 22:02:10 +00:00
Howard Chu
e4437b2551
Fix double-import
...
Incomplete ifdef cleanup in 9e82b694da
2017-03-03 21:45:14 +00:00
Howard Chu
eb62dcc871
Remove redundant num_txs() method
...
Cleanup of bf1348b7e2
2017-03-03 16:52:45 +00:00
Howard Chu
296641e047
Fix #1824 don't end batch that we didn't start
2017-03-03 16:50:53 +00:00
Howard Chu
80749e59a8
More for PR #1724
...
Fix unit_tests build (get_output_key API change)
2017-02-21 13:53:13 +00:00
Howard Chu
86d8a33a4b
BerkeleyDB code isn't usable any more, drop from dependencies
2017-02-21 13:33:43 +00:00
Howard Chu
bed2d9f231
Get rid of directory lock
...
We don't need it any more. Fixes issue #1633
2017-02-18 22:22:24 +00:00
Howard Chu
2e9136767e
Handle map resizes from other processes
2017-02-18 22:22:24 +00:00
Howard Chu
bf1348b7e2
Can't cache num_txs or num_outputs either
...
Same reason as 3ff54bdd7a
2017-02-18 21:01:24 +00:00
Howard Chu
dc53e9eef2
Add a few read txns to streamline
...
Slight perf gain, but mainly to reduce spam at loglevel 3
2017-02-18 21:01:24 +00:00
Howard Chu
424b76a4e5
Fix spurious synchronization status msgs
...
Only update target height if it's actually greater than the current target.
Only display "synchronized" when current height equals target.
2017-02-15 14:41:42 +00:00
Howard Chu
27c3a0ea9f
ITS#8582 keep mutex at end of struct
...
since it's variable size on Linux/glibc
2017-02-07 15:12:05 +00:00
Howard Chu
edfd7f6e07
Workaround VL32 cursor refcounting miscount
...
Don't try to deref cursor page if txn's pagelist is empty
2017-01-31 10:38:12 +00:00
Howard Chu
843769f88f
Tweak some msg loglevels
2017-01-16 20:42:59 +00:00
Howard Chu
990e08f090
Fix PR#1506, off by one in chain height
2017-01-16 10:00:06 +00:00
Howard Chu
f3fdefe001
Fix multiple definition clash on ARMv7 build
...
Broken by d1d6e27ab6
2016-12-23 18:05:11 +00:00
Howard Chu
69b59186f3
Add ARMv8-A AES support
...
More than twice as fast as plain C code. Note that both ARMv7 and
ARMv8 can be further improved with better use of NEON.
Also tweak ARMv7 multiplier
2016-09-16 01:45:49 +01:00
Howard Chu
b8c03a5f10
Remove blocks_per_sync limits
...
The code used to cap at 5000 blocks per sync. It also treated 0 as 1.
Remove these checks; if specified as 0 do no periodic syncs at all.
Then the user is responsible for syncing in some external process.
2016-08-31 00:00:19 +01:00
Howard Chu
5bba2fdbb0
More for PR#999
2016-08-29 15:58:56 +01:00
Howard Chu
dc411ea3b7
Change default db-sync-mode to fast, not fastest
2016-08-28 16:20:22 +01:00
Howard Chu
7442dd084a
More for Issue #855
...
Plug rpage leak in cursor_set
2016-08-11 21:04:36 +01:00
hyc and luigi1111
709c7247cd
Better fix ( #4 )
2016-08-09 18:54:20 -05:00
Howard Chu
d6f5d543a5
Fix Issue #855
...
Use the same size dirty list for both 64 and 32 bit.
2016-06-07 23:38:47 +01:00
Howard Chu
f1e70d15ca
Only log 1/N skipped blocks
2016-04-29 16:50:51 +01:00
Howard Chu
cebb97c913
Move refresh height to keys file from cache file
2016-04-29 15:33:28 +01:00
Howard Chu
590c43988c
Make fast_refresh interruptible
2016-04-29 15:33:28 +01:00
Howard Chu
687855d658
Set refresh height earlier
...
Do it before the generate() call so the value actually gets stored.
2016-04-29 15:33:28 +01:00
Howard Chu
2fb00c0666
Fix 19fe8ae3ef
...
Don't prompt for restore-height on generate-new-wallet
2016-04-29 04:51:02 +01:00
Howard Chu
2b0fa05f0d
Another take on migration
...
Delete old indices and recreate them, rather than updating them
Maybe not quite as slow as before.
2016-04-24 17:46:50 +01:00
Howard Chu
19fe8ae3ef
Add --restore-height option
...
For specifying the block height from which to start a restore
2016-04-17 15:25:46 +01:00
Howard Chu
b6e42c3276
Speed up new wallet refresh
...
Use the current blockchain height as the refresh_from_block_height.
2016-04-17 15:25:46 +01:00
Howard Chu
b7140daea2
Add GET_HASHES_FAST rpc, use it in wallet
...
When m_refresh_from_block_height has been set, only hashes will be
retrieved up to that height, instead of full blocks. The same will
be done for "refresh <height>" when the specified height is beyond
the current local blockchain.
2016-04-17 15:25:46 +01:00
Howard Chu
66b1e13aa7
mdb_drop optimization
...
If we know there are no sub-DBs and no overflow pages, skip leaf scan.
2016-04-09 20:44:05 +01:00
Howard Chu
c14f9efd52
Migration
...
Migrate from DB version 0 to version 1 on startup
2016-04-08 03:11:05 +01:00
Howard Chu
aaaf9e2e6d
Fix get_tick_count() on Windows
...
GetTickCount used in 52056dcfc4
only has ~10-16ms resolution. Use higher rez timer to get 1ms rez.
2016-04-06 03:41:52 +01:00
Howard Chu
d7ea7d9a23
Merge branch 'performance' into master
2016-04-05 21:13:16 +01:00
Howard Chu
372acee723
Cleanup
...
drop obsolete remove_output()
fix get_output_key(global), fix crash in blockchain_dump
2016-04-05 21:05:24 +01:00
Howard Chu
591e421875
Cleanup and clarify
...
Try to rationalize the variable names, document usage.
2016-04-05 20:57:45 +01:00
Howard Chu
b2f1c58805
Use cursors in some remove functions
...
Helps when they're called repeatedly in one txn
2016-04-05 20:57:31 +01:00
Howard Chu
118dd69dd5
Use DUPFIXED for block_info and output_txs
...
Saves another ~150MB or so on the full blockchain
2016-04-05 20:55:16 +01:00
Howard Chu
6225716f3c
More outputs consolidation
...
Also bumped DB VERSION to 1
Another significant speedup and space savings:
Get rid of global_output_indices, remove indirection from output to keys
This is the change warptangent described on irc but never got to finish.
2016-04-05 20:55:12 +01:00
Howard Chu
7c5abdc3a3
Use DUPFIXED for output_keys
...
Saves another 90MB on 200000 block import.
Had to bring back compare_uint64 for this, but it's safe since
this table is always 64-bit aligned.
2016-04-05 20:54:42 +01:00
Howard Chu
8e9d8e3364
Use DUPFIXED for tx_indices
...
Small space savings, no measurable speedup
2016-04-05 20:54:39 +01:00
Howard Chu
a12f9365f8
Use DUPFIXED for block_heights
...
Only a small savings...
2016-04-05 20:54:07 +01:00
Howard Chu
38c2277d6f
Use DUPFIXED for spent_keys
2016-04-05 20:54:07 +01:00
Howard Chu
8d252a4214
Consolidated block info
2016-04-05 20:53:59 +01:00
Howard Chu
efbdde2c66
Detect map resize failures
2016-03-30 20:37:28 +01:00
Howard Chu
8757e46b78
add blockhashing blob to getblocktemplate
2016-03-30 16:54:36 +01:00
Howard Chu
db1b2db4d5
Reduce log noise
2016-03-19 12:59:05 +00:00
Howard Chu
9b3e43c327
Fix issue #706
2016-03-19 12:57:47 +00:00
Howard Chu
a74348e115
Add destructor for readtxns
...
Only if we created the readtxn. Was missing cleanups from exceptions before.
2016-03-16 11:34:13 +00:00
Howard Chu
6b0a903177
Small cleanups
...
Only one return and TXN_POSTFIX_RDONLY() per function
Only log rtxn_start if the rtxn wasn't already active
2016-03-15 13:35:31 +00:00
Howard Chu
01c1512f22
More for 92dd4ec6d6
...
Make sure we stop the right txn too
2016-03-15 13:35:23 +00:00
Howard Chu
92dd4ec6d6
Hack for read/write txn mixup
...
save the thread ID of the writer thread so we don't try to use
the writetxn from reader threads
2016-03-14 20:19:46 +00:00
Howard Chu
2abdb2c9fd
avoid some val copies
2016-03-14 09:40:49 +00:00
Howard Chu
66c2fc7b70
Need to link boost::chrono in more places now
2016-03-11 16:17:08 +00:00
Howard Chu
52056dcfc4
WIN32 thread_id is OS-dependent not compiler-dependent
2016-03-11 15:46:09 +00:00
Howard Chu
b937a2c915
Use boost::thread instead of std::thread
...
and all other associated IPC
2016-03-11 15:09:50 +00:00
Howard Chu
87d39f39b3
WIN32: Need getpid() declaration
2016-03-11 13:32:50 +00:00
Howard Chu
8941ce0398
More for bdec7cb
...
More uses of db error helper
2016-03-09 18:24:16 +00:00
Howard Chu
ee7a8b87f9
Get rid of lmdb_cur
...
We don't need it now with per-txn cursors.
2016-03-03 19:06:27 +00:00
Howard Chu
d57ec7595c
Fix language
2016-03-03 00:34:19 +00:00
Howard Chu
f5affbef26
More for df239428c0
...
Let ARMv7 work again
2016-03-03 00:13:13 +00:00
Howard Chu
7db89ed2ee
ARMv7: fix unaligned accesses
...
And cleanup some key comparators
2016-02-25 13:57:00 +00:00
Howard Chu
8cc7a36f0b
read txn/cursor stuff
...
Could wrap more later.
2016-02-23 20:47:15 +00:00
Howard Chu
11d555cebe
Fix crash in std::map for connections_map
...
Use boost::unordered_map instead.
2016-02-18 21:31:30 +00:00
Howard Chu
014f8868f2
std::condvar is broken on Win32 with gcc/g++ 4.8 too
...
Use boost...
2016-02-18 21:31:21 +00:00