Age | Commit message (Collapse) | Author | Files | Lines |
|
As of 2024-04-01, IPv6 represents ~43% of traffic entering Google with
up to 75% is some country, and in generally more available when IPv6 was
introduced in Monero in 2019 as part of 155475d97196 ("Add IPv6
support").
Monero overall has a very low presence over IPv6 which in part can be
explained from the fact that IPv6 need to be specifically enabled before
it is used and often requires nodes to be manually added in
configuration.
This commit enabled IPv6 by default for both RPC and P2P as an attempt
to improve Monero network mesh diversity.
The change has been tested in a lot of different scenario: IPv4 only,
IPv6 only, IPv4+IPv6, IPv4+IPv6 with broken/invalid IPv4 system
configuration, IPv4+IPv6 with broken/invalid IPv6 system configuration.
* --p2p-use-ipv6 is now deprecated and has no effect
* --p2p-ignore-ipv6 is introduced to ignore unsuccessful IPv6 P2P binding
* --rpc-use-ipv6 is now deprecated and has no effect
* --rpc-ignore-ipv6 is introduced to ignore unsuccessful IPv6 RPC binding
See: https://github.com/monero-project/monero/issues/8818
See: https://www.google.com/intl/en/ipv6/statistics.html
See: https://www.vyncke.org/ipv6status/
|
|
Address backlog item to resolve IPv6 address in addition to IPv4
address.
See: https://github.com/monero-project/monero/issues/8818
|
|
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
|
|
* --p2p-bind-port-ipv4 is replaced with --p2p-bind-ipv4-port
* --p2p-bind-port-ipv6 is replaced with --p2p-bind-ipv6-port
|
|
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
|
|
c4e1c5a ringct: fix trunc_amount field name change (jeffro256)
|
|
Caused in commit 05231400cebfeedbbc0a5386f38a033bba6314b3, PR #9035.
|
|
bcb15d3 Revert 'http_client: reduce number of packets sent for small bodies' (jeffro256)
|
|
c40d8b2 depends: add riscv64 linux build tag (selsta)
|
|
This reverts commit 0ae5c91e504b8007dedc2b89c9b2b49c404ffec6.
|
|
|
|
a01d7cc Fixed mempool pruning (SChernykh)
|
|
e6f4875 wallet2: adjust fee during backlog, fix set priority (selsta)
|
|
- 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)
|
|
66e5081 get_block_template_backlog: better sorting logic (SChernykh)
|
|
7815023 tx_memory_pool: make double spends a no-drop offense (jeffro256)
|
|
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.
|
|
|
|
399b884 unit_tests: fix strtoul unit test (jeffro256)
|
|
2a2da79 free function serialization DSL (jeffro256)
|
|
695084e depends: add download commands for freebsd & android sources (tobtoht)
|
|
7043238 Remove instructions for Void Linux, add NixOS (Siren)
|
|
e499e74 actions: update to v4 actions (tobtoht)
|
|
1bc09fc depends: add riscv64 to gitignore (tobtoht)
|
|
119e341 depends: remove unwind (tobtoht)
|
|
0c9a5c5 depends: remove ccache (tobtoht)
|
|
442146a depends: libusb: update to 1.0.27 (tobtoht)
|
|
5f1b5c2 depends: eudev: update to 3.2.14 (tobtoht)
|
|
Nodes who see different txs in a double spend attack will drop each other, splitting the network.
Issue found by @boog900.
|
|
|
|
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()
```
|
|
cdab0d4 cmake: require libsodium (tobtoht)
684bfca depends: move sodium to packages (tobtoht)
|
|
|
|
|
|
3313933 docs: omit i2p port number from ANONYMITY_NETWORKS (selsta)
|
|
f7670c9 cryptonote_core: early out on out of bounds scaling parameter (selsta)
|
|
538f19b depends: android_ndk: update to 18b (tobtoht)
|
|
c334d0e depends: openssl: update to 3.0.13 (tobtoht)
|
|
b26155b depends: expat: update to 2.6.0 (tobtoht)
|
|
edcc1e4 depends: unbound: update to 1.19.1 (tobtoht)
|
|
c50ade5 Daemon-specific proxy for the wallet-rpc. (0xFFFC0000)
|
|
ed50938 Zero initialize rctSigBase elements (Lee *!* Clagett)
|
|
b1c9a80 Add <cstdint> to aligned test (Lee *!* Clagett)
|
|
cd7ccfb Disable/fix ports with I2P (Lee Clagett)
|
|
8d25418 daemon: warn user on specifiying ZMQ args with --no-zmq (jeffro256)
|
|
9cd4757 Cleanup extra memory allocation, and port boost::shared_ptr to std::shared_ptr. (0xFFFC0000)
|
|
ba902f9 actions: remove unnecessary packages (tobtoht)
|
|
0c545f6 epee/test: remove levin_protocol_handler and core_proxy tests (jeffro256)
|
|
afe5167 depends: update config scripts (jeffro256)
|
|
47042ce wallet2: call on_reorg callback in handle_reorg (j-berman)
|
|
0d763a1 depends: move cmake system config to hosts files (tobtoht)
|
|
48b7d08 epee binary: container can read from empty seq of any type (jeffro256)
|
|
b13c5f6 wallet: feature: transfer amount with fee included (jeffro256)
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Resolves https://github.com/monero-project/monero/issues/9127
|
|
|
|
|
|
|
|
|
|
|
|
e7629dc CMake: only set policy CMP0148 to OLD if version >= 3.27 (jeffro256)
|
|
Co-authored-by: 0xFFFC0000 <0xFFFC0000@proton.me>
|
|
9690bfd gpg_keys: add 0xfffc0000 (0xFFFC0000)
|
|
7d3b9b9 remove ARCH='x86-64' from release-static (woodser)
|
|
34e62d5 workflows: enable manual run of copyright update (plowsof)
dd978ee workflows: copyright commit author (plowsof)
|
|
562bdb8 storages: add missing return (selsta)
|
|
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)
|
|
01c6e4b OpenBSD: node server fix IP localhost by aliasing (mesaoptimizer)
|
|
eed975d Fix missing checks for IsObject in ZMQ jsonrpc reading (Lee Clagett)
|
|
2525200 serialization: remove container wrappers and serialize directly (jeffro256)
|
|
eb083ca cmake: silence FindPythonInterp warning (tobtoht)
|
|
53e632b fix merge mining with more than one merge mined chain (Crypto City)
|
|
69a8175 Change std::result_of to auto (Lee Clagett)
|
|
a11e03a serialization: fix infinite loops and clean up dispatching (jeffro256)
|
|
085fdea Add compile-time check for input iterators in ::wire array writing (Lee *!* Clagett)
|
|
cf2253c workflows: upload macOS binary after name change (selsta)
|
|
2766d12 MMS: Ignore 2 more API errors thrown by latest PyBitmessage (rbrunner7)
|
|
deb8c79 gpg_keys: add tobtoht (tobtoht)
|
|
4acae11 Fix EAGAIN bug in ZMQ-RPC/ZMQ-PUB (Lee *!* Clagett)
|
|
1062b17 wallet: sign_tx: get tx pubkey from extra (tobtoht)
|
|
b2eb47d wallet: mitigate statistical dependence for decoy selection within rings (jeffro256)
|
|
|
|
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.
|
|
|
|
|
|
|
|
author is now copyCat
|
|
|
|
* No need for entire new class (Fix #8732).
* Fix stdint.h header include in contrib/epee/include/net/http_base.h.
|
|
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.
|
|
reported by sech1
|
|
|
|
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.
|
|
|
|
|
|
Resolves #8687
|
|
|
|
|
|
23179a0 wallet: fix multisig key memory leak (jeffro256)
|
|
504269e unit tests: fix running from pwd and auto test selected location (jeffro256)
|
|
5443240 core_tests: fix gcc7 compilation (selsta)
|
|
ade57b6 JH hash compiler workarounds (SChernykh)
|
|
e191083 epee: remove dead code in math_helper and string_tools (jeffro256)
|
|
0523140 ringct: make
ctSigBase serialization follow strict aliasing rule (jeffro256)
|
|
56dab0f cryptonote_config: include cstdint (jeffro256)
|
|
30cf537 unit tests: wallet_storage: generate in 'Ascii' format test (jeffro256)
|
|
9ea3257 gitian: add riscv64 support (selsta)
|
|
c17f73a add sp_transcript (koe) 51e40f7 add seraphis_crypto directory (koe)
|
|
80b5bf8 gcc: fix uninitialized constructor warnings (jeff)
|
|
1e2e703 core_rpc_server: silence unused warnings (jeffro256)
|
|
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)
|
|
|
|
|
|
|
|
- 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
|
|
|
|
|
|
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.
|
|
|
|
|
|
We set a deployment target that is lower than 10.14, which means
we have to disable aligned allocation otherwise compilation fails.
|
|
|
|
|
|
|
|
9dc10bb Update RandomX to 1.2.1 (tevador)
|
|
fe4a34e depends: zeromq: update to 4.3.5 (tobtoht)
|
|
c8e4de1 depends: remove kernel version from darwin triplet (tobtoht)
|
|
b9f1e37 depends: unwind: do not build for linux hosts (tobtoht)
|
|
932bba3 depends: remove libiconv: unused (tobtoht)
|
|
9b231c9 add account_generators for mapping public EC generators to account keys (koe)
|
|
1025e4f unit_test: set data dir relative to exe & add log-level arg (jeff)
|
|
759293d wallet2: fix version check at hf version 1 (j-berman)
|
|
f70d65c ea_config: define ELPP_FEATURE_CRASH_LOG for freebsd (teknosquet)
|
|
8190f25 KV_SERIALIZE: remove extraneous semicolons in DSL (jeffro256)
|
|
eba9011 README: remove obsolete forum (maogo)
|
|
f71e2dc multisig: better errors for small malformed kex msgs (jeffro256)
|
|
294366f depends: openssl: update to 3.0.11 (tobtoht)
|
|
b0bf49a blockchain_db: add k-anonymity to txid fetching (jeffro256)
|
|
ebb7671 depends: use macOS 11 SDK with libc++ headers (tobtoht)
|
|
c444a7e trezor: support v2.5.2+, add more trezor tests, fix chaingen and tests (Dusan Klinec)
056c996 fix chaingen tests (Dusan Klinec)
|
|
|
|
|
|
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
|
|
Header was using `uint64_t` without including `<cstdint>` which caused some issues downstream for windows builds
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
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)
|
|
|
|
The long term block weight cache was doing a wrong calculation when
adding a new block to the cache.
|
|
9636375 storages: change error log category to serialization (selsta)
|
|
9f981ac wallet: store watch-only wallet correctly when change_password() is called (jeff)
|
|
- 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`
|
|
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
d4d8840 functional_tests: fix multisig tests noutputs assertion (jeffro256)
|
|
1bea8ef wallet2: fix store_to() and change_password() (jeffro256)
|
|
|
|
|
|
|
|
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
|
|
The changes to the multisig tests in #8914 and #8904 affected each other, this PR cleans up the code and fixes that issue.
|
|
|
|
26fa796 docs: update ANONYMITY_NETWORKS (DonW16)
|
|
f7fb5c7 scan_tx: fix custom comparator for == case; fixes #8951 (j-berman)
|
|
192d87c remove more 'using namespace' statements from headers (jeffro256)
|
|
a0e5c3c wallet2: when checking frozen multisig tx set, don't assume order (jeffro256)
|
|
1104b59 Update help for set command in simplewallet Add help for max-reorg-depth and load-deprecated-formats options (MasFlam)
|
|
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)
|
|
45b52de wallet-rpc: restore from multisig seed (jeffro256)
|
|
2a2cf03 blockchain_db: add clarification to get_block_already_generated_coins (jeffro256)
|
|
e8cac61 core_rpc_server: return ID of submitted block (jeffro256)
|
|
a8d2a58 wallet2: ensure transfers and sweeps use same fee calc logic (j-berman)
|
|
a6ce2dc Write interface for new serialization system (Lee *!* Clagett)
|