Commit graph

2092 commits

Author SHA1 Message Date
moneromooo-monero 6bca9a8ef4
abstract_tcp_server2: avoid deadlock waiting for send queue to drain
If we reach the send queue size limit, we need to release the lock,
or we will deadlock and it will never drain.

If we reach that limit, it's likely there's another problem in the
first place though, so it will probably not drain in practice either,
unless some kind of transient network timeout.
2016-04-17 11:45:38 +01:00
moneromooo-monero 7450656bf3
net_node: fix connection leak when ping fails with bad response
If there is no comms error, but the response is not as expected,
close would not be called.
2016-04-17 11:24:07 +01:00
moneromooo-monero 672162d9e2
tests: fix compile failure on wallet2::transfer 2016-04-17 11:21:01 +01:00
moneromooo-monero b0c18ef9cd
wallet2: move output selection api public 2016-04-17 11:20:44 +01:00
Riccardo Spagni 1c66fe04bc
Merge pull request #803
c33ffc8 simplewallet: save fixes in RPC mode (moneromooo-monero)
2016-04-14 16:26:46 +09:00
Riccardo Spagni b52148201b
Merge pull request #786
5092e45 tests: unbound API is only accessible in static builds (moneromooo-monero)
2016-04-14 16:26:29 +09:00
Riccardo Spagni 0ecb152810
Merge pull request #785
1a58d20 simplewallet: optional address in --generate-from-json (moneromooo-monero)
2016-04-14 16:26:11 +09:00
Riccardo Spagni 8f78f1407e
Merge pull request #784
087373e Fix potential race with parallel processing of txes/signatures/blocks (moneromooo-monero)
2016-04-14 16:25:53 +09:00
Riccardo Spagni 6bfb8799c3
Merge pull request #783
48d0747 wallet: better output selection for transfer/transfer_new (moneromooo-monero)
2016-04-14 16:25:38 +09:00
Riccardo Spagni 17049fa8e8
Merge pull request #782
113cdc1 core: keep the acc loop for the genesis block (moneromooo-monero)
2016-04-14 16:25:18 +09:00
Riccardo Spagni a299e5269b
Merge pull request #801
ed61a2c simplewallet: set strict umask at start (moneromooo-monero)
7385c03 util: add a function to set umask to 077 (moneromooo-monero)
2016-04-14 16:21:29 +09:00
Riccardo Spagni 784a2108f4
Merge pull request #800
4cfb4df blockchain: remove the tx validation result cache (moneromooo-monero)
2016-04-14 16:21:08 +09:00
Riccardo Spagni c2e9866fc6
Merge pull request #797
d662ab5 rpc: print human readable time since received when printing pool (moneromooo-monero)
5c9dd23 rpc: add a do_not_relay boolean to tx submission (moneromooo-monero)
2016-04-14 16:20:41 +09:00
Riccardo Spagni da277e17b5
Merge pull request #796
d817aec tx_pool: ensure no txes that fail check_inputs get in the block template (moneromooo-monero)
2016-04-14 16:20:17 +09:00
Riccardo Spagni 8f63e89c7f
Merge pull request #791
f17b2f4 rpc: add pool/blockchain and block height results to gettransactions (moneromooo-monero)
2016-04-14 16:19:49 +09:00
Riccardo Spagni 977ec85c5d
Merge pull request #789
17cac41 tests: fix build with older GCC (Javier Smooth)
2016-04-14 16:19:14 +09:00
moneromooo-monero c33ffc8e94
simplewallet: save fixes in RPC mode
^C when in RPC mode would not save the wallet while it was still
refreshing after starting up.

Also, save the wallet out of the signal handler. We don't want
to call complex stuff in a signal handler.
2016-04-10 16:56:12 +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
moneromooo-monero f17b2f42b2
rpc: add pool/blockchain and block height results to gettransactions 2016-04-09 12:40:32 +01:00
Howard Chu c14f9efd52 Migration
Migrate from DB version 0 to version 1 on startup
2016-04-08 03:11:05 +01:00
moneromooo-monero ed61a2ccc1
simplewallet: set strict umask at start 2016-04-06 20:00:25 +01:00
moneromooo-monero 7385c036bd
util: add a function to set umask to 077
Useful to ensure files are written without group/other read rights.
2016-04-06 19:59:34 +01:00
moneromooo-monero 4cfb4dff3e
blockchain: remove the tx validation result cache
As pointed out by smooth, a transaction's validity may change
over time as the blockchain changes.
2016-04-06 19:01:28 +01:00
Riccardo Spagni abea280dd3
Merge pull request #799
aaaf9e2 Fix get_tick_count() on Windows (Howard Chu)
2016-04-06 12:21:14 +09: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
Riccardo Spagni 151f4b63f7
Merge pull request #787
b1aaf20 epee: flush output after a message (moneromooo-monero)
2016-04-06 11:25:15 +09:00
Riccardo Spagni fafb43f3cd
Merge pull request #798
1aad759 tx_pool: fix (hopefully) save/load of kept_by_block (moneromooo-monero)
2016-04-06 11:25:00 +09:00
moneromooo-monero 1aad759bf1
tx_pool: fix (hopefully) save/load of kept_by_block 2016-04-06 00:11:31 +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
warptangent bf769c32ba Add back changes from revert.
m_tx_outputs doesn't need to be changed, as it's no longer dup list.
2016-04-05 20:54:07 +01:00
warptangent 46b991b362 Use MDB_APPEND mode with two tx subdbs
This is possible on those using a tx index as a key.
2016-04-05 20:54:07 +01:00
warptangent 9aadedb1d0 Schema update: tx_indices - consolidate the tx subdbs from 5 to 3 2016-04-05 20:54:06 +01:00
warptangent a2f518aa01 Schema update: tx_indices - yet less indirection 2016-04-05 20:54:06 +01:00
warptangent 8d12a8df2c Schema update: tx_indices - improve further with less indirection 2016-04-05 20:54:06 +01:00
warptangent 7c013f66e9 Add batch warning for further review 2016-04-05 20:54:06 +01:00
warptangent ae0854a431 Schema update: tx_indices 2016-04-05 20:54:06 +01:00
Howard Chu 8d252a4214 Consolidated block info 2016-04-05 20:53:59 +01:00
warptangent 132c666f67 Update schema for "tx_outputs" to use array containing amount output indices
This speeds up wallet refresh by directly retrieving a tx's amount output indices.

It removes the indirection and walking the amount output duplicate list
for every amount in each requested tx.

"tx_outputs" is used by:
Amount output indices are needed for wallet refresh.
Global output indices are needed for removing a tx.

Both amount output indices and global output indices are now stored in
an array of 64-bit unsigned ints:

tx_outputs[<tx_hash>] -> [ <a1_oi, a1_gi, a2_oi, a2_gi, ...> ]

Previously it was:
tx_outputs[<tx_hash>] -> duplicate list of <a1_gi, a2_gi, a3_gi, ...>

The amount output list had to be walked for every amount in order to
find each amount's output index, by comparing the amount's global output
index with each one in the duplicate list until a match was found.

See also d045dfa7ce
2016-04-05 20:30:50 +01:00
warptangent 309f8f3d44 blockchain_utilities: Update documentation 2016-04-05 20:30:50 +01:00
luigi1111 7ac1db42c2 get_payments short ID
Add support for short/integrated/encrypted IDs to get_payments RPC
2016-04-05 20:30:50 +01:00
moneromooo-monero d662ab5cec
rpc: print human readable time since received when printing pool 2016-04-05 20:16:05 +01:00