aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-04-06net: add retro compatibility with legacy IPv4 optionsdev/beber/ipv4Bertrand Jacquin5-0/+47
To ensure retro compatibility, legacy IPv4 daemon arguments and configuration settings changes are marked as deprecated, but can still be used falling back to new option name when new options are not used. Raise warning in case legacy option are used. * --p2p-bind-ip is an alias to --p2p-bind-ipv4-address * --p2p-bind-port is an alias to --p2p-bind-ipv4-port * --p2p-bind-port-ipv6 is an alias to --p2p-bind-ipv6-port * --rpc-bind-ip is an alias to --rpc-bind-ipv4-address * --rpc-restricted-bind-ip is an alias to --rpc-restricted-bind-ipv4-address
2024-04-06net: bring consistency between IPv4 port and IPv6 portBertrand Jacquin8-19/+19
* --p2p-bind-port-ipv4 is replaced with --p2p-bind-ipv4-port * --p2p-bind-port-ipv6 is replaced with --p2p-bind-ipv6-port
2024-04-06net: define IPv4 object explicitlyBertrand Jacquin65-263/+263
Modify all IPv4 variables, function arguments name and daemon arguments to IPv4 specific naming to raise consistency with IPv6. This change is done in order to make source code more legible before addressing #8818. * --p2p-bind-ip is replaced with --p2p-bind-ipv4-address * --p2p-bind-port is replaced with --p2p-bind-port-ipv4 * --rpc-bind-ip is replaced with --rpc-bind-ipv4-address * --rpc-restricted-bind-ip is replaced with --rpc-restricted-bind-ipv4-address Bug: https://github.com/monero-project/monero/issues/8818
2024-03-12Merge pull request #9243luigi11111-1/+1
c4e1c5a ringct: fix trunc_amount field name change (jeffro256)
2024-03-11ringct: fix trunc_amount field name changejeffro2561-1/+1
Caused in commit 05231400cebfeedbbc0a5386f38a033bba6314b3, PR #9035.
2024-03-11Merge pull request #9237luigi11111-26/+16
bcb15d3 Revert 'http_client: reduce number of packets sent for small bodies' (jeffro256)
2024-03-11Merge pull request #9228luigi11111-0/+3
c40d8b2 depends: add riscv64 linux build tag (selsta)
2024-03-10Revert "http_client: reduce number of packets sent for small bodies"jeffro2561-26/+16
This reverts commit 0ae5c91e504b8007dedc2b89c9b2b49c404ffec6.
2024-03-09depends: add riscv64 linux build tagselsta1-0/+3
2024-03-08Merge pull request #9225luigi11112-7/+19
a01d7cc Fixed mempool pruning (SChernykh)
2024-03-08Merge pull request #9219luigi11112-3/+3
e6f4875 wallet2: adjust fee during backlog, fix set priority (selsta)
2024-03-08Fixed mempool pruningSChernykh2-7/+19
- Fixed undefined behavior after a call to `remove_tx_from_transient_lists` (it used an invalid iterator) - Fixed `txCompare` (it wasn't strictly weak ordered)
2024-03-08Merge pull request #9222luigi11111-1/+1
66e5081 get_block_template_backlog: better sorting logic (SChernykh)
2024-03-08Merge pull request #9218luigi11111-0/+1
7815023 tx_memory_pool: make double spends a no-drop offense (jeffro256)
2024-03-08get_block_template_backlog: better sorting logicSChernykh1-1/+1
std::sort is unstable, so it can return random sets of transactions when mempool has many transactions with the same fee/byte. It can result in p2pool mining empty blocks sometimes because it doesn't pick up "new" transactions immediately.
2024-03-08wallet2: adjust fee during backlog, fix set priorityselsta2-3/+3
2024-03-07Merge pull request #9214luigi11111-1/+0
399b884 unit_tests: fix strtoul unit test (jeffro256)
2024-03-07Merge pull request #9195luigi11111-0/+44
2a2da79 free function serialization DSL (jeffro256)
2024-03-07Merge pull request #9187luigi11111-2/+6
695084e depends: add download commands for freebsd & android sources (tobtoht)
2024-03-07Merge pull request #9184luigi11111-2/+2
7043238 Remove instructions for Void Linux, add NixOS (Siren)
2024-03-07Merge pull request #9179luigi11114-19/+19
e499e74 actions: update to v4 actions (tobtoht)
2024-03-07Merge pull request #9170luigi11111-0/+1
1bc09fc depends: add riscv64 to gitignore (tobtoht)
2024-03-07Merge pull request #9169luigi11112-40/+0
119e341 depends: remove unwind (tobtoht)
2024-03-07Merge pull request #9168luigi11112-30/+0
0c9a5c5 depends: remove ccache (tobtoht)
2024-03-07Merge pull request #9167luigi11112-28/+8
442146a depends: libusb: update to 1.0.27 (tobtoht)
2024-03-07Merge pull request #9166luigi11111-4/+3
5f1b5c2 depends: eudev: update to 3.2.14 (tobtoht)
2024-03-07tx_memory_pool: make double spends a no-drop offensejeffro2561-0/+1
Nodes who see different txs in a double spend attack will drop each other, splitting the network. Issue found by @boog900.
2024-03-07unit_tests: fix strtoul unit testjeffro2561-1/+0
2024-02-24free function serialization DSLjeffro2561-0/+44
Example usage for Seraphis types (in global or `sp` namespace): ``` BEGIN_SERIALIZE_OBJECT_FN(sp::SpCoinbaseEnoteCore) FIELD_F(onetime_address) VARINT_FIELD_F(amount) END_SERIALIZE() BEGIN_SERIALIZE_OBJECT_FN(sp::SpEnoteCore) FIELD_F(onetime_address) FIELD_F(amount_commitment) END_SERIALIZE() ```
2024-02-24Merge pull request #9004luigi11115-12/+312
cdab0d4 cmake: require libsodium (tobtoht) 684bfca depends: move sodium to packages (tobtoht)
2024-02-24cmake: require libsodiumtobtoht4-5/+306
2024-02-24depends: move sodium to packagestobtoht1-7/+6
2024-02-24Merge pull request #9191luigi11111-2/+2
3313933 docs: omit i2p port number from ANONYMITY_NETWORKS (selsta)
2024-02-24Merge pull request #9189luigi11111-1/+2
f7670c9 cryptonote_core: early out on out of bounds scaling parameter (selsta)
2024-02-24Merge pull request #9182luigi11112-2/+23
538f19b depends: android_ndk: update to 18b (tobtoht)
2024-02-24Merge pull request #9165luigi11111-2/+2
c334d0e depends: openssl: update to 3.0.13 (tobtoht)
2024-02-24Merge pull request #9164luigi11111-6/+6
b26155b depends: expat: update to 2.6.0 (tobtoht)
2024-02-24Merge pull request #9163luigi11112-7/+7
edcc1e4 depends: unbound: update to 1.19.1 (tobtoht)
2024-02-24Merge pull request #9160luigi11115-4/+31
c50ade5 Daemon-specific proxy for the wallet-rpc. (0xFFFC0000)
2024-02-24Merge pull request #9155luigi11111-0/+4
ed50938 Zero initialize rctSigBase elements (Lee *!* Clagett)
2024-02-24Merge pull request #9143luigi11111-0/+1
b1c9a80 Add <cstdint> to aligned test (Lee *!* Clagett)
2024-02-24Merge pull request #9138luigi11115-85/+52
cd7ccfb Disable/fix ports with I2P (Lee Clagett)
2024-02-24Merge pull request #9137luigi11111-0/+19
8d25418 daemon: warn user on specifiying ZMQ args with --no-zmq (jeffro256)
2024-02-24Merge pull request #9132luigi11111-3/+3
9cd4757 Cleanup extra memory allocation, and port boost::shared_ptr to std::shared_ptr. (0xFFFC0000)
2024-02-24Merge pull request #9128luigi11111-7/+7
ba902f9 actions: remove unnecessary packages (tobtoht)
2024-02-24Merge pull request #9125luigi11116-659/+0
0c545f6 epee/test: remove levin_protocol_handler and core_proxy tests (jeffro256)
2024-02-24Merge pull request #9121luigi11112-1980/+2445
afe5167 depends: update config scripts (jeffro256)
2024-02-24Merge pull request #9006luigi11111-4/+4
47042ce wallet2: call on_reorg callback in handle_reorg (j-berman)
2024-02-24Merge pull request #9005luigi11117-17/+10
0d763a1 depends: move cmake system config to hosts files (tobtoht)
2024-02-24Merge pull request #8940luigi11111-0/+87
48b7d08 epee binary: container can read from empty seq of any type (jeffro256)
2024-02-24Merge pull request #8861luigi111110-43/+405
b13c5f6 wallet: feature: transfer amount with fee included (jeffro256)
2024-02-21docs: omit i2p port number from ANONYMITY_NETWORKSselsta1-2/+2
2024-02-20wallet: feature: transfer amount with fee includedjeffro25610-43/+405
To transfer ~5 XMR to an address such that your balance drops by exactly 5 XMR, provide a `subtractfeefrom` flag to the `transfer` command. For example: transfer 76bDHojqFYiFCCYYtzTveJ8oFtmpNp3X1TgV2oKP7rHmZyFK1RvyE4r8vsJzf7SyNohMnbKT9wbcD3XUTgsZLX8LU5JBCfm 5 subtractfeefrom=all If my walet balance was exactly 30 XMR before this transaction, it will be exactly 25 XMR afterwards and the destination address will receive slightly less than 5 XMR. You can manually select which destinations fund the transaction fee and which ones do not by providing the destination index. For example: transfer 75sr8AAr... 3 74M7W4eg... 4 7AbWqDZ6... 5 subtractfeefrom=0,2 This will drop your balance by exactly 12 XMR including fees and will spread the fee cost proportionally (3:5 ratio) over destinations with addresses `75sr8AAr...` and `7AbWqDZ6...`, respectively. Disclaimer: This feature was paid for by @LocalMonero.
2024-02-21cryptonote_core: early out on out of bounds scaling parameterselsta1-1/+2
2024-02-20depends: add download commands for freebsd & android sourcestobtoht1-2/+6
2024-02-20Remove instructions for Void Linux, add NixOSSiren1-2/+2
2024-02-19depends: remove unwindtobtoht2-40/+0
2024-02-19actions: update to v4 actionstobtoht4-19/+19
2024-02-18Daemon-specific proxy for the wallet-rpc.0xFFFC00005-4/+31
1. Daemon-specific proxy is exclusive with global proxy (--proxy). 2. If you set global proxy (--proxy) you cannot set daemon-specific proxy. 3. If you don't set global proxy, you can set proxy (or not set) proxy for each daemon connection with the proxy field in jsonrpc to the wallet-rpc.
2024-02-16epee binary: container can read from empty seq of any typejeffro2561-0/+87
2024-02-13depends: add riscv64 to gitignoretobtoht1-0/+1
2024-02-13depends: remove ccachetobtoht2-30/+0
2024-02-13depends: eudev: update to 3.2.14tobtoht1-4/+3
2024-02-13depends: libusb: update to 1.0.27tobtoht2-28/+8
2024-02-13depends: openssl: update to 3.0.13tobtoht1-2/+2
2024-02-13depends: expat: update to 2.6.0tobtoht1-6/+6
2024-02-13depends: unbound: update to 1.19.1tobtoht2-7/+7
2024-02-12depends: android_ndk: update to 18btobtoht2-2/+23
2024-02-07daemon: warn user on specifiying ZMQ args with --no-zmqjeffro2561-0/+19
Resolves https://github.com/monero-project/monero/issues/9127
2024-02-06Zero initialize rctSigBase elementsLee *!* Clagett1-0/+4
2024-01-30Disable/fix ports with I2PLee Clagett5-85/+52
2024-01-29Add <cstdint> to aligned testLee *!* Clagett1-0/+1
2024-01-23Cleanup extra memory allocation, and port boost::shared_ptr to std::shared_ptr.0xFFFC00001-3/+3
2024-01-19actions: remove unnecessary packagestobtoht1-7/+7
2024-01-19Merge pull request #9126luigi11111-2/+3
e7629dc CMake: only set policy CMP0148 to OLD if version >= 3.27 (jeffro256)
2024-01-19CMake: only set policy CMP0148 to OLD if version >= 3.27jeffro2561-2/+3
Co-authored-by: 0xFFFC0000 <0xFFFC0000@proton.me>
2024-01-18Merge pull request #9119luigi11111-0/+13
9690bfd gpg_keys: add 0xfffc0000 (0xFFFC0000)
2024-01-18Merge pull request #9117luigi11111-1/+1
7d3b9b9 remove ARCH='x86-64' from release-static (woodser)
2024-01-18Merge pull request #9111luigi11111-1/+2
34e62d5 workflows: enable manual run of copyright update (plowsof) dd978ee workflows: copyright commit author (plowsof)
2024-01-18Merge pull request #9103luigi11111-0/+2
562bdb8 storages: add missing return (selsta)
2024-01-18Merge pull request #9090luigi11112-34/+11
430b102 Cleanup scoped_ptr in src/common/dns_utils.cpp and header include: * No need for entire new class (Fix #8732). * Fix stdint.h header include in contrib/epee/include/net/http_base.h. (0xFFFC0000)
2024-01-18Merge pull request #9084luigi11111-2/+2
01c6e4b OpenBSD: node server fix IP localhost by aliasing (mesaoptimizer)
2024-01-18Merge pull request #9079luigi11112-0/+208
eed975d Fix missing checks for IsObject in ZMQ jsonrpc reading (Lee Clagett)
2024-01-18Merge pull request #9077luigi11115-125/+81
2525200 serialization: remove container wrappers and serialize directly (jeffro256)
2024-01-18Merge pull request #9076luigi11111-4/+6
eb083ca cmake: silence FindPythonInterp warning (tobtoht)
2024-01-18Merge pull request #9073luigi11118-28/+56
53e632b fix merge mining with more than one merge mined chain (Crypto City)
2024-01-18Merge pull request #9072luigi11111-4/+2
69a8175 Change std::result_of to auto (Lee Clagett)
2024-01-18Merge pull request #9069luigi11119-152/+87
a11e03a serialization: fix infinite loops and clean up dispatching (jeffro256)
2024-01-18Merge pull request #9061luigi11111-1/+8
085fdea Add compile-time check for input iterators in ::wire array writing (Lee *!* Clagett)
2024-01-18Merge pull request #9060luigi11111-1/+1
cf2253c workflows: upload macOS binary after name change (selsta)
2024-01-18Merge pull request #9059luigi11111-0/+13
2766d12 MMS: Ignore 2 more API errors thrown by latest PyBitmessage (rbrunner7)
2024-01-18Merge pull request #9056luigi11111-0/+51
deb8c79 gpg_keys: add tobtoht (tobtoht)
2024-01-18Merge pull request #9052luigi11111-7/+16
4acae11 Fix EAGAIN bug in ZMQ-RPC/ZMQ-PUB (Lee *!* Clagett)
2024-01-18Merge pull request #9049luigi11111-3/+1
1062b17 wallet: sign_tx: get tx pubkey from extra (tobtoht)
2024-01-18Merge pull request #9023luigi11111-16/+43
b2eb47d wallet: mitigate statistical dependence for decoy selection within rings (jeffro256)
2024-01-17epee/test: remove levin_protocol_handler and core_proxy testsjeffro2566-659/+0
2024-01-12depends: update config scriptsjeffro2562-1980/+2445
The files are exact copies from the original repository (git://git.savannah.gnu.org/config.git), in commit 28ea239c53a2d5d8800c472bc2452eaa16e37af2. The main reason for the update is because loongarch was mentioned in PR #9114 and new the latest config files handle loongarch, as well as WASM64, since the old files only cover WASM32. Tandem NSX and IA16, are also handled in the newest config files, which covers the changes TheCharlatan made in 2018.
2024-01-09gpg_keys: add 0xfffc00000xFFFC00001-0/+13
2024-01-06remove ARCH="x86-64" from release-staticwoodser1-1/+1
2024-01-02workflows: enable manual run of copyright updateplowsof1-0/+1
2024-01-02workflows: copyright commit authorplowsof1-1/+1
author is now copyCat
2023-12-25storages: add missing returnselsta1-0/+2
2023-12-19Cleanup scoped_ptr in src/common/dns_utils.cpp and header include:0xFFFC00002-34/+11
* No need for entire new class (Fix #8732). * Fix stdint.h header include in contrib/epee/include/net/http_base.h.
2023-12-10OpenBSD: node server fix IP localhost by aliasingmesaoptimizer1-2/+2
The test node_server.bind_same_p2p_port fails by default on OpenBSD for at least the debug build. Using the same ifconfig command as described for MacOS results in the test passing.
2023-11-30fix merge mining with more than one merge mined chainCrypto City8-28/+56
reported by sech1
2023-11-28Fix missing checks for IsObject in ZMQ jsonrpc readingLee Clagett2-0/+208
2023-11-28serialization: remove container wrappers and serialize directlyjeffro2565-125/+81
Some downstream code (most notably PR https://github.com/UkoeHB/monero/pull/25) wants to use the src/serialization lib for storing information persistently. When one builds classes/machines wishing to serialize containers, they must use the `serializable_*` container classes. In this case, this makes the Seraphis library code unnecessarily tightly coupled with the src/serialization code since one cannot swap out their type of storage format without major refactoring of class field types. By serializing STL containers directly, we can abstract the serialization details away, making for much cleaner design. Also small bonus side effect of this change is that STL containers with custom Comparators, Allocators, and Hashers are serializable. `std::multimap` is added to the list of serializable containers. Depends upon https://github.com/monero-project/monero/pull/9069.
2023-11-25cmake: silence FindPythonInterp warningtobtoht1-4/+6
2023-11-20Change std::result_of to autoLee Clagett1-4/+2
2023-11-18serialization: fix infinite loops and clean up dispatchingjeffro2569-152/+87
Resolves #8687
2023-11-06Add compile-time check for input iterators in ::wire array writingLee *!* Clagett1-1/+8
2023-11-06workflows: upload macOS binary after name changeselsta1-1/+1
2023-11-06Merge pull request #9050luigi11111-0/+26
23179a0 wallet: fix multisig key memory leak (jeffro256)
2023-11-06Merge pull request #9045luigi11112-2/+2
504269e unit tests: fix running from pwd and auto test selected location (jeffro256)
2023-11-06Merge pull request #9044luigi11111-3/+4
5443240 core_tests: fix gcc7 compilation (selsta)
2023-11-06Merge pull request #9042luigi11111-4/+13
ade57b6 JH hash compiler workarounds (SChernykh)
2023-11-06Merge pull request #9038luigi11118-212/+9
e191083 epee: remove dead code in math_helper and string_tools (jeffro256)
2023-11-06Merge pull request #9035luigi11111-3/+9
0523140 ringct: make ctSigBase serialization follow strict aliasing rule (jeffro256)
2023-11-06Merge pull request #9033luigi11111-0/+1
56dab0f cryptonote_config: include cstdint (jeffro256)
2023-11-06Merge pull request #9030luigi11111-0/+117
30cf537 unit tests: wallet_storage: generate in 'Ascii' format test (jeffro256)
2023-11-06Merge pull request #9028luigi11111-2/+9
9ea3257 gitian: add riscv64 support (selsta)
2023-11-06Merge pull request #8990luigi11116-0/+451
c17f73a add sp_transcript (koe) 51e40f7 add seraphis_crypto directory (koe)
2023-11-06Merge pull request #8979luigi11115-7/+11
80b5bf8 gcc: fix uninitialized constructor warnings (jeff)
2023-11-06Merge pull request #8965luigi11111-0/+1
1e2e703 core_rpc_server: silence unused warnings (jeffro256)
2023-11-06Merge pull request #8922luigi11116-21/+20
b4491c1 cmake: set -fno-aligned-allocation on macOS ARM (selsta) df9f380 cmake: set BOOST_NO_AUTO_PTR to fix c++17 compilation (selsta) 5136974 device: boost -> std locks to fix c++17 compilation (selsta) 5965b02 cmake: set cpp17 standard (selsta)
2023-11-05gpg_keys: add tobtohttobtoht1-0/+51
2023-11-05MMS: Ignore 2 more API errors thrown by latest PyBitmessagerbrunner71-0/+13
2023-11-04add sp_transcriptkoe1-0/+397
2023-11-04JH hash compiler workaroundsSChernykh1-4/+13
- Fixed uninitialized `state->x` warning - Fixed broken code with `-O3` or `-Ofast` The old code is known to break GCC 10.1 and GCC 11.4
2023-11-04Fix EAGAIN bug in ZMQ-RPC/ZMQ-PUBLee *!* Clagett1-7/+16
2023-11-02wallet: sign_tx: get tx pubkey from extratobtoht1-3/+1
2023-11-02wallet: fix multisig key memory leakjeffro2561-0/+26
Multisig keys per-transfer were being wiped, but not erased, which lead to a ginormous quadratic bloat the more transfers and exports you performed with the wallet.
2023-10-28unit tests: fix running from pwd and auto test selected locationjeffro2562-2/+2
2023-10-28core_tests: fix gcc7 compilationselsta1-3/+4
2023-10-26cmake: set -fno-aligned-allocation on macOS ARMselsta1-0/+3
We set a deployment target that is lower than 10.14, which means we have to disable aligned allocation otherwise compilation fails.
2023-10-26cmake: set BOOST_NO_AUTO_PTR to fix c++17 compilationselsta1-0/+1
2023-10-26device: boost -> std locks to fix c++17 compilationselsta3-18/+13
2023-10-26cmake: set cpp17 standardselsta3-3/+3
2023-10-25Merge pull request #9026luigi11112-2/+2
9dc10bb Update RandomX to 1.2.1 (tevador)
2023-10-25Merge pull request #9017luigi11112-29/+2
fe4a34e depends: zeromq: update to 4.3.5 (tobtoht)
2023-10-25Merge pull request #9007luigi11116-10/+10
c8e4de1 depends: remove kernel version from darwin triplet (tobtoht)
2023-10-25Merge pull request #9003luigi11111-4/+0
b9f1e37 depends: unwind: do not build for linux hosts (tobtoht)
2023-10-25Merge pull request #9002luigi11116-56/+14
932bba3 depends: remove libiconv: unused (tobtoht)
2023-10-25Merge pull request #8989luigi11111-0/+71
9b231c9 add account_generators for mapping public EC generators to account keys (koe)
2023-10-25Merge pull request #8987luigi11112-4/+12
1025e4f unit_test: set data dir relative to exe & add log-level arg (jeff)
2023-10-25Merge pull request #8974luigi11111-1/+1
759293d wallet2: fix version check at hf version 1 (j-berman)
2023-10-25Merge pull request #8972luigi11111-1/+1
f70d65c ea_config: define ELPP_FEATURE_CRASH_LOG for freebsd (teknosquet)
2023-10-25Merge pull request #8969luigi11115-94/+94
8190f25 KV_SERIALIZE: remove extraneous semicolons in DSL (jeffro256)
2023-10-25Merge pull request #8967luigi11111-1/+0
eba9011 README: remove obsolete forum (maogo)
2023-10-25Merge pull request #8966luigi11111-3/+6
f71e2dc multisig: better errors for small malformed kex msgs (jeffro256)
2023-10-25Merge pull request #8963luigi11111-2/+2
294366f depends: openssl: update to 3.0.11 (tobtoht)
2023-10-25Merge pull request #8958luigi111113-1/+770
b0bf49a blockchain_db: add k-anonymity to txid fetching (jeffro256)
2023-10-25Merge pull request #8933luigi11115-10/+9
ebb7671 depends: use macOS 11 SDK with libc++ headers (tobtoht)
2023-10-25Merge pull request #8752luigi111141-730/+1213
c444a7e trezor: support v2.5.2+, add more trezor tests, fix chaingen and tests (Dusan Klinec) 056c996 fix chaingen tests (Dusan Klinec)
2023-10-25epee: remove dead code in math_helper and string_toolsjeffro2568-212/+9
2023-10-24depends: use macOS 11 SDK with libc++ headerstobtoht5-10/+9
2023-10-23ringct: make `rctSigBase` serialization follow strict aliasing rulejeffro2561-3/+9
Accessing an object of type `char` thru an lvalue of type `crypto::hash8` is undefined behavior. https://developers.redhat.com/blog/2020/06/03/the-joys-and-perils-of-aliasing-in-c-and-c-part-2
2023-10-22cryptonote_config: include cstdintjeffro2561-0/+1
Header was using `uint64_t` without including `<cstdint>` which caused some issues downstream for windows builds
2023-10-21unit tests: wallet_storage: generate in "Ascii" format testjeffro2561-0/+117
2023-10-21gitian: add riscv64 supportselsta1-2/+9
2023-10-20Update RandomX to 1.2.1tevador2-2/+2
2023-10-17wallet: mitigate statistical dependence for decoy selection within ringsjeffro2561-16/+43
Since we are required to check for uniqueness of decoy picks within any given ring, and since some decoy picks may fail due to unlock time or malformed EC points, the wallet2 decoy selection code was building up a larger than needed *unique* set of decoys for each ring according to a certain distribution *without replacement*. After filtering out the outputs that it couldn't use, it chooses from the remaining decoys uniformly random *without replacement*. The problem with this is that the picks later in the picking process are not independent from the picks earlier in the picking process, and the later picks do not follow the intended decoy distribution as closely as the earlier picks. To understand this intuitively, imagine that you have 1023 marbles. You label 512 marbles with the letter A, label 256 with the letter B, so on and so forth, finally labelling one marble with the letter J. You put them all into a bag, shake it well, and pick 8 marbles from the bag, but everytime you pick a marble of a certain letter, you remove all the other marbles from that bag with the same letter. That very first pick, the odds of picking a certain marble are exactly how you would expect: you are twice as likely to pick A as you are B, twice as likely to pick B as you are C, etc. However, on the second pick, the odds of getting the first pick are 0%, and the chances for everything else is higher. As you go down the line, your picked marbles will have letters that are increasingly more unlikely to pick if you hadn't remove the other marbles. In other words, the distribution of the later marbles will be more "skewed" in comparison to your original distribution of marbles. In Monero's decoy selection, this same statistical effect applies. It is not as dramatic since the distribution is not so steep, and we have more unique values to choose from, but the effect *is* measureable. Because of the protocol rules, we cannot have duplicate ring members, so unless that restriction is removed, we will never have perfectly independent picking. However, since the earlier picks are less affected by this statistical effect, the workaround that this commit offers is to store the order that the outputs were picked and commit to this order after fetching output information over RPC.
2023-10-16gcc: fix uninitialized constructor warningsjeff5-7/+11
2023-10-10depends: zeromq: update to 4.3.5tobtoht2-29/+2
2023-10-02Merge pull request #9013luigi11112-33/+37
bb33daa add a test for the long term weight cache (Boog900) 65839b5 Fix: long term block weight cache The long term block weight cache was doing a wrong calculation when adding a new block to the cache. (Boog900)
2023-10-02add a test for the long term weight cacheBoog9001-0/+35
2023-10-01Fix: long term block weight cacheBoog9001-33/+2
The long term block weight cache was doing a wrong calculation when adding a new block to the cache.
2023-09-30Merge pull request #9000luigi11112-0/+6
9636375 storages: change error log category to serialization (selsta)
2023-09-30Merge pull request #8998luigi11111-2/+2
9f981ac wallet: store watch-only wallet correctly when change_password() is called (jeff)
2023-09-30trezor: support v2.5.2+, add more trezor tests, fix chaingen and testsDusan Klinec27-595/+1022
- passphrase logic: remove backward compatibility for 2.4.3, code cleanup. - fix LibUSB cmake for static builds on OSX - tests: all tests now work with passphrase logic enabled. Passphrase test added with different passphrase. no_passphrase test added, Trezor pin test added. Testing wallet opening with correct and incorrect passphrase. Trezor test chain revamp, cleanup. Smaller chain, chain file versioning added. - tests: Trezor tests support TEST_MINING_ENABLED, TEST_MINING_TIMEOUT env vars to change mining-related tests behaviour. - requires protobuf@21 on osx for now (c++14), building with unlinked protobuf: `CMAKE_PREFIX_PATH=$(find /opt/homebrew/Cellar/protobuf@21 -maxdepth 1 -type d -name "21.*" -print -quit) \ make debug-test-trezor -j8`
2023-09-29fix chaingen testsDusan Klinec15-135/+191
- fix tx create from sources, input locking. Originally, creating a synthetic transactions with chaingen could create a transaction with outputs that are still locked in the current block, thus failing chain validation by the daemon. Simple unlock check was added. Some buggy tests were fixed as well as new unlock-checking version of tx creation rejected those, fixes are simple - mostly using correct block after a rewind to construct a transaction
2023-09-27depends: remove kernel version from darwin triplettobtoht6-10/+10
2023-09-26wallet2: call on_reorg callback in handle_reorgj-berman1-4/+4
2023-09-26depends: move cmake system config to hosts filestobtoht7-17/+10
2023-09-26depends: unwind: do not build for linux hoststobtoht1-4/+0
2023-09-25depends: remove libiconv: unusedtobtoht6-56/+14
2023-09-22storages: change error log category to serializationselsta2-0/+6
2023-09-21wallet: store watch-only wallet correctly when `change_password()` is calledjeff1-2/+2
The Monero GUI code was calling `Monero::wallet::setPassword()` on every open/close for some reason, and the old `store_to()` code called `store_keys()` with `watch_only=false`, even for watch-only wallets. This caused a bug where the watch-only keys file got saved with with the JSON field `watch_only` set to 0, and after saving a watch-only wallet once, a user could never open it back up against because `load()` errored out. This never got brought up before this because you would have to change the file location of the watch-only wallet to see this bug, and I guess that didn't happen often, but calling the new `store_to()` function with the new `force_rewrite` parameter set to `true` triggers key restoring and the bug appeared.
2023-09-19depends: openssl: update to 3.0.11tobtoht1-2/+2
2023-09-14Merge pull request #8976luigi11111-89/+50
d4d8840 functional_tests: fix multisig tests noutputs assertion (jeffro256)
2023-09-14Merge pull request #8937luigi11117-42/+359
1bea8ef wallet2: fix store_to() and change_password() (jeffro256)
2023-09-10add seraphis_crypto directorykoe5-0/+54
2023-09-10add account_generators for mapping public EC generators to account keyskoe1-0/+71
2023-09-10unit_test: set data dir relative to exe & add log-level argjeff2-4/+12
2023-08-23wallet2: fix `store_to()` and `change_password()`jeffro2567-42/+359
Resolves #8932 and: 2. Not storing cache when new path is different from old in `store_to()` and 3. Detecting same path when new path contains entire string of old path in `store_to()` and 4. Changing your password / decrypting your keys (in this method or others) and providing a bad original password and getting no error and 5. Changing your password and storing to a new file
2023-08-19functional_tests: fix multisig tests noutputs assertionjeffro2561-89/+50
The changes to the multisig tests in #8914 and #8904 affected each other, this PR cleans up the code and fixes that issue.
2023-08-17wallet2: fix version check at hf version 1j-berman1-1/+1
2023-08-17Merge pull request #8959luigi11111-18/+18
26fa796 docs: update ANONYMITY_NETWORKS (DonW16)
2023-08-17Merge pull request #8956luigi11111-4/+9
f7fb5c7 scan_tx: fix custom comparator for == case; fixes #8951 (j-berman)
2023-08-17Merge pull request #8955luigi11115-30/+15
192d87c remove more 'using namespace' statements from headers (jeffro256)
2023-08-17Merge pull request #8950luigi11111-4/+4
a0e5c3c wallet2: when checking frozen multisig tx set, don't assume order (jeffro256)
2023-08-17Merge pull request #8927luigi11111-0/+4
1104b59 Update help for set command in simplewallet Add help for max-reorg-depth and load-deprecated-formats options (MasFlam)
2023-08-17Merge pull request #8924luigi111117-136/+133
ffbf9f4 blockchain_and_pool: move to crytonote_core and enforce its usage (jeffro256) d6f86e5 Avoid nullptr dereference when constructing Blockchain and tx_memory_pool (lukas)
2023-08-17Merge pull request #8914luigi11117-35/+217
45b52de wallet-rpc: restore from multisig seed (jeffro256)
2023-08-17Merge pull request #8913luigi11111-1/+1
2a2cf03 blockchain_db: add clarification to get_block_already_generated_coins (jeffro256)
2023-08-17Merge pull request #8890luigi11113-2/+17
e8cac61 core_rpc_server: return ID of submitted block (jeffro256)
2023-08-17Merge pull request #8882luigi11111-3/+3
a8d2a58 wallet2: ensure transfers and sweeps use same fee calc logic (j-berman)
2023-08-17Merge pull request #8868luigi11119-0/+1093
a6ce2dc Write interface for new serialization system (Lee *!* Clagett)
2023-08-17Merge pull request #8853luigi11113-98/+12
6ff87ef net: tor_address: remove support for v2 onion addresses (tobtoht)
2023-08-17Merge pull request #8840luigi11111-1/+2
503c3e0 core: do not force sync the db when finding a block in regtest mode (Crypto City)