Commit Graph
100 Commits
Author SHA1 Message Date
Lee *!* Clagett 834438acb8 Remove hidden transaction copy in add_block 2025-03-17 19:19:20 -04:00
Lee *!* Clagett 50897a6871 Limit scope of TCP checks to incoming only 2025-02-24 21:55:35 -05:00
Lee *!* Clagett ec74ff4a3d Set response limits on http server connections 2025-02-13 23:55:17 -05:00
Lee *!* Clagett 4344f97255 Fix build with boost ASIO 1.87. Support boost 1.66+ 2025-01-06 18:05:25 -05:00
Lee *!* Clagett e2eea7bc25 Fix --anonymous-inbound data leak 2025-01-03 19:01:35 -05:00
Lee *!* Clagett 7e766e13c3 Cleanup TCP throttling code (performance) + move connection checks 2024-12-19 20:47:44 -05:00
Lee *!* Clagett 92de47fd37 Fix memcpy in byte_slice constructor 2024-11-21 17:22:52 -05:00
Lee *!* Clagett 16b5c11f74 Some cleanup in span/connection_context + few more checks 2024-11-19 18:30:34 -05:00
Lee Clagett 808dff7d2f Replace deprecated result_of with decltype 2024-10-10 14:37:03 -04:00
Lee Clagett bd2869650a Relax static_asserts in src/lmdb 2024-10-09 16:34:25 -04:00
Lee *!* Clagett 0a29a9f76e Add ZMQ-PUB json-schemas 2024-09-10 16:29:48 -04:00
Lee Clagett fc0a4b4b04 Make wallet2::estimate_fee static 2024-08-07 13:47:31 -04:00
Lee *!* Clagett 88afcdb8fa Fix ZMQ DaemonInfo:
* top_block_hash was never set in handler
  * wide_difficulty was never sent in JSON
  * wide_cumulative_difficulty was never sent in JSON
2024-06-24 19:57:20 -04:00
Lee Clagett 9fc48f4a8a Fix ZMQ Tx Pruning 2024-06-18 21:26:28 -04:00
Lee *!* Clagett d64a5f70d2 Fix lmdb txn commit code 2024-06-04 18:55:39 -04:00
Lee *!* Clagett 463228b961 Skip privacy networks (on tx sends) that don't have outgoing connections 2024-03-29 13:01:58 -04:00
Lee *!* Clagett ed50938af4 Zero initialize rctSigBase elements 2024-02-06 12:47:47 -05:00
Lee Clagett cd7ccfbdab Disable/fix ports with I2P 2024-01-30 13:40:05 -05:00
Lee *!* Clagett b1c9a809a0 Add <cstdint> to aligned test 2024-01-29 21:37:22 -05:00
Lee Clagett eed975db5d Fix missing checks for IsObject in ZMQ jsonrpc reading 2023-11-28 18:02:57 -05:00
Lee Clagett 69a8175edc Change std::result_of to auto 2023-11-20 17:16:42 -05:00
Lee *!* Clagett 085fdea88c Add compile-time check for input iterators in ::wire array writing 2023-11-06 16:26:39 -05:00
Lee *!* Clagett 4acae11327 Fix EAGAIN bug in ZMQ-RPC/ZMQ-PUB 2023-11-04 13:42:14 -04:00
Lee *!* Clagett a6ce2dc7c5 Write interface for new serialization system 2023-08-11 16:34:27 -04:00
Lee Clagett 2608b241c8 Add CLSAG serialization to ZMQ code 2023-06-10 11:55:48 -04:00
Lee *!* Clagett 0961c2abe4 Set SSL SNI even when server verification is disabled 2023-06-09 11:16:03 -04:00
Lee *!* Clagett eb943562cb Add to_hex::buffer 2023-05-22 13:36:05 -04:00
Lee *!* Clagett 2c98a82e75 Add byte_stream value_type and data() 2023-05-21 13:35:18 -04:00
Lee Clagett a7bf3aff2c Fix dandelion++ fluff/stem bug with local txes 2022-10-25 16:09:55 -04:00
Lee Clagett 4f3a54b2a0 Remove invoke function in levin handler 2022-09-26 16:47:18 +00:00
Lee Clagett 3987827517 Fix shared_ptr cycle in test_epee_connection.test_lifetime 2022-08-26 20:12:13 -04:00
Lee *!* Clagett 2a8a51129f Quicker resource cleanup on p2p socks timeout 2021-07-29 08:54:13 +00:00
Lee Clagett 9867a913dc Store RPC SSL key/cert for consistent authentication between runs 2021-02-13 20:26:26 +00:00
Lee Clagett bd129849f0 Remove copies from foreach loops (thanks to Clang) 2021-01-28 23:42:40 -05:00
Lee Clagett 1572df9e26 Removing unused namespace alias 2021-01-28 23:40:57 -05:00
Lee Clagett 2a20434705 Fix monerod --rpc-ssl disabled 2021-01-28 17:53:47 +00:00
Lee Clagett 08e4497c6e Improve cryptonote (block and tx) binary read performance 2021-01-23 06:23:39 +00:00
Lee Clagett 545b9825d6 Remove unnecessary atomic operations in levin code 2021-01-19 04:44:03 +00:00
Lee Clagett 679d05567d Remove payload copy in all outgoing p2p messages 2021-01-19 02:22:32 +00:00
Lee Clagett 0f2b5af0dd Reduced executable size; reduced call sequence to "allowed" log function 2021-01-16 22:55:41 +00:00
Lee Clagett 23aae5571b Remove payload copy in all outgoing p2p messages 2021-01-16 22:53:28 +00:00
Lee Clagett 927141bcc4 Command max_bytes moved from dynamic map to static switch 2020-12-22 20:54:16 +00:00
Lee Clagett 187b4d7521 Restrict duplicate keys in epee binary format 2020-12-20 03:47:32 +00:00
Lee Clagett 61b6e4cc67 Add aggressive restrictions to pre-handshake p2p buffer limit 2020-12-17 00:36:10 +00:00
Lee Clagett 4978f69d7a Fix byte_stream::put_n 2020-12-14 14:45:24 -05:00
Lee Clagett b10878f108 Change Dandelion++ fluff probability to 20%, and embargo timeout to 39s
A 20% fluff probability increases the precision of a spy connected to
every node by 10% on average, compared to a network using 0% fluff
probability. The current value (10% fluff) should increase precision by
~5% compared to baseline.

