Skip to content

Conversation

@UdjinM6
Copy link

@UdjinM6 UdjinM6 commented Oct 31, 2019

I noticed that ApproximateBestSubset picks quite suboptimal sets of coins sometimes. This isn't a big deal for regular txes with some random amounts but for PS txes this means that instead of picking say 2x0.1 it's quite common to have 1x0.1 and 10x0.01 i.e. 11 inputs instead of just two. Doing so not only spams blockchain with needlessly oversized txes but can also degrade user privacy. ae2f68d fixes this by picking subsets with less inputs for the same amounts.

Also, we do not allow any change outputs for PS txes, so running ApproximateBestSubset twice makes no sense and we can save some cpu here (5d89b84).

@UdjinM6 UdjinM6 added this to the 14.1 milestone Oct 31, 2019
Copy link

@codablock codablock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See inline comments.

Copy link

@codablock codablock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

@UdjinM6 UdjinM6 merged commit 251fb5e into dashpay:develop Nov 4, 2019
codablock pushed a commit to codablock/dash that referenced this pull request Nov 19, 2019
…shpay#3184)

* From 2 best sets with the same `nTotal` in ApproximateBestSubset prefer the one with less inputs

* There is no reason to run ApproximateBestSubset again if nMinChange is 0

* Apply review suggestions
MIPPL pushed a commit to biblepay/biblepay that referenced this pull request Nov 24, 2019
* commit '8b14adb206d76fbc6307385999a1c512052e93fa': (21 commits)
  [v0.14.0.x] Update release notes with change log (dashpay#3213)
  [v0.14.0.x] Bump version to 0.14.0.4 and draft release notes (dashpay#3203)
  Circumvent BIP69 sorting in fundrawtransaction.py test (dashpay#3100)
  Fix compile issues
  Merge bitcoin#11397: net: Improve and document SOCKS code
  Slightly optimize ApproximateBestSubset and its usage for PS txes (dashpay#3184)
  Update activemn if protx info changed (dashpay#3176)
  Actually update spent index on DisconnectBlock (dashpay#3167)
  Only track last seen time instead of first and last seen time (dashpay#3165)
  Merge bitcoin#17118: build: depends macOS: point --sysroot to SDK (dashpay#3161)
  Simulate BlockConnected/BlockDisconnected for PS caches
  Few fixes related to SelectCoinsGroupedByAddresses (dashpay#3144)
  Various fixes for mixing queues (dashpay#3138)
  Also consider txindex for transactions in AlreadyHave() (dashpay#3126)
  Ignore recent rejects filter for locked txes (dashpay#3124)
  Make orphan TX map limiting dependent on total TX size instead of TX count (dashpay#3121)
  Update/modernize macOS plist (dashpay#3074)
  Fix bip69 vs change position issue (dashpay#3063)
  Partially revert 3061 (dashpay#3150)
  Fix SelectCoinsMinConf to allow instant respends (dashpay#3061)
  ...

# Conflicts:
#	configure.ac
#	doc/man/biblepay-cli.1
#	doc/man/biblepay-qt.1
#	doc/man/biblepay-tx.1
#	doc/man/biblepayd.1
#	doc/release-notes.md
#	src/clientversion.h
#	src/wallet/wallet.cpp
FornaxA pushed a commit to ioncoincore/ion that referenced this pull request Dec 3, 2019
…shpay#3184)

* From 2 best sets with the same `nTotal` in ApproximateBestSubset prefer the one with less inputs

* There is no reason to run ApproximateBestSubset again if nMinChange is 0

* Apply review suggestions
@UdjinM6 UdjinM6 deleted the tweakbestsubset branch November 26, 2020 13:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants