Fixed total payout for liquidity providers to enhance liquidity security and pool operation

I gotta say, itā€™s pretty sweet to be the original LP on a pool. Iā€™m making over 8 cents an hour on less than $10. Well, hypothetically anyway.

Be glad about your head start. Will be there quite soonTM :wink:

I should trademark ā€˜nowā€™.

BTW Iā€™m afk, but feel free to play around client side. I only changed a few key lines in the ā€˜creditā€™ subroutine of server.py, so you should be able to use the standard client without issue.

Iā€™ve already updated https://github.com/Lamz0rNewb/alp-collection/tree/experimental/unix to make it easier for others to play with the new pool :wink:

Looks like this so far:

2015/09/13-19:36:48 INFO: starting PyBot for cny on bter
2015/09/13-19:36:49 INFO: successfully deleted all orders for cny on bter
2015/09/13-19:36:49 INFO: waiting 10.58 seconds to synchronize with other trading bots for cny on bter
2015/09/13-19:37:03 INFO: successfully placed ask cny order of 20.9000 nbt at 6.40774792 on bter
2015/09/13-19:37:48 INFO: bter - balance: 0.00000000 rate: 0.00% ppm: 0.00000000 efficiency: 95.00% rejects: 0 missings: 1 - APIKEY
2015/09/13-19:38:48 INFO: bter - balance: 0.00075569 rate: 6.51% ppm: 0.00094461 efficiency: 95.00% rejects: 1 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:39:48 INFO: bter - balance: 0.00167528 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:40:48 INFO: bter - balance: 0.00261988 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:41:48 INFO: bter - balance: 0.00356449 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:42:48 INFO: bter - balance: 0.00450910 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:43:48 INFO: bter - balance: 0.00545371 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:44:48 INFO: bter - balance: 0.00639831 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:45:49 INFO: bter - balance: 0.00734292 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY
2015/09/13-19:46:49 INFO: bter - balance: 0.00828753 rate: 6.51% ppm: 0.00094461 efficiency: 100.00% rejects: 0 missings: 0 - cny - ask: 20.9000 x 6.51% - APIKEY

The rate of 6.51% is the expected daily reward, right?
If I try to derive the (expected) daily compensation from the ppm of 0.00094461, I get 1.3602384. And 1.3602384/20.9 = 0.06508, which is 6.51%.
Nice output!
I need more money on that pool! :stuck_out_tongue:

Did you ever try to rename a github project?
I think Iā€™d like to change it to alp-collection.
Letā€™s try. If I mess it up, I go crying. If not, Iā€™ll update the link above.
ninjaedit: it worked. we now have a alp-collection github project :slight_smile:

2 Likes

Disclaimer or whatever: this pool will never pay out and any funds you lose are your problem.

20.9+9.83=30.73
2/(30.732460)*20.9=0.0009446

(I.e. it worked!)

1 Like

That was clear. I was just trying to make fun when I wrote

I think the :stuck_out_tongue: made that clearā€¦

Your adjustments seem to have worked. Great!
The alp-collection is up-to-date, albeit not really tested. But hey, itā€™s in the experimental branch :wink:
Looks like I hijack the test of the fixed rate pool to have the alp collection tested as well :sunglasses:

1 Like

You guys are fast. Will test it in a day or so.

My zero-rate offer is constantly declined.

weird. Youā€™re saying because the pool is full? Have you tried using like interest=0.000000001? Itā€™s supposed to take the cheapest liquidity first.

Anyway, thatā€™s actually one of the reasons I really like this setup: itā€™s actually less buggy. When a pool reaches target it does all sorts of weird stuff. By lifting the target, we are able to have a lot smoother of an experience.

The biggest concern I have is that Iā€™m worried thereā€™ll be a bug in the program and itā€™ll pay out a high rate to a bunch of people. I donā€™t think that should happen, but only testing will tell I guess.

Edit: Speaking of bugs, I got a seg-fault and server.py killed itself. I donā€™t know why, nothing in the logs or anything. Iā€™ll figure it out at some point maybe. It may have run out of memory; Nud is such a pig.

In the initial trial period maybe one can run the old and the new setups in paralell, letting the new one dry-run (with liquidity info feed, calc everyoneā€™s balance, but donā€™t actually pay).
Then switch to the new one but make actual payment tx like every week so there will be enough time to watch how things go.

1 Like

I was basically planning on doing exactly that (without the liquidity info though, Iā€™m not feeding this a custodial address without a grant). A user could theoretically get credited on both pools if they both were shareholder funded at the same time.

