<feed xmlns='http://www.w3.org/2005/Atom'>
<title>monzero-core.git/src/cryptonote_core/tx_pool.cpp, branch v0.18.4.4</title>
<subtitle>Monzero core node, command-line wallet, consensus code, and release tooling.
</subtitle>
<id>https://code.monzero.org/monzero-core.git/atom?h=v0.18.4.4</id>
<link rel='self' href='https://code.monzero.org/monzero-core.git/atom?h=v0.18.4.4'/>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/'/>
<updated>2025-11-12T00:31:37Z</updated>
<entry>
<title>tx pool: only increment m_txpool_weight for newly added pool txs</title>
<updated>2025-11-12T00:31:37Z</updated>
<author>
<name>j-berman</name>
<email>justinberman@protonmail.com</email>
</author>
<published>2025-10-28T00:14:16Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=90dad18bfbe3275142e2f3fe33017cd65486a20f'/>
<id>urn:sha1:90dad18bfbe3275142e2f3fe33017cd65486a20f</id>
<content type='text'>
Otherwise we can end up double counting txs towards the weight,
which can over-state the pool weight. E.g. relay tx to node in
stem phase, add its weight to pool weight, then receive tx
from another node, then bump the pool weight again. That double
counts the tx towards the pool weight.

If the weight exceeds the max, the node will "prune" txs from the
pool. Thus, over-counting is probably a cause of, but perhaps
not the only cause of:
https://github.com/seraphis-migration/monero/issues/148
</content>
</entry>
<entry>
<title>blockchain sync: reduce disk writes from 2 to 1 per tx</title>
<updated>2025-03-10T06:32:08Z</updated>
<author>
<name>jeffro256</name>
<email>jeffro256@tutanota.com</email>
</author>
<published>2024-01-17T23:17:16Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=008ba966da88f073f226b299533faca905ceabf8'/>
<id>urn:sha1:008ba966da88f073f226b299533faca905ceabf8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Enforce Tx unlock_time is Zero by Relay Rule [RELEASE]</title>
<updated>2024-04-29T05:08:53Z</updated>
<author>
<name>jeffro256</name>
<email>jeffro256@tutanota.com</email>
</author>
<published>2024-02-04T03:59:58Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=dd47d03cf2b5b3dc59cd99aca247d1025679f83a'/>
<id>urn:sha1:dd47d03cf2b5b3dc59cd99aca247d1025679f83a</id>
<content type='text'>
Related to https://github.com/monero-project/research-lab/issues/78

Added a relay rule that enforces the `unlock_time` field is equal to 0 for non-coinbase transactions.

UIs changed:
* Removed `locked_transfer` and `locked_sweep_all` commands from `monero-wallet-cli`

APIs changed:
* Removed `unlock_time` parameters from `wallet2` transfer methods
* Wallet RPC transfer endpoints send error codes when requested unlock time is not 0
* Removed `unlock_time` parameters from `construct_tx*` cryptonote core functions

@tobtoht: undo rebase changes tx.dsts -&gt; tx_dsts
</content>
</entry>
<entry>
<title>Fixed mempool pruning</title>
<updated>2024-03-08T20:03:41Z</updated>
<author>
<name>SChernykh</name>
<email>15806605+SChernykh@users.noreply.github.com</email>
</author>
<published>2024-03-08T19:58:21Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=b5b72ae05c5b47b76e57d565de0bac5706530c6a'/>
<id>urn:sha1:b5b72ae05c5b47b76e57d565de0bac5706530c6a</id>
<content type='text'>
- 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)
</content>
</entry>
<entry>
<title>Merge pull request #9223</title>
<updated>2024-03-08T18:46:09Z</updated>
<author>
<name>luigi1111</name>
<email>luigi1111w@gmail.com</email>
</author>
<published>2024-03-08T18:46:09Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=5eb3fc29bbeef95c133d18a34c52aecb9f449b60'/>
<id>urn:sha1:5eb3fc29bbeef95c133d18a34c52aecb9f449b60</id>
<content type='text'>
36ee12b get_block_template_backlog: better sorting logic (SChernykh)
</content>
</entry>
<entry>
<title>tx_memory_pool: make double spends a no-drop offense</title>
<updated>2024-03-08T14:14:06Z</updated>
<author>
<name>jeffro256</name>
<email>jeffro256@tutanota.com</email>
</author>
<published>2024-03-07T15:23:41Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=eeb7c7c5467dae9c72e4dde11cbd51dab3b448f9'/>
<id>urn:sha1:eeb7c7c5467dae9c72e4dde11cbd51dab3b448f9</id>
<content type='text'>
Nodes who see different txs in a double spend attack will drop each other, splitting the network.
Issue found by @boog900.
</content>
</entry>
<entry>
<title>get_block_template_backlog: better sorting logic</title>
<updated>2024-03-08T13:51:33Z</updated>
<author>
<name>SChernykh</name>
<email>15806605+SChernykh@users.noreply.github.com</email>
</author>
<published>2024-03-08T13:50:01Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=36ee12bd8d20aecf67fbfe5387749b1562732528'/>
<id>urn:sha1:36ee12bd8d20aecf67fbfe5387749b1562732528</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Enforce restricted # pool txs served via RPC + optimize chunked reqs [release-v0.18]</title>
<updated>2023-07-09T06:38:18Z</updated>
<author>
<name>j-berman</name>
<email>justinberman@protonmail.com</email>
</author>
<published>2022-12-14T00:08:56Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=f137a35984985232a3aae50cd4c7b47634866594'/>
<id>urn:sha1:f137a35984985232a3aae50cd4c7b47634866594</id>
<content type='text'>
- `/getblocks.bin` respects the `RESTRICTED_TX_COUNT` (=100) when
returning pool txs via a restricted RPC daemon.
- A restricted RPC daemon includes a max of `RESTRICTED_TX_COUNT` txs
in the `added_pool_txs` field, and returns any remaining pool hashes
in the `remaining_added_pool_txids` field. The client then requests
the remaining txs via `/gettransactions` in chunks.
- `/gettransactions` no longer does expensive no-ops for ALL pool txs
if the client requests a subset of pool txs. Instead it searches for
the txs the client explicitly requests.
- Reset `m_pool_info_query_time` when a user:
  (1) rescans the chain (so the wallet re-requests the whole pool)
  (2) changes the daemon their wallets points to (a new daemon would
      have a different view of the pool)
- `/getblocks.bin` respects the `req.prune` field when returning
pool txs.
- Pool extension fields in response to `/getblocks.bin` are optional
with default 0'd values.
</content>
</entry>
<entry>
<title>wallet2, RPC: Optimize RPC calls for periodic refresh from 3 down to 1 call [release-v0.18]</title>
<updated>2023-07-09T06:30:53Z</updated>
<author>
<name>rbrunner7</name>
<email>rbrunner@dreamshare.ch</email>
</author>
<published>2021-11-21T16:40:50Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=23f782b21113035b57e4560d6a9b522ac1f03cca'/>
<id>urn:sha1:23f782b21113035b57e4560d6a9b522ac1f03cca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cryptonote core/protocol: don't drop peers for soft offenses</title>
<updated>2023-03-29T07:07:15Z</updated>
<author>
<name>jeffro256</name>
<email>jeffro256@tutanota.com</email>
</author>
<published>2023-03-27T21:32:47Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=059b975388f346a4243273a75d86c16fd8e6990d'/>
<id>urn:sha1:059b975388f346a4243273a75d86c16fd8e6990d</id>
<content type='text'>
Also: txs with tx_extra which is too large will not get published to ZMQ

Co-authored-by: SChernykh &lt;sergey.v.chernykh@gmail.com&gt;
</content>
</entry>
</feed>
