| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
| |
This fixes nodes not being able to connect to nodes which use
recent code. While there, init peer_id too.
|
| |\
| |
| |
| |
| |
| |
| |
| | |
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)
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |\ \
| | |
| | |
| | | |
214fd81e some include cleanup (moneromooo-monero)
|
| | |/ |
|
| |\ \
| | |
| | |
| | | |
c6ba7d11 p2p: move m_in_timedsync from connection_context to p2p_connection_context (moneromooo-monero)
|
| | |/
| |
| |
| | |
It's got no place in the base class as it's P2P specific field
|
| |\ \
| | |
| | |
| | |
| | | |
04ebfbfe p2p: close connections when exiting (moneromooo-monero)
9a10148c p2p: fix thread leak (moneromooo-monero)
|
| | | |
| | |
| | |
| | |
| | | |
This ensures they don't leak if they were in the middle of an
async operation.
|
| | |/ |
|
| |\ \
| | |
| | |
| | | |
06aea2cf move get_proof_of_trust_hash from util.h to p2p_protocol_defs.h (moneromooo-monero)
|
| | |/
| |
| |
| |
| |
| | |
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.
|
| |/
|
|
|
| |
This will keep leak traces less noisy, as those were one off
allocations that were technically leaking.
|
| |
|
|
|
|
| |
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.
|
| |\
| |
| |
| |
| |
| | |
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)
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |/
|
|
|
|
|
|
|
|
| |
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.
|
| |\
| |
| |
| | |
8277e67f Add anchor connections (Miguel Herranz)
|
| | |
| |
| |
| |
| |
| | |
Based on https://eprint.iacr.org/2015/263.pdf 4. Anchor connections.
Peer list serialisation version bumped to 5.
|
| | |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| | |
Prevents the system from always picking the gray peers with the most
recent last_seen.
|
| | |
| |
| |
| |
| | |
get_random_gray_peer is used to implement feeler connections, described
in: https://eprint.iacr.org/2015/263.pdf 2. Random selection
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| | |
| |
| |
| | |
This is only used to load, not save
|
| |/ |
|
| |\
| |
| |
| | |
ca94d0a4 Separate data per P2P port (Miguel Herranz)
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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/.
|
| |\ \
| |/
|/|
| |
| |
| | |
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)
|
| | | |
|
| | | |
|
| | | |
|
| |/
|
|
| |
CATCH_ENTRY_L0 already returns the second value.
|
| |\
| |
| |
| | |
4cdf0a35 p2p: always recreate a new peer id on startup (moneromooo-monero)
|
| | |
| |
| |
| |
| | |
This prevents easy fingerprinting when you change IPs, and
will be a must when kovri gets used.
|
| |\ \
| | |
| | |
| | | |
f8b97aef p2p: show ban/unban logs by default again (moneromooo-monero)
|
| | |/ |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |\ \
| | |
| | |
| | | |
cbcdf8ad Honor depth in get_peerlist_head method (Miguel Herranz)
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
The method returned depth + 2 because:
- push_back was executed before the condition.
- > instead of >= causing one more iteration.
|
| |\ \ \
| |_|/
|/| |
| | |
| | | |
0e0e6c5f Reduce to one connection per IP (Miguel Herranz)
3f269e98 Limit incoming connections from the same IP (Miguel Herranz)
|
| | | | |
|
| | |/ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |/ |
|