| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Any peer that's behind us while syncing is useless to us (though
not to them). This ensures that we don't get our peer slots filled
with peers that we can't use. Once we've synced, we can connect
to them and they can then sync off us if they want.
|
| |
|
|
|
| |
When asking for txes in a fluffy transaction, one might ask
for the same (large) tx many times
|
| |
|
|
| |
Count transactions as well
|
| |
|
|
|
|
|
|
|
|
| |
Essentially, one can send such a large amount of IDs that core exhausts
all free memory. This issue can theoretically be exploited using very
large CN blockchains, such as Monero.
This is a partial fix. Thanks and credit given to CryptoNote author
'cryptozoidberg' for collaboration and the fix. Also thanks to
'moneromooo'. Referencing HackerOne report #506595.
|
| | |
|
| | |
|
| |\
| |
| |
| | |
b0c552f5 cryptonote_protocol_handler: add block/tx hashes in notify logs (moneromooo-monero)
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
c84ea299 cryptonote_basic: some more minor speedups (moneromooo-monero)
e40eb2ad cryptonote_basic: speedup calculate_block_hash (moneromooo-monero)
547a9708 cryptonote: block parsing + hash calculation speedup (moneromooo-monero)
11604b6d blockchain: avoid unneeded block copy (moneromooo-monero)
8461df04 save some database calls when getting top block hash and height (moneromooo-monero)
3bbc3661 Avoid repeated (de)serialization when syncing (moneromooo-monero)
|
| | |/
| |
| |
| | |
This saves a duplicate serialization step
|
| |/
|
|
|
|
| |
Based on Boolberry work by:
jahrsg <jahr@jahr.me>
cr.zoidberg <crypto.zoidberg@gmail.com>
|
| |\
| |
| |
| | |
eef164f7 cryptonote_protocol_handler: search for syncing peers in "cruise mode" (moneromooo-monero)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When all our outgoing peer slots are filled, we cycle one peer at
a time looking for syncing peers until we have at least two such
peers. This brings two advantages:
- Peers without incoming connections will find more syncing peers
that before, thereby strengthening network decentralization
- Peers will have more resistance to isolation attacks, as they
are more likely to find a "good" peer than they were before
|
| |\ \
| | |
| | |
| | | |
a54e81e5 daemon: add '--no-sync' arg to optionally disable blockchain sync (xiphon)
|
| | |/ |
|
| |\ \
| | |
| | |
| | | |
551104fb daemon: add --public-node mode, RPC port propagation over P2P (xiphon)
|
| | |/ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | | |
6a3608d3 cryptonote_protocol_handler: pad tx messages when using tor/i2p (moneromooo-monero)
|
| | |/ |
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RPC connections now have optional tranparent SSL.
An optional private key and certificate file can be passed,
using the --{rpc,daemon}-ssl-private-key and
--{rpc,daemon}-ssl-certificate options. Those have as
argument a path to a PEM format private private key and
certificate, respectively.
If not given, a temporary self signed certificate will be used.
SSL can be enabled or disabled using --{rpc}-ssl, which
accepts autodetect (default), disabled or enabled.
Access can be restricted to particular certificates using the
--rpc-ssl-allowed-certificates, which takes a list of
paths to PEM encoded certificates. This can allow a wallet to
connect to only the daemon they think they're connected to,
by forcing SSL and listing the paths to the known good
certificates.
To generate long term certificates:
openssl genrsa -out /tmp/KEY 4096
openssl req -new -key /tmp/KEY -out /tmp/REQ
openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT
/tmp/KEY is the private key, and /tmp/CERT is the certificate,
both in PEM format. /tmp/REQ can be removed. Adjust the last
command to set expiration date, etc, as needed. It doesn't
make a whole lot of sense for monero anyway, since most servers
will run with one time temporary self signed certificates anyway.
SSL support is transparent, so all communication is done on the
existing ports, with SSL autodetection. This means you can start
using an SSL daemon now, but you should not enforce SSL yet or
nothing will talk to you.
|
| |\
| |
| |
| | |
973403bc Adding initial support for broadcasting transactions over Tor (Lee Clagett)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
- Support for ".onion" in --add-exclusive-node and --add-peer
- Add --anonymizing-proxy for outbound Tor connections
- Add --anonymous-inbounds for inbound Tor connections
- Support for sharing ".onion" addresses over Tor connections
- Support for broadcasting transactions received over RPC exclusively
over Tor (else broadcast over public IP when Tor not enabled).
|
| |/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The blockchain prunes seven eighths of prunable tx data.
This saves about two thirds of the blockchain size, while
keeping the node useful as a sync source for an eighth
of the blockchain.
No other data is currently pruned.
There are three ways to prune a blockchain:
- run monerod with --prune-blockchain
- run "prune_blockchain" in the monerod console
- run the monero-blockchain-prune utility
The first two will prune in place. Due to how LMDB works, this
will not reduce the blockchain size on disk. Instead, it will
mark parts of the file as free, so that future data will use
that free space, causing the file to not grow until free space
grows scarce.
The third way will create a second database, a pruned copy of
the original one. Since this is a new file, this one will be
smaller than the original one.
Once the database is pruned, it will stay pruned as it syncs.
That is, there is no need to use --prune-blockchain again, etc.
|
| |\
| |
| |
| | |
a5ffc2d5 Remove boost::lexical_cast for uuid and unused uuid function (Lee Clagett)
|
| | | |
|
| |\ \
| | |
| | |
| | | |
85665003 epee: better network buffer data structure (moneromooo-monero)
|
| | |/
| |
| |
| | |
avoids pointless allocs and memcpy
|
| |\ \
| |/
|/|
| |
| | |
5464725a protocol: change standby mode to not wait sleeping (moneromooo-monero)
85807dfb add a once_a_time_milliseconds class (moneromooo-monero)
|
| | | |
|
| |\ \
| | |
| | |
| | | |
3dba7f25 protocol: option to pad transaction relay to the next kB (moneromooo-monero)
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To help protect one's privacy from traffic volume analysis
for people using Tor or I2P. This will really fly once we
relay txes on a timer rather than on demand, though.
Off by default for now since it's wasteful and doesn't bring
anything until I2P's in.
|
| |\ \ \
| |_|/
|/| |
| | | |
506472e0 protocol: fix use after free when dropping a connection (moneromooo-monero)
|
| | |/ |
|
| |\ \
| | |
| | |
| | | |
c25260f5 protocol: fix incorrect tx hash in log (moneromooo-monero)
|
| | |/ |
|
| |/ |
|
| |\
| |
| |
| | |
704b60c block_queue: faster check whether a block was requested (moneromooo-monero)
|
| | | |
|
| |\ \
| | |
| | |
| | | |
ce9457a cryptonote_protocol: don't serialize an unneeded new block message (moneromooo-monero)
|
| | |/
| |
| |
| | |
Non fluffy block nodes should now be very rare
|
| |\ \
| |/
|/|
| | |
c24a0af [monerod] Added blocks remaining count during syncronisation. (Jorropo)
|
| | |
| |
| |
| | |
And percent if usefull (% < 99)
|
| |\ \
| | |
| | |
| | | |
a2b557f 6795bd0 209ec96 ed2c81e a830db2 57ea902 31a895e ba8331c f7f1917 41be339 f025ae9 ef2cb63 dcfd299 5d3e702 2704624 2771a18 0e4c7d0 (moneromooo-monero)
|
| | |/
| |
| |
| | |
also use reserve where appropriate
|
| |/ |
|