Commit Graph

2840 Commits

Author SHA1 Message Date
warptangent
963bc09087
Revert "Bounds error, should fix #27"
This reverts commit 6f1c4b4c2c.
2015-02-22 10:31:11 -08:00
Thomas Winget
6f1c4b4c2c
Bounds error, should fix #27 2015-02-20 21:09:32 -05:00
rfree2monero
ae2a50659f 2014 network limit 1.2 +utils +toc -doc -drmonero
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-20 22:28:03 +01:00
rfree2monero
0f06dca831 fixed size_t on windows
thought it was already fixed, apparently commit got lost somewhere
2015-02-20 22:13:00 +01:00
rfree2monero
39fc63f48d removed not needed <netinet/in.h> 2015-02-20 22:13:00 +01:00
rfree2monero
5ce4256e3d 2014 network limit 1.1 +utils +toc -doc -drmonero
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-20 22:13:00 +01:00
rfree2monero
eabb519605 2014 network limit 1.0a +utils +toc -doc -drmonero
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-20 22:13:00 +01:00
Riccardo Spagni
e728992803
Merge pull request #229
7b01a07 added tx size to incoming_transfers RPC Call (Riccardo Spagni)
2015-02-20 00:59:52 +02:00
Riccardo Spagni
7b01a076b9
added tx size to incoming_transfers RPC Call 2015-02-20 00:57:26 +02:00
Thomas Winget
fc62af5cf8
Merge remote-tracking branch 'monero-project/master' into blockchain 2015-02-05 08:51:19 -05:00
Riccardo Spagni
6e5797dc11
Merge pull request #221
3ece158 make fallback compatible with newer slow-hash (Riccardo Spagni)
709bbc5 replaced 64-bit multiplication in difficulty.cpp with a portable version (Riccardo Spagni)
497a514 replaced 64-bit multiplication in difficulty.cpp with a portable version (Riccardo Spagni)
2015-02-03 20:15:08 +02:00
Riccardo Spagni
cbb0742264
changed MM logo 2015-02-03 13:13:36 +02:00
Riccardo Spagni
f103e0d8f0
added donation and sponsor info to readme 2015-02-03 13:05:28 +02:00
Thomas Winget
d1f40506fa
Merge PR #26
Usage:

default is lmdb for blockchain branch:
$ make release

same as:
$ DATABASE=lmdb make release

for original in-memory implementation:
$ DATABASE=memory make release

COMMITS:

  - Add compile-time support for both db implementations: in-memory and LMDB

NOTE:
  The default should be changed to lmdb when this is merged upstream
  unless we're 100% sure the LMDB implementation is ready.
2015-02-03 05:18:12 -05:00
warptangent
84fe5fbd65
Add compile-time support for both db implementations: in-memory and LMDB
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-02 11:53:09 -08:00
Thomas Winget
a4f5344024
Merge PR 25 into blockchain 2015-02-02 01:25:57 -05:00
warptangent
8bd1983cdc
Blockchain: reflect log updates from blockchain_storage
See commit 4ba680f294
2015-02-01 19:30:20 -08:00
warptangent
7f9b070165
Blockchain: reflect log and assert updates from blockchain_storage
See commit cf5a8b1d6c
2015-02-01 19:30:14 -08:00
warptangent
70342ecada
Blockchain: reflect log level of blockchain_storage
Update to match LOG_PRINT_RED_Lx statements.
See commit cf5a8b1d6c
2015-02-01 19:29:18 -08:00
warptangent
c8d27fb38d
Blockchain: reflect assert behavior of blockchain_storage for get_tx_outputs_gindexs() 2015-02-01 19:29:03 -08:00
warptangent
d00ee784db
Update recently added log statement to fix possible null dereference
This would have been triggered if function was called without fourth
parameter and ring signature check failed.
2015-02-01 19:28:58 -08:00
Thomas Winget
eeb0634f60
Merge remote-tracking branch 'origin/pr/24' into blockchain 2015-02-01 06:05:16 -05:00
warptangent
79ea1f6ff0
Merge upstream
Merge branch 'monero-project/master' into blockchain
2015-01-30 16:19:22 -08:00
Riccardo Spagni
3ece1584f0
make fallback compatible with newer slow-hash 2015-01-28 11:32:52 +02:00
Riccardo Spagni
17d81f24c3 Merge branch 'master' of https://github.com/fluffypony/bitmonero 2015-01-27 14:07:05 +02:00
Riccardo Spagni
497a514bd3 replaced 64-bit multiplication in difficulty.cpp with a portable version 2015-01-27 14:06:33 +02:00
Riccardo Spagni
709bbc52c4
replaced 64-bit multiplication in difficulty.cpp with a portable version 2015-01-27 14:04:23 +02:00
Riccardo Spagni
bd143e0c2f
Merge pull request #220
9b3673a added portable slow-hash, updated makefile targets, fixed readme (Riccardo Spagni)
2015-01-27 09:44:39 +02:00
Riccardo Spagni
9b3673a54c
added portable slow-hash, updated makefile targets, fixed readme 2015-01-27 09:43:15 +02:00
Riccardo Spagni
de8a1291ce
Merge pull request #219
e70bc3d fixed sse2 ifdef (Riccardo Spagni)
2015-01-27 09:16:36 +02:00
Riccardo Spagni
e70bc3d369
fixed sse2 ifdef 2015-01-27 09:15:14 +02:00
Riccardo Spagni
bd10324f0d
Merge pull request #218
2b3b70a remove aes flag, detect no sse2 (Riccardo Spagni)
2015-01-27 09:09:42 +02:00
Riccardo Spagni
2b3b70a261
remove aes flag, detect no sse2 2015-01-27 09:05:47 +02:00
Riccardo Spagni
bb85fea35a
fixed AES support flag 2015-01-27 07:45:21 +02:00
Riccardo Spagni
615079e2f4
allow for explicitly disabling AES-NI 2015-01-26 23:19:53 +02:00
Thomas Winget
9d52378029
Merge to keep up with upstream
Merge 'monero-project/master' with blockchain
2015-01-21 11:26:53 -05:00
Thomas Winget
acd4c369e4
Should fix std::min issues related to size_t 2015-01-19 17:39:38 -05:00
Thomas Winget
34883599bc
Add in-source lmdb to build process
Working on Linux, needs verified for other platforms but should be fine.
2015-01-18 18:30:31 -05:00
Thomas Winget
4e45fae9c3
Initial import of lmdb source 2015-01-18 16:18:15 -05:00
Riccardo Spagni
9e0516c1dd
Merge pull request #215
24d500c Add a --restricted-rpc flag to simplewallet (moneromooo-monero)
2015-01-15 14:03:48 +02:00
Riccardo Spagni
580e003357
Merge pull request #214
87839cd Allow get_bulk_payments to return all payments regardless of payment ID (moneromooo-monero)
2015-01-15 13:59:48 +02:00
Thomas Winget
5149286c0b
Merge #216
Fix seed node threaded DNS lookup
2015-01-14 20:39:57 -05:00
Thomas Winget
40e0b70075
Merge #22
Remove code previously made unused and marked unused
2015-01-14 17:41:46 -05:00
warptangent
f74792b778
Fix seed node threaded DNS lookup
Use copied value of seed node index during thread creation, not
reference.
- fixes segfault

Use boost:🧵:try_join_until() instead of an atomic flag result
variable for each thread.

Add and handle interrupt for thread timeout.
- fixes segfault where a thread exceeds requested timeout and tries to
  assign results to a referenced, but now out-of-scope, variable in
  the main thread.
2015-01-14 14:01:04 -08:00
warptangent
800d9b9247
Remove code previously made unused and marked unused 2015-01-14 13:41:57 -08:00
Thomas Winget
d43782f041 Merge pull request #21 from warptangent/fix_block_reorg
Fixes and additions for block reorganization
2015-01-12 14:24:18 -05:00
warptangent
0840c2fd7e
Fix height assertion in Blockchain::handle_alternative_block()
It expects the total number of blocks of main chain, not last block id
(off-by-one error).

This again behaves like the same height assertion done in original
implementation in blockchain_storage::handle_alternative_block().

This allows a reorganization to proceed after an alternative block has
been added.
2015-01-11 21:23:02 -08:00
warptangent
63051bea1c
Fix comparison between main and alternate chain's cumulative
difficulty.

This fixes the continual reorganization between a main and alternate
chain, using the same two latest blocks from each.

The check that cumulative difficulty of the alternate chain is bigger
than main's was not using main's last block, but incorrectly using the
passed-in block's previous block. main_chain_cumulative_difficulty was
being used in two different ways. This has been split up to keep use
of main_chain_cumulative_difficulty consistent.
2015-01-11 21:23:02 -08:00
warptangent
909ea81067
Remove a have_block() check so alternate block can be processed
Remove have_block() check from Blockchain::handle_block_to_main_chain().
Add logging to have_block().

This allows blockchain reorganization to proceed further.

have_block() check here causes an error after a blockchain reorganize
begins with error: "Attempting to add block to main chain, but it's
already either there or in an alternate chain."

While reorganizing to become the main chain, a block in the
alternative chain would be refused due to have_block() rightfully
finding it in the alternative chain. The reorganization would end in
rollback, restoring to previous blockchain.

Original implementation didn't call it here, and it doesn't appear
necessary to be called from here in this implementation either. When
needed, it appears it's called prior to handle_block_to_main_chain().
2015-01-11 21:23:02 -08:00
warptangent
4d0a94b20c
Complete implementation of transaction removal
Complete method BlockchainLMDB::remove_output()
  - use output index as the key for:
    m_output_indices, m_output_txs, m_output_keys
  - call new method BlockchainLMDB::remove_amount_output_index()

Add method to remove amount output index.
  - BlockchainLMDB::remove_amount_output_index()
  - for m_output_amounts

This also fixes the segfault when blockchain reorganization is
attempted.
2015-01-11 21:22:09 -08:00