-
Notifications
You must be signed in to change notification settings - Fork 58
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
expose 'split' and 'merge' in GUI #50
Comments
As per our previous conversation, I 100% agree. If you can get together a method that accurately shoots for efficiency based on output size and difficulty; I am all for such a change. You seem to have the best grasp on the 'coinDays' v. diff. math. I think that exposing it to the GUI such that users can deviate from that "reasonable default" if they choose is also a great idea. A "no brainer", as they say. |
Even without the lottery this seems like a worthwhile improvement. I'll also see about bringing in the novacoin rpc functions for splitting up inputs. It will give a simple console based option as well |
I was going to put this in a release before but scrapped the code at the last second. I have a nice algorithm to split the piles evenly while appending change to the last output. We can set a max "split" tx amount if we want as well. I think having this as a checkbox option (off by default) would be wise, like coin control. Here's the splitting portion of the code in wallet.cpp, It's tested: |
It looks good to me, although you should use nSplitSize instead of a local SPLIT_AMOUNT as dooglus added in a way to set the size to spilt in the conf / passing it as an option. |
Actually, after looking again it looks like dooglus already handled the algo as well https://github.com/nochowderforyou/clams/blob/1.4.3.2/src/wallet.cpp#L2077-L2097 All that need to be done it looks like is extending it to QT oh, and completely the merge part of it. |
for that it seem all that needs to be done is exposing GetStakeCombineThreshold() https://github.com/nochowderforyou/clams/blob/1.4.3.2/src/wallet.cpp#L35 |
Merging the GUI exposure part of this issue into #208. Closing. |
The client will currently split an output if it stakes within 28 hours of its most recent transaction (previous stake, or previous movement) regardless of the size of the output. It could be a tiny output that just happened to get lucky. I would argue that such an output doesn't need splitting.
It will also re-merge those split outputs the next time either of them stakes if they are both less than 1000 CLAMs.
This results in split - merge - split - merge cycles.
The re-merging is particularly annoying, since it destroys the age of two outputs at once, while only providing a single reward.
We should:
make the split and merge happen based on output size and current difficulty, rather than the random luck of a particular output
expose the thresholds for split and merge (however the end up after 1) above) in the GUI and RPC interface
set reasonable defaults - probably with 'merge' disabled by default
The text was updated successfully, but these errors were encountered: