Skip to content
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

wallet: reroll fake outs selection on local tx_sanity_check failure #6289

Merged
merged 1 commit into from Mar 27, 2020

Conversation

xiphon
Copy link
Contributor

@xiphon xiphon commented Jan 10, 2020

No description provided.

@moneromooo-monero
Copy link
Collaborator

Does this reuse the fake outs it requested on the first attempt (the wallet asks for more than it needs in the first place in case some are not usable) ?

@xiphon xiphon force-pushed the wallet-tx-sanity-check branch 2 times, most recently from 08aae15 to 433a5cc Compare January 13, 2020 21:31
@xiphon
Copy link
Contributor Author

xiphon commented Jan 13, 2020

Does this reuse the fake outs it requested on the first attempt (the wallet asks for more than it needs in the first place in case some are not usable) ?

Updated. Have to clear ringdb and outs cache on failed tx sanity check to force fetching new fake outs on the next attempt.

That said if generated tx passes sanity check, the following transfer_selected_rct call will reuse the outs.

Does this cover the case you mentioned? If not, could you please provide more details.

@moneromooo-monero
Copy link
Collaborator

It should not fetch new outputs, unless it really needs to. My point is that since it already requests more outputs than necessary from the daemon, it should not request other outputs if it can rearrange its pick from the outputs it already has. Failing that, it should ask additional outputs (rather than a full replacement) to avoid the daemon being able to tell which output is the real spend.

@xiphon xiphon changed the title wallet: reroll fake outs on local tx_sanity_check failure (RingCT) wallet: reroll fake outs selection on local tx_sanity_check failure Jan 14, 2020
@xiphon
Copy link
Contributor Author

xiphon commented Jan 14, 2020

Updated. Attempts to reroll fake outputs from the same outputs set it initially received from the daemon.

@moneromooo-monero
Copy link
Collaborator

Are you sure ? The top level loop calls get_outs repeatedly (if the sanity check fails) and the first thing get_outs does is clear the outs, and will call the daemon again to get outputs. What am I missing ?

@xiphon
Copy link
Contributor Author

xiphon commented Jan 14, 2020

get_outs clears previously selected outs that were picked from rct_offsets, rct_offsets is outputs set the daemon returned on the first get_outs call and it doesn't get updated during all the attempts (see line 7809)

@moneromooo-monero
Copy link
Collaborator

Great. I thought rct_offets were the per block distribution on reading. All good then, thanks.

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.

None yet

3 participants