Thanks smooth. What size do you suggest? Can this be used for other POS coins in thier conf files ?
How do I know what the "threshold" size is? I feel like I just learned magic lol
The only reason to split your outputs up into smaller sizes is that when an output stakes it is unable to stake again for the next 500 blocks (about 8 hours). If you only have a single output that means your whole balance is sitting idle for 8 hours each time you stake.
If instead you have your balance split up into 100 separate pieces then when one of them stakes only that one will be sitting idle for 8 hours and the other 99 will continue trying to stake.
From this point of view you would want to split your balance up into as many small pieces as possible. But there are a few reasons not to split too much:
1) you have to pay a transaction fee when creating the split outputs which is proportional to the number of outputs you create
2) you also have to pay a transaction fee when spending the outputs; again it is proportional to the number of outputs you are spending
3) there is a limit on maximum transaction size of 100kB; this can make it impossible to spend all your split outputs in a single transaction if you have lots of them
4) every 16 seconds your wallet has to check each output in your wallet to see if it can stake yet; if you have too many it can take more than 16 seconds to check them all, and so you miss out on staking chances
I find I can check about 100k outputs per 16 seconds on a single CPU.
As a rule of thumb I try to keep my outputs at around 30 CLAM each. That way I expect to have about 1% of my wallet balance sitting idle at any time. I estimate that each 1000 CLAMs stakes about once per day, so each 3000 CLAMs stakes about once per 8 hours, and so each 30 CLAMs stakes about once per 800 hours, meaning that 1% is expected to be idle at any time.
Finally, notice that in addition to splitsize=N, you can also set combinelimit=N. That will cause the wallet to combine small inputs together when they stake, up to the specified size.
I am currently using:
splitsize=20
combinelimit=40
Meaning that when a 39 CLAM output stakes it is split into two 20 CLAM outputs, and when a 15 CLAM output stakes it will be combined with any other small outputs to make an output of size 40 CLAM or less. This way I always have a population of outputs between 20 and 40 CLAM in size without having to micro-manage them myself.