aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_protocol/cryptonote_protocol_handler.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #9740tobtoht2025-03-101-1/+1
|\ | | | | | | 008ba966d blockchain sync: reduce disk writes from 2 to 1 per tx (jeffro256)
| * blockchain sync: reduce disk writes from 2 to 1 per txjeffro2562025-03-101-1/+1
| |
* | Some cleanup in span/connection_context + few more checksLee *!* Clagett2025-02-031-0/+1
|/
* Don't exclusively drop tor/i2p outgoing cxns in idle loopj-berman2022-05-181-3/+15
|
* Copyright: Update to 2022mj-xmr2022-03-041-1/+1
|
* Remove payload copy in all outgoing p2p messagesLee Clagett2021-01-191-3/+6
|
* Revert "Merge pull request #7136"luigi11112021-04-161-6/+3
| | | | | This reverts commit 63c7ca07fba2f063c760f786a986fb3e02fb040e, reversing changes made to 2218e23e84a89e9a1e4c0be5d50f891ab836754f.
* Remove payload copy in all outgoing p2p messagesLee Clagett2021-01-161-3/+6
|
* Command max_bytes moved from dynamic map to static switchLee Clagett2020-12-221-1/+0
|
* add a max levin packet size by command typemoneromooo-monero2021-01-031-0/+1
|
* protocol: drop nodes if they claim new data but only give stale datamoneromooo-monero2020-12-251-1/+1
| | | | Some joker is spending time actually doing this
* rpc: add a busy_syncing field to get_infomoneromooo-monero2020-12-171-0/+2
| | | | true if and pretty much only if new blocks are being added
* Merge pull request #7110Alexander Blair2020-12-101-0/+1
|\ | | | | | | d660f22ed protocol: drop origin IP if a block fails to verify in sync mode (moneromooo-monero)
| * protocol: drop origin IP if a block fails to verify in sync modemoneromooo-monero2020-12-101-0/+1
| | | | | | | | | | It would otherwise be possible for a peer to send bad blocks, then disconnect and reconnect again, escaping bans
* | Change epee binary output from std::stringstream to byte_streamLee Clagett2020-10-101-4/+5
|/
* protocol: drop peers that don't reply to queriesmoneromooo2020-12-061-1/+1
|
* protocol: add scoring system to drop peers that don't behavemoneromooo2020-12-041-0/+4
|
* cryptonote_core: dandelion - use local height or median height if syncingxiphon2020-11-251-1/+1
|
* Merge pull request #6512Alexander Blair2020-07-191-1/+1
|\ | | | | | | 5ef0607da Update copyright year to 2020 (SomaticFanatic)
| * Update copyright year to 2020SomaticFanatic2020-05-061-1/+1
| | | | | | | | Update copyright year to 2020
* | cryptonote_protocol: stricter limit to number of objects requestedmoneromooo-monero2020-05-191-1/+2
|/ | | | Reported by xnbya
* Merge pull request #6278luigi11112020-04-211-0/+8
|\ | | | | | | 387fd66 Daemon: Print estimates for time until fully synced (rbrunner7)
| * Daemon: Print estimates for time until fully syncedrbrunner72020-03-211-0/+8
| |
* | Adding Dandelion++ support to public networks:Lee Clagett2020-03-261-1/+1
| | | | | | | | | | | | - New flag in NOTIFY_NEW_TRANSACTION to indicate stem mode - Stem loops detected in tx_pool.cpp - Embargo timeout for a blackhole attack during stem phase
* | Merge pull request #6214luigi11112020-03-311-0/+4
|\ \ | | | | | | | | | 054b4c7 protocol: request txpool contents when synced (moneromooo-monero)
| * | protocol: request txpool contents when syncedmoneromooo-monero2020-03-221-0/+4
| |/ | | | | | | | | | | | | A newly synced Alice sends a (typically quite small) list of txids in the local tpxool to a random peer Bob, who then uses the existing tx relay system to send Alice any tx in his txpool which is not in the list Alice sent
* / p2p: remove old debug commandsAaron Hook2020-03-201-3/+0
|/
* Adding support for hidden (anonymity) txpoolLee Clagett2019-11-021-1/+1
|
* daemon: always use bootstrap daemon (if set) in '--no-sync' modexiphon2019-10-281-0/+1
|
* Merge pull request #5933luigi11112019-10-141-0/+1
|\ | | | | | | 3455efa ban peers sending bad pow outright (moneromooo-monero)
| * ban peers sending bad pow outrightmoneromooo-monero2019-09-251-0/+1
| | | | | | | | PoW is expensive to verify, so be strict
* | monerod can now sync from pruned blocksmoneromooo-monero2019-09-271-0/+2
|/ | | | | | | | | | | | | | If the peer (whether pruned or not itself) supports sending pruned blocks to syncing nodes, the pruned version will be sent along with the hash of the pruned data and the block weight. The original tx hashes can be reconstructed from the pruned txes and theur prunable data hash. Those hashes and the block weights are hashes and checked against the set of precompiled hashes, ensuring the data we received is the original data. It is currently not possible to use this system when not using the set of precompiled hashes, since block weights can not otherwise be checked for validity. This is off by default for now, and is enabled by --sync-pruned-blocks
* cryptonote_protocol: expand basic DoS protectionmoneromooo-monero2019-06-141-1/+1
| | | | Count transactions as well
* cryptonote_protocol_handler: prevent potential DoSanonimal2019-06-141-0/+1
| | | | | | | | | | 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.
* Merge pull request #5199Riccardo Spagni2019-03-191-0/+2
|\ | | | | | | eef164f7 cryptonote_protocol_handler: search for syncing peers in "cruise mode" (moneromooo-monero)
| * cryptonote_protocol_handler: search for syncing peers in "cruise mode"moneromooo-monero2019-02-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #5195Riccardo Spagni2019-03-191-0/+2
|\ \ | | | | | | | | | a54e81e5 daemon: add '--no-sync' arg to optionally disable blockchain sync (xiphon)
| * | daemon: add '--no-sync' arg to optionally disable blockchain syncxiphon2019-02-251-0/+2
| |/
* / Update 2019 copyrightbinaryFate2019-03-051-1/+1
|/
* Adding initial support for broadcasting transactions over TorLee Clagett2019-01-281-9/+0
| | | | | | | | | - 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).
* Pruningmoneromooo-monero2019-01-221-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge pull request #4976Riccardo Spagni2019-01-161-2/+2
|\ | | | | | | 85665003 epee: better network buffer data structure (moneromooo-monero)
| * epee: better network buffer data structuremoneromooo-monero2018-12-231-2/+2
| | | | | | | | avoids pointless allocs and memcpy
* | protocol: change standby mode to not wait sleepingmoneromooo-monero2018-12-071-0/+2
|/
* Correct spelling mistakes.Edward Betts2018-03-051-1/+1
|
* Merge pull request #3181Riccardo Spagni2018-02-161-1/+1
|\ | | | | | | e3f0980a daemon: don't drop RPC with busy error when running offline (moneromooo-monero)
| * daemon: don't drop RPC with busy error when running offlinemoneromooo-monero2018-01-251-1/+1
| |
* | Update 2018 copyrightxmr-eric2018-01-261-1/+1
|/
* cryptonote_core does not depend on p2p anymoremoneromooo-monero2017-12-161-6/+0
| | | | | | As a followon side effect, this makes a lot of inline code included only in particular cpp files (and instanciated when necessary.
* cryptonote_protocol: misc fixes to the new sync algorithmmoneromooo-monero2017-08-211-0/+2
| | | | | | | | | | | Fix sync wedge corner case: It could happen if a connection went into standby mode, while it was the one which had requested the next span, and that span was still waiting for the data, and that peer is not on the main chain. Other peers can then start asking for that data again and again, but never get it as only that forked peer does. And various other fixes