Trust-less liquidity pool

Up again and issue fixed, will also release a small client update within the next hour which should handle tier 2 <-> tier 1 movements better. Thanks for your patience.

1 Like

up and running.
by the way I forgot what is the rate displayed in the stats output by clients.py …

I asked for 1% of minimal rate on each side in users.dat but the command line outputs sometimes 0.37%, sometimes 0% sometimes 1.66% …

The rate is the effective interest rate, which is the payout you got divided by the total amount of NBT in your orders. If someone offers liquidity for a better interest rate (and the pool is above the target which currently almost always is the case), then the pool will compensate fewer of your orders and your effective interest rate will go down. Your client then should remove these funds from the order book (tier 1 -> tier 2) which will lead to an increased effective interest rate again.

Currently there are still some teething problems of the client behavior, but with the coming client update I hope that we are pretty close to the scenario described above.

1 Like

OK here we go: https://github.com/creon-nu/nu-pool/releases/tag/0.23

This client update greatly increases the client’s performance in setting the optimal amount of funds into tier 1 liquidity and also fixes some bugs in the client behavior. Its still not perfect yet but works quite well. The update is not mandatory though, but recommended.

A lot of competition is building up on some exchanges. Remember that, assuming the modified system works correctly, you can really specify the minimal interest you are willing to get - the server will always pay the maximal interest possible for you. There is no need to tune this parameter.

Enjoy!

2 Likes

Experiencing some issue with the Bitfinex and Coinbase ticker. It keeps on resetting my order due to apparent deviation. It now decreased my tier 1 bid limit to 0.5. Very interesting. Is this expected behaviour?

Edit: I think I managed to break it :wink:
2015/03/24-20:58:02 INFO: ccedk - balance: 0.00000000 rate 0.00% efficiency: 100
.00% rejects: 0 missing: 0 units: {u’btc’: {u’rejects’: 0, u’last_error’: u’’, u
’bid’: [], u’missing’: 0, u’rate’: {u’ask’: 0.0, u’bid’: 0.0}, u’ask’: []}} - 34
KMMPXUTR27EEDAFXWOZJRLR2ERHIC218ZVXDTQQE6YW1EO8W94ECVZ9YIK3B1S
Exception in thread Thread-2:
Traceback (most recent call last):
File “C:\Program Files (x86)\Python279\lib\threading.py”, line 810, in __boots
trap_inner
self.run()
File “X:\temp\NuBits\Order bot Nubits\nu-pool-0.23\nu-pool-0.23\python\trading
.py”, line 251, in run
elif self.limit[side] == 0 and contrib / weight > 0.95:
ZeroDivisionError: integer division or modulo by zero

I am on the last update.
efficiency 0%, rate 0% right now.

Thanks, fixed that. Please update your repository or download the fixed version from here: https://github.com/creon-nu/nu-pool/releases/tag/0.24

On CCEDK? I had the same when I just got on my computer. In my case it was only CCEDK and I had to kill the client to make functional again. I’ll look into it.

Can scroll a bit up and see when this started? Did it say anything unusual before efficiency dropped to 0%?

Hi,

the bug @Cybnate pointed to also lead to the problem that the client doesn’t close correctly on CTRL+C. Please update to the most recent client to avoid this problem: https://github.com/creon-nu/nu-pool/releases/tag/0.25

If you now have a client running on linux and you cannot close it, you can run ps aux | grep client.py. Look up your running client and kill the corresponding process ID (second column) by using kill <procid>

Let me know if you have trouble with this. On Windows I assume that you can just close the terminal. Note that through the crash there might still be orders on an exchange which didn’t get removed so better check for those (you can just start the new client and it will remove those orders if it finds any)

server appears to be down

I am restarting it quite often but its actually running for the last 30 minutes. CCEDK had some nonce problems in my client, but this also seems to be resolved now.

Are you getting server errors or 0% efficiency? On what exchange?

EDIT: Just saw your message is 20 minutes ago, so it might have just been a server restart … there might be another one later but your client should reconnect automatically and restart trading activity if suspended.

I noticed a bug through which the server compensated more liquidity than configured - this is fixed now, which may be a bad message for you but I also increased the target on each side of each exchange to 25 NBT now. Some interesting competition is already forming up and I think 0.25% daily interest rate will soon be the entry level.

I also tweaked the client to deal better with the new exchange information provided by the server. Please update your repository or download the new version from here:

https://github.com/creon-nu/nu-pool/releases/tag/0.26

Thanks, and have a good night!

Sorry I shut down the window before I could check.
I updated to the latest version.
It seems to be running fine now.
Yes I am on ccedk.

By the way, I will study a bit more precisely how the minimal interest rate setting works but not specifying any minimum rate gets you on the top of the list of contributors that would get rewarded.
If several contributors specify no rate, the first rewarded is the one that has started clients.py the soonest timestamp wise.
Am I correct?

On a less important note, specifying nubot does not get the process put any orders it seems.

I get no response from the server. 104.245.36.10 is not answering ping.

Mine is running and responding.

Strange. To me it was like unplugged.
ERROR: /status: socket error (10061), retr...
I can access other things alright.

mine is running fine .

Rule R)

I am not sure if it holds all the time .

Let us assume that the target liquidity on buy side is 20NBT at 5% daily interest.

  1. A offers 5NBT at 2% minimum interest
  2. B offers 5NBT at 3% minimum interest
  3. C offers 15NBT at 4% minimum interest

5+5+15=25NBT
So there is a competition for 5NBT.

A will get 3% interest on 5NBT and 5% interest on 0NBT
B will get 4% interest on 5NBT and 5% interest on 0NBT
C will get 5% on 10NBT

Now A change its minimal rate from 2 to 3%
In this setting,
A will get now 4% on 5NBT and 5% interest on 0NBT
B will get 4% on 5NBT and 5% interest on 0NBT
C will get 5% on 10NBT

We can see that A has increased its payout by increasing its minimal rate.
Which contradicts R.

Am I correct?

In the first scenario A would get 3% * 5 NBT, B would get 5% * 5 NBT and C would get 5% * 10 NBT + 0% * 5 NBT. B would get 5% instead of for because the residual of 5 NBT was completely delivered by A and the remaining target wil be paid with the pool’s maximum.

But yeah, in the second example A and B then both would get 4% on their 5 NBT each and C would get 10 NBT compensated at 5%. … grrr, but thanks so much for giving it some thoughts!

I really start to have doubts in my mathematical abilities because this problem in general must have been solved numerous times in finance. I’ll continue calculating, if something comes to your mind, please let me know.

1 Like