This decreases the expected stem length from 10 to 5. The embargo
timeout was therefore lowered to 39s; the fifth node in a stem is
expected to have a 90% chance of being the first to timeout, which is
the same probability we currently have with an expected stem length of
10 nodes.
2020-11-17 21:45:37 -05:00
Lee Clagett d73cb95dfa Fix timeout checks for forwarded and Dandelion++ stem txes 2020-11-15 00:08:10 -05:00
Lee Clagett be84f678b9 Switch to Dandelion++ fluff mode if no out connections for stem mode 2020-11-03 13:58:14 -05:00
Lee Clagett aad780bcfa Fix CLI and unrestricted RPC relay_tx with stempool 2020-10-29 00:17:55 -04:00
Lee Clagett 2abdbf63cf Add support for i2p and tor seed nodes 2020-10-19 13:13:07 +00:00
Lee Clagett 13350f79df Do not use peer_id tracking method over i2p/tor 2020-10-15 16:47:59 +00:00
Lee Clagett 08eb0949f3 Change to more efficient allocation strategy in byte_stream 2020-10-13 15:10:54 +00:00
Lee Clagett 249eae5f4a Allow byte_stream->byte_slice conversion to shrink unused buffer space 2020-10-13 15:09:18 +00:00
Lee Clagett 7414e2bac1 Change epee binary output from std::stringstream to byte_stream 2020-10-10 15:28:40 +00:00
Lee Clagett 386ef03be3 Add TLSA support to DNSSEC fetching 2020-10-07 15:43:31 +00:00
Lee Clagett dff1d8067c Fix tx flush callback queueing 2020-10-06 16:07:49 +00:00
Lee Clagett bdc6b10d62 Fix ZMQ pruned bulletproof transactions 2020-08-19 00:36:06 -04:00
Lee Clagett b641e0a2c0 Add clear method to byte_stream 2020-08-17 21:30:34 -04:00
Lee Clagett 4e2377995d Change ZMQ-JSON txextra to hex and remove unnecessary base fields 2020-08-14 23:01:00 +00:00
Lee Clagett 98c151ecb8 Optimize ZMQ-JSON vector reading; GetBlocksFast reads 24%+ faster 2020-08-14 19:47:19 +00:00
Lee Clagett 60627c9f24 Switch to insitu parsing for ZMQ-JSON; GetBlocksFast reads 13%+ faster 2020-08-14 19:46:59 +00:00
Lee Clagett fe96e66ebe Fix pruned tx for ZMQ's GetBlocksFast 2020-08-14 19:46:33 +00:00
Lee Clagett 4d8d121462 Fix D++ block template check 2020-06-12 22:05:52 -04:00
Lee Clagett 7aeb503547 Fix boost <1.60 compilation and fix boost 1.73+ warnings 2020-05-31 21:18:11 -04:00
Lee Clagett a11ec4ac1d Support for supercop ASM in wallet, and benchmark for supercop 2020-05-16 10:25:17 +00:00
Lee Clagett 67ade80055 Add randomized delay when forwarding txes from i2p/tor -> ipv4/6 2020-05-15 07:57:35 +00:00
Lee Clagett 29e563bb1e Fixed bugs for take_slice and byte_stream->byte_slice 2020-05-12 01:26:37 -04:00
Lee Clagett e5214a2ca2 Adding ZMQ/Pub support for txpool_add and chain_main events 2020-05-04 02:06:35 +00:00
Lee Clagett feee455c9f Fixes for ZMQ JSON-RPC endpoint names for raw tx 2020-04-29 01:07:27 -04:00
Lee Clagett ee58362b1f Used legacy category to match insert_key_images behavior 2020-04-24 20:19:37 -04:00
Lee Clagett afe5a55e96 Revert functional test changes in babf25d2e and 571546067 2020-04-24 18:30:23 -04:00
Lee Clagett c26c93019a Add byte_stream for zero-copy serialization, and add support in ZMQ-JSON. 2020-04-11 04:12:11 +00:00
Lee Clagett da99157462 Use byte_slice for sending zmq messages - removes data copy within zmq 2020-04-03 01:56:17 +00:00
Lee Clagett 571546067f Always reject duplicate key-images from second txid 2020-03-30 17:52:42 +00:00
Lee Clagett babf25d2ec Allow unrestricted rpc calls to get full txpool info 2020-03-30 17:52:42 +00:00
Lee Clagett f9441c5759 Fixed string_ref usage bug in epee::from_hex::vector 2020-03-30 16:53:34 +00:00
Lee Clagett 0c29e17581 Fix network unit tests after epee changes 2020-03-28 13:30:22 -04:00
Lee Clagett 02d887c2e5 Adding Dandelion++ support to public networks:
- 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
2020-03-26 15:01:30 +00:00
Lee Clagett ad13a4b2ac Fixing static_asserts in ZMQ JSON 2020-03-19 19:49:51 -04:00
Lee Clagett 5de2295f3c Correct key image check in tx_pool 2020-03-14 19:17:15 +00:00
Lee Clagett e719760253 Fix receive order leakage with tx fluffing 2020-03-10 22:30:07 -04:00
Lee Clagett 3387f0e327 Reduce template bloat in hex->bin for ZMQ json 2020-03-09 17:55:55 +00:00
Lee Clagett 5fcc23ae0a Move hex->bin conversion to monero copyright files and with less includes 2020-03-09 05:23:59 +00:00
Lee Clagett 81c5943453 Remove temporary std::string creation in some hex->bin calls 2020-03-09 05:23:59 +00:00
Lee Clagett ebf3c10fcb Added logging for dropped local txes with no i2p/tor connections 2020-03-07 00:03:17 +00:00
Lee Clagett 0f78b06e8c Various improvements to the ZMQ JSON-RPC handling:
- Finding handling function in ZMQ JSON-RPC now uses binary search
  - Temporary `std::vector`s in JSON output now use `epee::span` to
    prevent allocations.
  - Binary -> hex in JSON output no longer allocates temporary buffer
  - C++ structs -> JSON skips intermediate DOM creation, and instead
    write directly to an output stream.