But yah, I have it up and running to play around. Again, this was a super quick bandaid fixup just to see how it goes. If it looks like thereā€™s interest, Iā€™ll mess around with it more. Iā€™m hoping I donā€™t get any more of those seg faults.

This is gonna end up being a can of worms, but I think itā€™s worth pointing out that this method exacerbates the ā€˜switchingā€™ issue. The switching issue is such that if the peg is unbalanced it will cause providers to start trying to switch to the other side of the peg using the peg itself, causing LPs to burn up all their funds to exchange fees. Itā€™s a phenomenon we havenā€™t really seen, but was talked about theoretically a while back. Creon came up with one of my favorite solutions to the problem:

We may be able to ignore this issue unless we start seeing it happen.

Why does the method exacerbates the ā€˜switchingā€™ issue?

@creonā€™s method also discourages someone to convert NBT to USD not using the peg, e.g. selling NBT for BTC then sellling BTC for USD.

@creon really put a lot of thinking into TLLP.

Letā€™s make some names. Fixed Reward ALPā€™s are the normal kind and Fixed Cost ALPā€™s are this new method, OK?

So a fixed reward pool that hasnā€™t reached target on either side has no switching problem because the incentives on both sides of the pool are the same. Dutch auction and Fixed Cost models both have asymmetric rewards when competition on the two sides of the pool is drastically (or permanently) different. There is very little preventing an LP from selling to another LP the moment they buy nbt of the rate is different enough. That causes the LPā€™s to play hot potato.

Youā€™re right that creonā€™s idea isnā€™t really a solution either. The best solution is to keep a moderate peg spread and to try to keep global buy and sell side balanced so that competition on the two sides of the peg are similar. The unseeded auction will help with that by providing buy/sell side network rebalancing on the order of days.

OK got it.

Obviously and the ALP (formerly known as TLLP) software runs remarkably well.
He was a brilliant mind, which others also recognized:

But be was a kind of rebel as well.
As much trouble as it might make to integrate the thoughts and work of rebels as much might this kind of thinking be required if Nu wants to become big.
We need controversial thoughts and discussion.
I believe only that way Nu can work and grow sustainably.

Iā€™m glad that @Nagalim follows the footsteps of @creon!

1 Like

So the server restarted for some stupid reason last night. The funny thing is, I reboot it this morning and now Iā€™m the only one running on the pool. Rewarded for providing a shitty service, hell ya!

Iā€™m pretty satisfied with the implementation at this point. Itā€™s not an amazing piece of code, but it leaves basically the entire bot intact. The operator can even set a target at which dutch auction takes effect.

If I can get 2 testers other than me for a few days Iā€™ll test btc/nbt for a bit and post a motion. And if you like big numbers registered on a server with no true value, boy have I got a deal for you! Weā€™re now crediting 7.5 Imaginary NBT per day per side!

Disclaimer: Nothing is real.

1 Like

Can you or @masterOfDisaster point to me the best pool client for switching between NuPond fixed cost, LiquitBits, and NuStream? I think I am using @masterOfDisasterā€™s NuPond fork but I am not sure (how do I find out? README.md doesnā€™t tell) I tried several version a while ago.

For fixed cost pool to work optimally when liquidity is low, it is best if LPs from other pools can jump in easily.

Itā€™s super easy. If youā€™re already running on Bterā€™s CNY pool, just change the ā€˜serverā€™ parameter at the bottom of the config file from NuPond:3333 to:

45.55.55.197:3333

I can recommend to try the experimental branch of by ā€œALP collectionā€:

It contains a collection of all ALP operations Iā€™m aware of, e.g. the windows and the unix version of this pool (including recommended settings for offfset, server settings etc.).
But this obviously just a shameless plug, because @Nagalim is right with his last statement.

ninjaedit: I just checked my ALP bot on the fixed pool and it looked strange. I restarted the bot and it still looks like:

2015/09/16-04:06:15 INFO: starting PyBot for cny on bter
2015/09/16-04:06:16 INFO: successfully deleted all orders for cny on bter
2015/09/16-04:06:16 INFO: waiting 13.45 seconds to synchronize with other trading bots for cny on bter
2015/09/16-04:06:32 INFO: successfully placed ask cny order of 20.9000 nbt at 7.23150780 on bter
2015/09/16-04:07:15 INFO: bter - balance: 0.00000000 rate: 0.00% ppm: 0.00000000 efficiency: 0.00% rejects: 0 missings: 0 - 
[...]