-
Notifications
You must be signed in to change notification settings - Fork 204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Just 1st dispenser dispenses when batch-sending sats to multiple dispensers #1148
Comments
bump... will get this fixed in the next release. |
This issue should be fixed with PR #1222 |
Forum thread to discuss benefits, costs and risks of implementing this. https://forums.counterparty.io/t/batch-sending-to-multiple-dispensers/6499 |
closing.. update will be in upcoming release 9.60.3 |
My concerns have not been answered. This is a new feature with tradeoffs, not a bug fix. Should go through the CIP process. |
IMO this is an improvement to CP which the community has been asking for quite a while, and should not be held up because we need more discussions and testing. This PR has been ready for 8+ months, so ample time has been given to do testing of this PR and raise any objections, performance or otherwise. As to addressing your concerns / risks :
Respectfully disagree that this should go through the CIP process. Simpler changes like this should not require a full CIP and lengthy discussions that last many months. |
Thanks for clarifying these concerns but several more factors need to be considered:
I question whether those calling for batch-sending to dispensers have been aware of the tradeoffs. Since the effects on Counterparty are significant, a CIP is needed in my opinion. |
Why is a single person deciding this? We need MULTIPLE people agreeing to what should go into the next release. And even before the release, what gets actually MERGED to master. |
This is a valid concern. I spent some time doing a quick parse of 1,000 blocks on 9.60.2 and 9.60.3 on the same machine, so we are looking at a fair parsing comparison. v9.60.2 - 1,000 Block - Parse #1
Total Parse Time : 2,362.03 Seconds (39.36 mins) v9.60.3 - 1,000 Block - Parse #1
Total Parse Time : 2,242.20 Seconds (37.37 mins) The 9.60.3 release appears to parse blocks and transactions FASTER than 9.60.2.... Over 1,000 blocks, 2 minutes of parsing time was saved. I'm re-running this test again to verify the results (and will post here), but it seems like enabling parsing of all outputs does not add any significant amount of processing time. I hope this addresses your performance concerns. Updatev9.60.2 - 1,000 Block - Parse #2
Total Parse Time : 2,339.86 Seconds (38.99 mins) v9.60.3 - 1,000 Block - Parse #2
Total Parse Time : 2,264.44 Seconds (37.74 mins) Second parse confirms 9.60.3 still parses a bit faster than 9.60.2 |
Thank you for doing this test. Can conclude that parsing won't slow down. I'm still concerned of bloating due to low marginal cost though. I checked tx sizes on testnet: Now it takes 222 vbytes to trigger a dispense from a classic address, and 141 vbytes from a segwit address (assuming one input and two outputs; for dispense and for change). With the upgrade the marginal cost will drop to 31 vbytes for either address type. Another concern comes to mind - multiple dispensers on the same address. This is a useful feature for selling a bundle of cards. However, it also means that a 141 vbytes send can trigger N dispenses. With the upgrade the cost drops to 31 vbytes. I don't think there's currently a limit to N. A limit should be considered whether or not we implement batch-sending. One more concern - if you send from address A and change is returned to A, will this trigger dispenses from A? |
No, change outputs do not trigger dispenses. Dispenses can not be triggered by the dispenser address.... we explicitly ignore any outputs (change or otherwise) where the address == dispenser address. |
This is the transaction (generated with a simple blue wallet)
https://blockstream.info/tx/11eb2b730e2e383a657c51d7b04bd55271d1e86ac9a2c74d3e3f6c78e88e23ff
where correct exact sats were sent to 5 different dispensers that all, even after tx confirmation, still had available assets to dispense
can see here just 1st issued https://xchain.io/tx/11eb2b730e2e383a657c51d7b04bd55271d1e86ac9a2c74d3e3f6c78e88e23ff
here are each of 5 dispensers in order of utxo output numbers (blockheight of tx = 719244):
n5 is change
suggestion: as this might be current consensus rule if not just me misundersatnding, might suggest devs warnings not to batch as batching is now part of bluewallet and samourai wallet for starters and saves a lot on fees. it would seem obvious from address is same for each spend to dispenser that each would credit that address but it doesn't appear yet to be the case.
The text was updated successfully, but these errors were encountered: