mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
be6a045b8c
9e1cb1adf1800efe429e348650931f2669b0d2c0 [trivial/doc] Fix comment type (Amiti Uttarwar)
8f30260a67166a6ab7c0f33f7ec1990d3c31761e [doc] Update unbroadcast description in RPC results (Amiti Uttarwar)
750456d6f29c63d57af05bfbdd6035bb9c965de2 [trivial] Remove misleading 'const' (Amiti Uttarwar)
fa32e676e5833a5c5fc735ef00c0a80f5fab7a2c [test] Manage node connections better in mempool persist test (Amiti Uttarwar)
1f94bb0c744a103b633c1051e8fbc01e612097dc [doc] Provide rationale for randomization in scheduling. (Amiti Uttarwar)
9c8a55d9cb0ec73f10b196e79b637aa601c0a6b7 [mempool] Don't throw expected error message when upgrading (Amiti Uttarwar)
ba5498318233ab81decbc585e9619d8ffe2df1b0 [test] Test that wallet transactions aren't rebroadcast before 12 hours (Amiti Uttarwar)
00d44a534b4e5ae249b8011360c6b0f7dc731581 [test] P2P connection behavior should meet expectations (Amiti Uttarwar)
bd093ca15de762fdaf0937a0877d17b0c2bce16e [test] updates to unbroadcast test (Amiti Uttarwar)
dab298d9ab5a5a41685f437db9081fa7b395fa73 [docs] add release notes (Amiti Uttarwar)
Pull request description:
This PR is a follow up to #18038 which introduced the idea of an unbroadcast set & focuses mostly on documentation updates and test fixes. One small functionality update to not throw an expected error in `LoadMempool` when you upgrade software versions.
#18895 is another follow up to that addresses other functionality updates.
Background context:
The unbroadcast set is a mechanism for the mempool to track locally submitted transactions (via wallet or RPC). The node does a best-effort of delivering the transactions to the network via retries every 10-15 minutes until either a `GETDATA` is received or the transaction is removed from the mempool.
ACKs for top commit:
MarcoFalke:
ACK 9e1cb1adf1 👁
gzhao408:
ACK [`9e1cb1a`](9e1cb1adf1
)
Tree-SHA512: 0cd51c4ca368b9dce92d50d73ec6e9df278a259e609eef2858f24cb8595ad07acc3db781d9eb0c351715f18fca5a2b4526838981fdb34a522427e9dc868bdaa6
34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
P2P and network changes
|
|
-----------------------
|
|
|
|
- The mempool now tracks whether transactions submitted via the wallet or RPCs
|
|
have been successfully broadcast. Every 10-15 minutes, the node will try to
|
|
announce unbroadcast transactions until a peer requests it via a `getdata`
|
|
message or the transaction is removed from the mempool for other reasons.
|
|
The node will not track the broadcast status of transactions submitted to the
|
|
node using P2P relay. This version reduces the initial broadcast guarantees
|
|
for wallet transactions submitted via P2P to a node running the wallet. (#18038)
|
|
|
|
Updated RPCs
|
|
------------
|
|
|
|
- `getmempoolinfo` now returns an additional `unbroadcastcount` field. The
|
|
mempool tracks locally submitted transactions until their initial broadcast
|
|
is acknowledged by a peer. This field returns the count of transactions
|
|
waiting for acknowledgement.
|
|
|
|
- Mempool RPCs such as `getmempoolentry` and `getrawmempool` with
|
|
`verbose=true` now return an additional `unbroadcast` field. This indicates
|
|
whether initial broadcast of the transaction has been acknowledged by a
|
|
peer. `getmempoolancestors` and `getmempooldescendants` are also updated.
|
|
|
|
Wallet
|
|
------
|
|
|
|
- To improve wallet privacy, the frequency of wallet rebroadcast attempts is
|
|
reduced from approximately once every 15 minutes to once every 12-36 hours.
|
|
To maintain a similar level of guarantee for initial broadcast of wallet
|
|
transactions, the mempool tracks these transactions as a part of the newly
|
|
introduced unbroadcast set. See the "P2P and network changes" section for
|
|
more information on the unbroadcast set. (#18038)
|