aboutsummaryrefslogtreecommitdiff
path: root/src/p2p
Commit message (Collapse)AuthorAgeFilesLines
...
* net_node: fix m_in_timedsync initializationmoneromooo-monero2017-08-082-1/+2
| | | | | This fixes nodes not being able to connect to nodes which use recent code. While there, init peer_id too.
* Merge pull request #2149Riccardo Spagni2017-08-073-0/+14
|\ | | | | | | | | | | | | | | 158c3ecf core: thread most of handle_incoming_tx (moneromooo-monero) f57ee382 cryptonote_protocol: retry stale spans early (moneromooo-monero) 90df52e1 cryptonote_protocol: light cleanup (moneromooo-monero) 84e23156 cryptonote_protocol: avoid spurious SYNCHRONIZED OK messages (moneromooo-monero) 5be43fcd cryptonote_protocol_handler: sync speedup (moneromooo-monero)
| * cryptonote_protocol_handler: sync speedupmoneromooo-monero2017-08-073-0/+14
| | | | | | | | | | | | | | | | A block queue is now placed between block download and block processing. Blocks are now requested only from one peer (unless starved). Includes a new sync_info coommand.
* | Merge pull request #2234Riccardo Spagni2017-08-077-15/+17
|\ \ | | | | | | | | | 214fd81e some include cleanup (moneromooo-monero)
| * | some include cleanupmoneromooo-monero2017-07-317-15/+17
| |/
* | Merge pull request #2220Riccardo Spagni2017-08-071-0/+3
|\ \ | | | | | | | | | c6ba7d11 p2p: move m_in_timedsync from connection_context to p2p_connection_context (moneromooo-monero)
| * | p2p: move m_in_timedsync from connection_context to p2p_connection_contextmoneromooo-monero2017-08-011-0/+3
| |/ | | | | | | It's got no place in the base class as it's P2P specific field
* | Merge pull request #2219Riccardo Spagni2017-08-071-6/+14
|\ \ | | | | | | | | | | | | 04ebfbfe p2p: close connections when exiting (moneromooo-monero) 9a10148c p2p: fix thread leak (moneromooo-monero)
| * | p2p: close connections when exitingmoneromooo-monero2017-07-291-0/+8
| | | | | | | | | | | | | | | This ensures they don't leak if they were in the middle of an async operation.
| * | p2p: fix thread leakmoneromooo-monero2017-07-281-6/+6
| |/
* | Merge pull request #2215Riccardo Spagni2017-08-072-1/+9
|\ \ | | | | | | | | | 06aea2cf move get_proof_of_trust_hash from util.h to p2p_protocol_defs.h (moneromooo-monero)
| * | move get_proof_of_trust_hash from util.h to p2p_protocol_defs.hmoneromooo-monero2017-07-272-1/+9
| |/ | | | | | | | | | | This avoids having to include p2p_protocol_defs.h in util.h, as util.h is used a lot, and p2p_protocol_defs.h includes a lot of other things that most users don't need.
* / network_throttle: remove unneeded heap allocationsmoneromooo-monero2017-08-012-19/+6
|/ | | | | This will keep leak traces less noisy, as those were one off allocations that were technically leaking.
* Remove typeid use in network_addressmoneromooo-monero2017-06-283-20/+12
| | | | | | Since I had to add an ID to the derived classes anyway, this can be used instead. This removes an apparently pointless warning from CLANG too.
* Merge pull request #2073Riccardo Spagni2017-06-241-2/+6
|\ | | | | | | | | | | 07c4276c Don't issue a new timedsync while one is already in progress (Howard Chu) cf3a376c Don't timeout a slow operation that's making progress (Howard Chu) 340830de Fix PR#2039 (Howard Chu)
| * Don't issue a new timedsync while one is already in progressHoward Chu2017-06-151-2/+6
| | | | | | | | | | | | | | | | 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.
* | abstracted nework addressesmoneromooo-monero2017-05-276-189/+320
|/ | | | | | | | | | All code which was using ip and port now uses a new IPv4 object, subclass of a new network_address class. This will allow easy addition of I2P addresses later (and also IPv6, etc). Both old style and new style peer lists are now sent in the P2P protocol, which is inefficient but allows peers using both codebases to talk to each other. This will be removed in the future. No other subclasses than IPv4 exist yet.
* Merge pull request #1701Riccardo Spagni2017-05-055-18/+207
|\ | | | | | | 8277e67f Add anchor connections (Miguel Herranz)
| * Add anchor connectionsMiguel Herranz2017-02-105-18/+207
| | | | | | | | | | | | Based on https://eprint.iacr.org/2015/263.pdf 4. Anchor connections. Peer list serialisation version bumped to 5.
* | p2p: use the fallback seed IPs when not enough seeds are foundmoneromooo-monero2017-03-182-26/+63
| | | | | | | | | | | | In case the DNS seed(s) is/are down, which would otherwise cause the fallback seeds to never be used. Also if the seeds resolve to too few IPs.
* | Make gray peer selection uniformMiguel Herranz2017-02-281-1/+8
| | | | | | | | | | Prevents the system from always picking the gray peers with the most recent last_seen.
* | Make get_random_gray_peer distribution uniformMiguel Herranz2017-02-271-5/+2
| | | | | | | | | | get_random_gray_peer is used to implement feeler connections, described in: https://eprint.iacr.org/2015/263.pdf 2. Random selection
* | updated fallback nodesRiccardo Spagni2017-02-211-6/+12
| |
* | update copyright year, fix occasional lack of newline at line endRiccardo Spagni2017-02-2114-14/+14
| |
* | core: add p2p bind port options from net_nodemoneromooo-monero2017-02-211-2/+2
| | | | | | | | | | | | | | | | They're now used by core to determine the data directory to use for the txpool directory. This fixes an assert in the core tests, which don't use the RPC server, which normally initializes the P2P code.
* | network_throttle: demote spammy logs to TRACEmoneromooo-monero2017-02-131-2/+2
| |
* | net_node: fix spurious warning about using uninitialized datamoneromooo-monero2017-02-121-1/+1
| | | | | | | | This is only used to load, not save
* | extract some basic code from libcryptonote_core into libcryptonote_basickenshi842017-02-081-0/+1
|/
* Merge pull request #1641Riccardo Spagni2017-02-021-0/+5
|\ | | | | | | ca94d0a4 Separate data per P2P port (Miguel Herranz)
| * Separate data per P2P portMiguel Herranz2017-01-281-0/+5
| | | | | | | | | | | | | | | | poolstate.bin and p2pstate.bin are stored in .bitmonero/ if the default P2P port is being used. If another port is used both files are stored in .bitmonero/PORTNUMBER/.
* | Merge pull request #1617Riccardo Spagni2017-02-027-12/+8
|\ \ | |/ |/| | | | | | | 0644eed7 Remove boost/foreach.cpp includes (Miguel Herranz) 36dd3e23 Replace BOOST_REVERSE_FOREACH with ranged for (Miguel Herranz) 629e3101 Replace BOOST_FOREACH with C++11 ranged for (Miguel Herranz)
| * Remove boost/foreach.cpp includesMiguel Herranz2017-01-225-5/+0
| |
| * Replace BOOST_REVERSE_FOREACH with ranged forMiguel Herranz2017-01-221-3/+4
| |
| * Replace BOOST_FOREACH with C++11 ranged forMiguel Herranz2017-01-223-4/+4
| |
* | Remove unreachable returnsMiguel Herranz2017-01-231-3/+0
|/ | | | CATCH_ENTRY_L0 already returns the second value.
* Merge pull request #1609Riccardo Spagni2017-01-222-2/+17
|\ | | | | | | 4cdf0a35 p2p: always recreate a new peer id on startup (moneromooo-monero)
| * p2p: always recreate a new peer id on startupmoneromooo-monero2017-01-222-2/+17
| | | | | | | | | | This prevents easy fingerprinting when you change IPs, and will be a must when kovri gets used.
* | Merge pull request #1606Riccardo Spagni2017-01-221-3/+3
|\ \ | | | | | | | | | f8b97aef p2p: show ban/unban logs by default again (moneromooo-monero)
| * | p2p: show ban/unban logs by default againmoneromooo-monero2017-01-211-3/+3
| |/
* | Rename method to get_random_gray_peerMiguel Herranz2017-01-212-4/+4
| |
* | Fix logging that broke after rebasingMiguel Herranz2017-01-211-1/+1
| |
* | Use set_peer_just_seen to keep last_seen updatedMiguel Herranz2017-01-211-1/+1
| |
* | Add gray peer list housekeeping systemMiguel Herranz2017-01-213-0/+121
| | | | | | | | | | | | | | | | | | | | | | A random peer from the gray peer list is selected and a connection is made to check if the peer is alive. If the connection and handshake are successful the peer is promoted to the white peer list, in case of failure the peer is evicted from the gray peer list. The connection is closed after the check in either case.
* | Merge pull request #1593Riccardo Spagni2017-01-201-2/+4
|\ \ | | | | | | | | | cbcdf8ad Honor depth in get_peerlist_head method (Miguel Herranz)
| * | Honor depth in get_peerlist_head methodMiguel Herranz2017-01-181-2/+4
| | | | | | | | | | | | | | | | | | | | | The method returned depth + 2 because: - push_back was executed before the condition. - > instead of >= causing one more iteration.
* | | Merge pull request #1572Riccardo Spagni2017-01-202-0/+32
|\ \ \ | |_|/ |/| | | | | | | | 0e0e6c5f Reduce to one connection per IP (Miguel Herranz) 3f269e98 Limit incoming connections from the same IP (Miguel Herranz)
| * | Reduce to one connection per IPMiguel Herranz2017-01-161-1/+1
| | |
| * | Limit incoming connections from the same IPMiguel Herranz2017-01-152-0/+32
| |/
* | Change logging to easylogging++moneromooo-monero2017-01-165-427/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the epee and data_loggers logging systems with a single one, and also adds filename:line and explicit severity levels. Categories may be defined, and logging severity set by category (or set of categories). epee style 0-4 log level maps to a sensible severity configuration. Log files now also rotate when reaching 100 MB. To select which logs to output, use the MONERO_LOGS environment variable, with a comma separated list of categories (globs are supported), with their requested severity level after a colon. If a log matches more than one such setting, the last one in the configuration string applies. A few examples: This one is (mostly) silent, only outputting fatal errors: MONERO_LOGS=*:FATAL This one is very verbose: MONERO_LOGS=*:TRACE This one is totally silent (logwise): MONERO_LOGS="" This one outputs all errors and warnings, except for the "verify" category, which prints just fatal errors (the verify category is used for logs about incoming transactions and blocks, and it is expected that some/many will fail to verify, hence we don't want the spam): MONERO_LOGS=*:WARNING,verify:FATAL Log levels are, in decreasing order of priority: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE Subcategories may be added using prefixes and globs. This example will output net.p2p logs at the TRACE level, but all other net* logs only at INFO: MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE Logs which are intended for the user (which Monero was using a lot through epee, but really isn't a nice way to go things) should use the "global" category. There are a few helper macros for using this category, eg: MGINFO("this shows up by default") or MGINFO_RED("this is red"), to try to keep a similar look and feel for now. Existing epee log macros still exist, and map to the new log levels, but since they're used as a "user facing" UI element as much as a logging system, they often don't map well to log severities (ie, a log level 0 log may be an error, or may be something we want the user to see, such as an important info). In those cases, I tried to use the new macros. In other cases, I left the existing macros in. When modifying logs, it is probably best to switch to the new macros with explicit levels. The --log-level options and set_log commands now also accept category settings, in addition to the epee style log levels.
* | remove unused fields from network_throttle (unused-private-field warning)Chris Vickio2017-01-141-3/+0
|/