2020-03-05 14:20:56 +00:00
Lee Clagett 68a6507c3f Fixed bug in ZMQ JSON-RPC method field 2019-11-18 12:59:41 +00:00
Lee Clagett 70c9cd3c9c Change to Tx diffusion (Dandelion++ fluff) instead of flooding 2019-11-04 09:23:20 +00:00
Lee Clagett a9bdc6e4c4 Improved performance for epee serialization:
- Removed copy of field names in binary deserialization
  - Removed copy of array values in binary deserialization
  - Removed copy of string values in json deserialization
  - Removed unhelpful allocation in json string value parsing
  - Removed copy of blob data on binary and json serialization
2019-11-04 01:46:41 +00:00
Lee Clagett 5d7ae2d279 Adding support for hidden (anonymity) txpool 2019-11-02 20:36:03 +00:00
Lee Clagett 65e8a89e1c Change monerod --proxy to --tx-proxy 2019-10-24 21:06:31 -04:00
Lee ClagettandiDunk5400 73f22c48e1 depends: fix MacOS build with Clang 3.7.1 2019-09-08 22:49:11 +02:00
Lee Clagett 2a7d91523b Fixed i2p/tor tx flooding bug (white noise disabled) 2019-07-29 12:27:00 +00:00
Lee Clagett f91a06c6d7 Dropping cppzmq dependency; adding some zmq utils 2019-07-22 06:37:16 +00:00
Lee Clagett 3b24b1d082 Added support for "noise" over I1P/Tor to mask Tx transmission. 2019-07-17 14:22:37 +00:00
Lee Clagett bdfc63ae4d Add ref-counted buffer byte_slice. Currently used for sending TCP data. 2019-07-16 16:30:35 +00:00
Lee Clagett 9bfa4c20ca Fix allow any cert mode in wallet rpc when configured over rpc 2019-05-22 00:15:14 -04:00
Lee Clagett 3544596f9f Add ssl_options support to monerod's rpc mode. 2019-05-22 00:09:11 -04:00
Lee Clagett c9aaccf346 Fix configuration bug; wallet2 --daemon-ssl-allow-any-cert now works. 2019-05-21 15:43:27 -04:00
Lee Clagett 55aae6a9a3 Fix socks tests in windows and handle errors better 2019-04-19 01:10:02 -04:00