Commit Graph
11728 Commits
Author SHA1 Message Date
jwinterm ffdbee5d3d p2p: refresh mainnet seed nodes
Three of the six seeds no longer accept P2P connections
(explore.wownero.com, spippolatori.it, wow.cypher.tec.br). A fresh node
spent 46 to 100 seconds finding its first peer; with this list it finds
one in 10 seconds.
2026-10-07 10:26:11 -04:00
such-gitea b22382c55f Point README and Gitian tooling at GitHub
The Codeberg repositories are being retired. README links, the five
Gitian descriptors' source URL, gitian-build.py and dockrun.sh now use
github.com/wownero/wownero and github.com/wownero/gitian.sigs.
v0.11.5.0
2026-10-05 19:54:49 -04:00
such-gitea 829e7e9354 external: fetch RandomWOW from GitHub
The Codeberg repositories are being retired. GitHub wownero/RandomWOW
carries the same 1.2.1-wow history, and the pinned RandomWOW commit is
unchanged.
2026-10-05 19:51:11 -04:00
such-gitea c3e4aba2f0 build: prepare v0.11.5.0 2026-10-04 19:09:34 -04:00
selstaandsuch-gitea 70543dd466 wallet2: use decodeRct for reserve proof amount validation
also update check_tx_key_helper for consistency

(cherry picked from commit 11543143b9b69713bfcfa9a38b97ceb80dc64047)
2026-10-04 18:54:54 -04:00
such-gitea b2e0cbe3ef external: randomwow: fix ISUB_R JIT on ARM64 and RISC-V
Port of tevador/RandomX#325, shipped in RandomX v1.2.2 and picked up
by Monero v0.18.5.3. With src = dst and imm = 0x80000000 the ARM64
and RISC-V JIT negated -2^31 to itself and produced a wrong hash.
RandomWOW is RandomX v1.2.1 plus parameters, and the patch applies
unchanged.
2026-10-04 18:54:18 -04:00
jeffro256andsuch-gitea a8818ce56d Blockchain: improve check_block_timestamp() overloads
(cherry picked from commit 478df04f38c60d4459e2a514055e7031c0f3ec32)
2026-10-04 18:52:22 -04:00
Masamuneandsuch-gitea 363c2f7506 wallet2: fix infinite loop in estimate_tx_size_and_weight on large n_outputs
estimate_rct_tx_size() and estimate_tx_weight() compute the Bulletproof padded
output count with `while ((1<<log_padded_outputs) < n_outputs)`, shifting a
signed int. For n_outputs > 2^30 this reaches `1 << 31` (signed overflow, UB),
and once the shift count exceeds the int width the value cycles and never
reaches n_outputs, so the loop never terminates. estimate_tx_size_and_weight()
accepts n_outputs up to INT_MAX (only negative is rejected), so a single
wallet-rpc call spins the handling thread forever.

Shift an unsigned 64-bit one and compare in uint64_t at all three shift sites,
and accumulate the estimated size in size_t (cast the per-input and per-output
terms) so the size arithmetic cannot overflow for large counts.

(cherry picked from commit a3deaab98a)
(cherry picked from commit ac37e75df8aedf43aa7afa1199ec24e229039f34)
2026-10-04 18:51:26 -04:00
Lee *!* Clagettandsuch-gitea cf393346bc Add checks in cryptonote serialization routine
(cherry picked from commit 2143283872c9b9e83dc04a571d9b8cd46548c3f7)
2026-10-04 18:51:04 -04:00
selstaandsuch-gitea 84fd02ea1d wallet2: update multisig info for detached outputs
(cherry picked from commit 48053f75dfed66cbb70aae21a17c5aa00cf3dc88)
2026-10-04 18:50:25 -04:00
selstaandsuch-gitea d86469844e wallet2: trim stale transfer maps after output imports
(cherry picked from commit 7d7a74848780f4f42a0e1376badf62a79240a02f)
2026-10-04 18:50:25 -04:00
selstaandsuch-gitea f607a02dae simplewallet: classify payment IDs by their payload
(cherry picked from commit 7dba0c8c786e44b3c71d1e214bfdf92ae3cf05a1)
2026-10-04 18:50:25 -04:00
selstaandsuch-gitea c7acabc641 wallet2: keep received amount breakdown consistent
(cherry picked from commit 0810f48a24d44f03b917a2548e1588b7531b0301)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea bd0f37cfb3 wallet: fix inconsistent tx pubkey handling
(cherry picked from commit 0125cf2697604cf0657f087fe7c42981d5e0c3b0)
2026-10-04 18:50:24 -04:00
koeandsuch-gitea e86d98e7ca tx/partial tx validation improvements
(cherry picked from commit b09e9bfe56824cd1d70a14db86d0507c928c1780)
2026-10-04 18:50:24 -04:00
j-bermanandsuch-gitea 1d5bf8cc8e cryptonote_basic: parse_and_validate_tx param to check max size
Simple API to check max blob size before parsing. This is useful
when reading blobs from untrusted sources.

@selsta pointed out that coinbase txs can technically be larger
than get_max_tx_size(), otherwise we could enforce it on all txs.

(cherry picked from commit b66e2227c2f937a3e09dd62ed770b0667bff0779)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea dfb95d964c wallet2: sanitize untrusted daemon status in sweep unmixable
(cherry picked from commit 144b3f9e644c0b1d4ad994b99edf6c355b38e533)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea 073daa92bd wallet2: filter unchecked RPC error statuses
(cherry picked from commit c86fd739dceca593346ca3d3d3db835d1308e7ed)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea 9a4ec1a5d0 wallet2: validate public node addresses before display
(cherry picked from commit c683bf08850161d6b072fd70c0e1325cb39e0a61)
2026-10-04 18:50:24 -04:00
tobtohtandsuch-gitea 859aabe2df depends: unbound: update to 1.26.1
(cherry picked from commit 0c29b3ce3b15a410d5e1dc10ebfb8d83d1bc0c04)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea cb893bf197 cryptonote_protocol: tighten pruned transaction blob validation
(cherry picked from commit 71e3be0e48d0939dfd2500f703b69234967d254a)
2026-10-04 18:50:24 -04:00
Guoqiang Liuandsuch-gitea 6d9aca92f1 net: detect half-closed sockets before connection reuse
Detect peer EOF and TLS closure before reusing idle connections. Make
disconnect idempotent while preserving buffered data and pending operation
lifetimes.

Keep the release branch's multi-byte recv_n behavior, and cover partial EOF,
socket modes, and TLS shutdown with loopback regression tests. Use fixed
test certificates and retain compatibility with the release branch's
Google Test version.

Co-authored-by: woodser <13068859+woodser@users.noreply.github.com>
(cherry picked from commit 096abdaa22b71ade9ca673ed8012c500cecb58d3)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea a53871e588 wallet2: reset scan status for already processed outputs
(cherry picked from commit 357b446a1335db9b42421acff46acaa0dee46a66)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea bfe4de8ea3 cryptonote_core: reject duplicate tx hashes before pool lookup
(cherry picked from commit 03f957c18c8818c3c25b75d771fe48c37036b6e3)
2026-10-04 18:50:24 -04:00
jpk68andsuch-gitea 7f028f56cd rpc: restrict get_public_nodes to public zone peers
(cherry picked from commit 6c5a4c18e3e8cbe088ccaccb0104daf8e4f9afbf)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea baf9c8ea5c rpc: adjust distribution cache validation order
(cherry picked from commit e075ed6baaccac7a8b170a97a48375647600bd5e)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea c017fff2ec wallet2: validate block hash when repairing empty hashchain
(cherry picked from commit ef7bdda92af255270a61e4ea4c6c7fe098a70dd0)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea 7e797d062a epee: remove obsolete MyMonero conversion
Also initialize the temp var used when loading scalar arrays.

(cherry picked from commit 7ba5e2cca91497155bd0a72a5e00059a27fa7e38)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea f7510618e8 wallet2: preserve required SSL when allowing chained certificates
(cherry picked from commit 57a37a156ce1f32b8b3471dc4aad7973130c38da)
2026-10-04 18:50:24 -04:00
koeandsuch-gitea 7951912289 multisig: erase all copies of a nonce at the same time
(cherry picked from commit fe744ac3171fe26b7284d3ac3a275e624e852ec5)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea 65fa6f0648 wallet_api: clear stale daemon login
(cherry picked from commit 274c2bda81563f3bc318f51bfccaf0f32ad3b8c0)
2026-10-04 18:50:24 -04:00
selstaandsuch-gitea d46a6cd8c7 common: sanitize message writer console output
(cherry picked from commit 52b33f4fb01bd54d936a016cbc63a4850daa3441)
2026-10-04 18:50:24 -04:00
j-bermanandsuch-gitea 16d9fb5336 p2p: don't reset timeout timer for handshakes
The handshake timeout should just be an absolute timeout, we don't
care about partial messages received during the handshake.

(cherry picked from commit c7c43686878166cd0b93bed0cc712c8dd9845c89)
2026-10-04 18:50:24 -04:00
j-bermanandsuch-gitea a04977c908 tx_pool: do expensive verify after potential no-drop offenses
(cherry picked from commit e5f285514777ac21bc31f2bf1ce8fdffb9d52586)
2026-10-04 18:50:24 -04:00
j-bermanandsuch-gitea 39647836f4 blockchain: limit offsets cache size
(cherry picked from commit d232dc09c55104f011133425f22a1c0e4e0b21ee)
2026-10-04 18:50:23 -04:00
j-bermanandsuch-gitea 7ff4a5567a cryptonote_basic: serialization checks
(cherry picked from commit d869dc0981ac55f90d5b52a1a794b124ae274716)
2026-10-04 18:50:23 -04:00
j-bermanandsuch-gitea 9eaf41a255 cryptonote_core: rm unnecessary db reads before block relay
(cherry picked from commit cbdb6fdaadbde4e897c478e8773e75163587aedd)
2026-10-04 18:50:23 -04:00
j-bermanandsuch-gitea 2687f95798 blockchain: if block is known invalid, fail block verification
(cherry picked from commit 9044450974d5b9fe228f746d2f580e83e58ddec0)
2026-10-04 18:50:23 -04:00
j-bermanandsuch-gitea 1a4dd0f212 p2p: update peer's height on new block & widen window for relay
- We select peers to relay to based on their latest known sync height.
- This change:
A) makes sure to update the peer's latest known sync height upon
validating the peer's newly relayed blocks.
B) Allows for a wider window so that if we haven't yet received the
peer's block or finished validating it, then the peer can still be
a valid candidate to receive our new txs.

(cherry picked from commit 437c45bebd621b1fdbcf0b19a4437d002b51ef8e)
2026-10-04 18:50:23 -04:00
selstaandsuch-gitea 444eb4dd79 lmdb: make transaction admission reentrant
(cherry picked from commit 6ee665b2c228dde4bb576f0ed7edb8d1a1702673)
2026-10-04 18:50:23 -04:00
Thomasandsuch-gitea c9d51bd08a wallet_rpc_server: reject --password with --wallet-dir
(cherry picked from commit 587315ce94c8c3f656ce3bbb5e046e4aa96942d4)
2026-10-04 18:50:23 -04:00
selstaandsuch-gitea cb4f6abd06 wallet_api: preserve output metadata in view-only wallet exports
(cherry picked from commit c5160732570cb4e07be29de1905324389df79978)
2026-10-04 18:50:23 -04:00
koeandsuch-gitea f4212ace98 add sanity_check_pending_tx
(cherry picked from commit 4eae9740460fb69e30bedeea48c2ab3268974bc0)
2026-10-04 18:50:23 -04:00
selstaandsuch-gitea f14082fdbd rpc: reject deep block submissions on restricted RPC
(cherry picked from commit 837c59bed10d06956ca7375a0e91619c0b77142e)
2026-10-04 18:50:23 -04:00
selstaandsuch-gitea 01a7c14a82 epee: prevent log injection from malformed HTTP headers
(cherry picked from commit 281c1d41aae7b579fa1307d82622e18abcd038ff)
2026-10-04 18:50:23 -04:00
selstaandsuch-gitea fb0d7b2318 wallet_api: expose signed message verification details
(cherry picked from commit 525a6f0b6e1bf53a048ef5d61823bf0043a2f130)
2026-10-04 18:50:23 -04:00
selstaandsuch-gitea 52b4aaef3b lmdb: retain percentage fallback for batch resizing
(cherry picked from commit c8d926c6995448a2a8efe6faf5f906eecdacab11)
2026-10-04 18:50:23 -04:00
tobtohtandsuch-gitea 129ee71995 depends: openssl: update to 3.0.22
(cherry picked from commit 91c32b55c27e2a2202639c50d60c55d7472efaef)
2026-10-04 18:50:23 -04:00
woodserandsuch-gitea 5fe3caa4d9 wallet2: abort in-flight daemon request on shutdown
(cherry picked from commit 3c0980f5991a3cc27f7b3890cb68251c971a4b07)
2026-10-04 18:50:23 -04:00
Thomasandsuch-gitea 818a0067b6 wallet2: fix data races in refresh error handlers
(cherry picked from commit d9236332a59bb090b0fa74e808237c26189564b0)
2026-10-04 18:50:23 -04:00