Age | Commit message (Collapse) | Author | Files | Lines |
|
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)
|
|
reported by sech1
|
|
|
|
|
|
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)
|
|
6ff87ef net: tor_address: remove support for v2 onion addresses (tobtoht)
|
|
503c3e0 core: do not force sync the db when finding a block in regtest mode (Crypto City)
|
|
0ae5c91 http_client: reduce number of packets sent for small bodies (jeffro256)
|
|
Signed-off-by: teknosquet <teknosquet@danwin1210.de>
|
|
|
|
Prereq of https://github.com/monero-project/monero/pull/8867
|
|
|
|
Resolves https://github.com/monero-project/monero/issues/8493
|
|
|
|
Read more about k-anonymity [here](https://en.wikipedia.org/wiki/K-anonymity). We implement this feature in the monero daemon for transactions
by providing a "Txid Template", which is simply a txid with all but `num_matching_bits` bits zeroed out, and the number `num_matching_bits`. We add an operation to `BlockchainLMDB` called
`get_txids_loose` which takes a txid template and returns all txids in the database (chain and mempool) that satisfy that template. Thus, a client can
ask about a specific transaction from a daemon without revealing the exact transaction they are inquiring about. The client can control the statistical
chance that other TXIDs (besides the one in question) match the txid template sent to the daemon up to a power of 2. For example, if a client sets their `num_matching_bits`
to 5, then statistically any txid has a 1/(2^5) chance to match. With `num_matching_bits`=10, there is a 1/(2^10) chance, so on and so forth.
Co-authored-by: ACK-J <60232273+ACK-J@users.noreply.github.com>
|
|
|
|
Removed version 2 onion addresses as they're deprecated from TOR and updated I2P/Tor Stream Used Twice section to reference tweets relevant to section.
Fixed grammatical errors and changed the wording within the Wallet RPC section to better explain the differences between a I2P hidden service and a TOR hidden service.
|
|
Co-authored-by: woodser <woodser@protonmail.com>
|
|
|
|
|
|
1c20198 Fixup error message. (ComputeryPony)
|
|
369a5a8 wallet: respect frozen key images in multisig wallets (jeffro256)
|
|
2608b24 Add CLSAG serialization to ZMQ code (Lee Clagett)
|
|
c138a28 wallet2: take ignored-by-value outputs into account in balance (Crypto City)
|
|
ea053b6 Update tests/hash/main.cpp (0xFFFC0000)
6bae913 Tests: Add blake2b Test Cases for hash testing. * Adding blake2b test function to src/tests/hash * New files for testvector. * Adding the test to CMakeLists.txt * Adding brief documentation for the test. (0xFFFC0000)
|
|
0961c2a Set SSL SNI even when server verification is disabled (Lee *!* Clagett)
|
|
c589e15 Speed up perf_timer init on x86 (SChernykh)
|
|
d9c7cd5 common: do not use DNS to determine if address is local (tobtoht)
|
|
d391ac0 blockchain: ensure base fee cannot reach 0 (Crypto City)
|
|
a668312 wallet: remove CLI code for non default ring sizes (Jeffro256)
|
|
16d17f6 add crypto/generators for direct access to canonical fixed generators (koe)
|
|
70bbd25 core_rpc_server: new file: rpc_ssl.fingerprint (Jeffrey Ryan)
|
|
ce86368 Remove src/platform (Jeffrey)
|
|
a6639df wallet_rpc_server: dedup transfer RPC responses (jeffro256)
Very special PR.
|
|
Co-authored-by: j-berman <justinberman@protonmail.com>
|
|
|
|
All the files in src/platform are currently unused and unnecessary. See below:
* `mingw/alloca.h`: unused throughout project
* `msc/sys/param.h`:
1. In `fix_darwin.patch`, `sys/param.h` is well-defined to be used only in OpenBSD environment
2. `int-util.h` already handles when `sys/param.h` is not present and injects its own values
3. `db_drivers/liblmdb/mdb.c` is a similar situation: already explicity handles different platforms
4. `src/crypto/chacha.h` uses `int-util.h` for endianness context
* `msc/alloca.h`: unused
* `msc/inline_c.h`: not needed. the `inline` keyword is supported for C99 I believe, and certainly for C11, C14+
* `msc/stdbool.h`: `stdbool.h` is standard since C99, and MSVC has supported it for a long time (~10 years)
|
|
|
|
Add help for max-reorg-depth and load-deprecated-formats options
|
|
|
|
|
|
|
|
|
|
Looks like the extra MWARNING was supposed to be guarded by the if statement.
|
|
eeda4a8 wallet2: do not lose exception in current thread on refresh (Crypto City
f868768 wallet2: fix missing exceptions from failing wallet refresh (Crypto City)
|
|
ec0cdc4 depends: remove icu4c (tobtoht)
|
|
eb94356 Add to_hex::buffer (Lee *!* Clagett)
|
|
2c98a82 Add byte_stream alue_type and data() (Lee *!* Clagett)
|
|
9f80797 protocol: drop peers sending duplicate txes (moneromooo-monero)
|
|
c430ba9 depends: update expat to 2.5.0 (tobtoht)
|
|
25a803f tests: remove unused perl scripts (tobtoht)
|
|
f7deb7d tests: remove daemon_tests (tobtoht)
|
|
360a145 utils: remove munin_plugins (tobtoht)
|
|
bb83eb1 daemon: remove --fluffy-blocks (tobtoht)
|
|
6b8dfb8 daemon: remove os-version (tobtoht)
|
|
7206ef8 cryptonote_basic: fix amount overflow detection on 32-bit systems (jeffro256)
|
|
24d56c5 bump lmdb sync threshold for performance (moneromooo-monero)
|
|
092e964 Fixed RandomX initialization when mining from scratch (SChernykh)
|
|
a32aeb9 Added Alpine Linux to list of packages (Dvd-Znf)
|
|
ca6c42a Message about DNS_PUBLIC to help users with issue #8452 (OrvilleRed)
|
|
724441a link against libz on non Apple/Windows (moneromooo-monero)
|
|
04dfdb3 epee: protect base64_chars, removed dead functions, speed up compile (Jeffro256)
|
|
87e2a64 Allow option 'non-interactive' in monerod config file (almalh)
|
|
e212532 depends: upgrade OpenSSL to 3.0.9 (tobtoht)
|
|
6c73dc7 properly terminate interrupted TCP connection. fixes #8685 (j-berman)
|
|
c90c1c3 Show IPv6 addresses in connection list (Guillaume Le Vaillant)
|
|
7c36110 ci: update copyright (plowsof)
|
|
f50b9e3 revisions (koe) e5aa058 vtnerd review comments (koe)
c60b11f add compare_func() method so user-defined comparison functions are easier to use (koe)
7329873 adjust is_sorted_and_unique() (koe)
3d60475 comment updates (koe) acfaaed add container helpers (koe)
|
|
2a7435e variant: add mutable unwrap and visitation (koe)
bc3cec4 add variant class with cleaner interface than boost::variant<> (koe)
|
|
5c505bd performance test framework updates: allow custom test parameters, better error reporting (koe)
|
|
4f3a54b Remove invoke function in levin handler (Lee Clagett)
|
|
e6b86af wallet2: fix rescanning tx via scan_tx (j-berman)
|
|
|
|
|
|
- Detach & re-process txs >= lowest scan height
- ensures that if a user calls scan_tx(tx1) after scanning tx2,
the wallet correctly processes tx1 and tx2
- if a user provides a tx with a height higher than the wallet's
last scanned height, the wallet will scan starting from that tx's
height
- scan_tx requires trusted daemon iff need to re-process existing
txs: in addition to querying a daemon for txids, if a user
provides a txid of a tx with height *lower* than any *already*
scanned txs in the wallet, then the wallet will also query the
daemon for all the *higher* txs as well. This is likely
unexpected behavior to a caller, and so to protect a caller from
revealing txid's to an untrusted daemon in an unexpected way,
require the daemon be trusted.
|
|
Removing preprocessor macro and replacing it with constexpr.
Co-authored-by: Jeffro <jeffreyryan@tutanota.com>
|
|
Before this change, if a multisig peer asked you to sign a transaction with a frozen enote, the wallet will do it without any error or warning. This change makes it
so that wallets will refuse to sign multisig transactions with frozen enotes.
Disclaimer: This PR was generously funded by @LocalMonero.
|
|
* Adding blake2b test function to src/tests/hash
* New files for testvector.
* Adding the test to CMakeLists.txt
* Adding brief documentation for the test.
|
|
|
|
|
|
|
|
All Monero binaries have 1 second startup delay because of this code. This is especially noticeable and affects UX in Monero GUI wallet with local node where it often starts another monerod instance to run commands and query node status.
|
|
|
|
On systems where `ULONG_MAX` != `ULLONG_MAX` (e.g. most 32-bit systems), the `round_money_up` function will not correctly detect overflows.
|
|
|
|
|
|
|
|
Ensures both transfers and sweeps use a fee that's calculated
from the tx's weight. Using different logic could theoretically
enable distinguishability between the two types of txs. We don't
want that.
|
|
|
|
|
|
|
|
|
|
|
|
c32befe fix missing <cstdint> includes (tobtoht)
|
|
|
|
|
|
|
|
|
|
reported by sech1
|
|
|
|
|
|
for a slight performance boost in functional tests
|
|
Force sync every 100k blocks instead of every 1k blocks. Bumping this
value is reported to make a big difference in sync performance, eg:
https://github.com/monero-project/monero/issues/8189
|
|
|