[Passed] A grant to make NuBot work with Liquidity Pools

Motion hash verified; Hashed this:

<motionhash><p><code>=##=##=##=##=##=## Motion hash starts with this line ##=##=##=##=##=##=</code></p><p><motiontext><h2>TL;DR</h2><p>I'm asking for 1216 NBT custodian grant to fund development of NuBot 0.4.1 that has as main feature the integration with ALP server.</p><p>I will also be using 1783 NBT I collected one year ago for a different purpose to fund development.</p><p>The grant will be assigned to a 2-of-3 multisig address controlled by @masterOfDisaster @erasmospunk and @woolly_sammoth  that will act as intermediary for the payment and verifications. If any funds are left after development, they will be burned.</p><hr><h2>Grant request </h2><pre><code>Currency : NBTAmount : 1216Public address (multisig) : Bdoa6XJzzfFrMgwysASZGmvSMoXGPmQD6R</code></pre><hr><h2>Rationale</h2><p>In the last months our liquidity provision software grew along two independent branches : on one hand we have seen TLLP/ALP development bringing a huge degree of innovation to our markets and opening up a whole new generation of distributed/pooled liquidity providers.  On the other hand we have seen [continued development][1], new features and more stability built into NuBot, our core liquidity provision client.</p><p>So we have these two solid pieces of infrastructure in place : the ALP server and the NuBot client. But there is a problem : now they don't talk to each other.</p><p>NuBot's sophistication could lift the standards of our liquidity operations (price feeds, parametric books, reports, run as a service... )  and the full potential can be unleashed when we let user's provide liquidity in a pooled/distributed fashion using ALP servers. This integration is feasible with very little effort when compared to how much effort has been put into these two components so far.  Both NuBot and ALP architecture are API-ready and it's both my opinion and @woolly_sammoth that integration is a no-brainer. It's time for us to exploit this potential and orchestrate a plan that finally optimises the uses of our limited resources.</p><p>Improving the ALP server (its currently being rewritten from scratch) and moving away from the need of maintaining and continuously catch up the current python script originally written by creon its the way forward, imho.</p><hr><h2>Why a grant?</h2><p>It's about time we start trying to move away from a centralised book-keeping approach that puts all the burden and decision making on the shoulder of one person. @JordanLee  seems to agree that this is the way to go, and indeed this is a good candidate to be one of [the roles that should be filled by shareholders][2] .</p><p>As I already expressed in [this long post][3], I expect an hybrid model to emerge, where Shareholders can elect/replace an "human resource"  committee.  This grant is the first step in that direction, and its amount is small enough that will give us the time to learn and correct from mistakes.</p><hr><h2>How will this grant work? </h2><p>The NBT grant will be used to compensate the development effort for NuBot 0.4.1.  A first plan have been already been laid down by myself and @woolly_sammoth and a milestone has been created on bitbucket, where you can see [open issues][4]. As you can see the great majority of open issues are strictly related to NuBot/ALP integration, with only a minority of low-priority features that I believe can be packed together with the 0.4.1 release.</p><p>The NBT address, receiver of this grant is not controlled by myself : it's a 2-of-3 multisig address controlled by three shareholders (@masterOfDisaster, @erasmospunk and @woolly_sammoth) that volunteered to act as intermediary.  They responsibility includes, and might not be limited to :</p><ul><li>Create the multisig address and store its private key safely for the duration of the development period</li><li>Receive the funds</li><li>Verify deliverables (NuBot 0.4.1 working as expected) </li><li>Pay contributors </li><li>Burn leftover funds, in case devs used less than originally asked for (3000 total). </li></ul><p>They will act as a micro HR department and a shield between development and shareholders.  As this will be hopefully a small sprint (in the order of 1 month) the payment will be executed at the end, instead that having fractional payments.</p><p>The multi-sig custodians will keep 60 NBT for themselves (20 each) as a symbolic non-zero compensation for their time and responsibility.</p><hr><h2>Integrating with other funds</h2><p>To reduce the stress derived from creating new currency, I will integrate the amount of this grant with other funds to pay for development .</p><p>As you should already know I am still holding [1,783 NBT][5] on behalf of some shareholder (myself included ...)  that decided to [re-invest some dividends in Nu][6] one year ago. Despite the original purpose of the fund was different from funding NuBot development, the scenario changed radically since November 2014, and as I explain the the dedicate thread, I decided this is a good place to invest them now.</p><p>I will transfer 1783 NBT to the multi-sig address used for this grant, as soon as this grant passes, so that funds can be used for funding development of 0.4.1 .</p><p>The total amount I will be using to develop NuBot 0.4.1 is therefore capped to about 3000 NBT ( 1783 + 1216 ).  As outlined above, if I can complete development using less budget, the leftover will be burned by multi-sig custodians.</p></motiontext></p><p><code>=##=##=##=##=##=## Motion hash ends with this line ##=##=##=##=##=##=</code></p></motionhash>

http://www.conversion-tool.com/ripemd160 and

156b9dc4c2c352cd1b0d294282f29d0cf0526b4f and

I tried it on my RaspberryPi as well, but putting all from <motionhash> to </motionhash> in a file and hashing that file via rhash --ripemd160 generated bbe254325404f94914174d8b7da8209ffdddf9cf.

Let’s see if our bot is awake at this time of the weekend :

@assistant custodian vote Bdoa6XJzzfFrMgwysASZGmvSMoXGPmQD6R

Hi @desrever

Here are the details for the Custodian Vote on Bdoa6XJzzfFrMgwysASZGmvSMoXGPmQD6R:

###1216.00 NBT.
Blocks: 752 (7.520000%)
Share Days: 200412903 (6.481201%)

let me see the trend …

@assistant custodian vote Bdoa6XJzzfFrMgwysASZGmvSMoXGPmQD6R

Hi @desrever

Here are the details for the Custodian Vote on Bdoa6XJzzfFrMgwysASZGmvSMoXGPmQD6R:

###1216.00 NBT.
Blocks: 2344 (23.440000%)
Share Days: 610890369 (20.360703%)


@assistant custodian vote Bdoa6XJzzfFrMgwysASZGmvSMoXGPmQD6R

Hi @desrever

Here are the details for the Custodian Vote on Bdoa6XJzzfFrMgwysASZGmvSMoXGPmQD6R:

###1216.00 NBT.
Blocks: 5316 (53.160000%)
Share Days: 1430034628 (48.947744%)

Weren’t we going to change the code for this so sharedays don’t matter? Can that be part of Nu 2.1? @JordanLee


This grant passed.

I want to thank all shareholders for the trust put in this project. Will start working on it tomorrow and try to keep you posted with weekly updates.

Also, as part of the grant I transferred the additional funds to the multisig address, so now they are out of my control and in the hands of @masterOfDisaster @erasmospunk and @woolly_sammoth



Weekly update #1 :

This week I started designing the integration strategy and closed some old open issues. In the meantime @woolly_sammoth managed to deploy a new version of the ALP server online for testing.

I added four configuration parameters to NuBot that should be sufficient to configure NuBot in pool-mode :

 "poolMode" : false,
 "poolURI" : "host:port",
 "poolPayoutAddress" : "Bxzy..",
 "poolSubmitInterval" : 50

I also implemented the logic to validate the compliance with other parameters (liquidity submission among others) and integrated new options in the frontend and updated the documentation and setup guide with instructions.


Next iteration : now that I have a live server to tinker with I’ll start integrate the logic of the pool registration process. However there is an unforeseen contingency next week which will force me to stay away from computers for 5 days or so… Will likely resume works next weekend.

Stay tuned


After a forced break, I am resuming development today. Thank you for the patience


In the last week I have been (mainly) working to get ALP-NuBot interface communication, which resulted in a java ALP client to access ALP server methods documented here . To play around with the Java client see example usage in TestALP.java

After that I started the integration with NuBot which is now in progress/testing : NuBot now registers to the ALP server at startup and periodically prepares and submit the signed HTTP request to get open orders to the ALP server.

Documentation and setup tutorial are also refined, along with several other improvements and bugfixes.

We will start testing the integration as soon as we have a live exchange on ALPv2 test server, likely in the next couple of days.

Coming week :soon: : ALP user stats, ALP separate logs, new CredentialManager architecture for ALP users, cryptsy and southxchange wrappers and other minor and major open issues I plan to pack within the budget into 0.4.1 if possible.

Stay tuned


Progress has been made in improving the ALP/NuBot interface and the integration of the pool client into nubot.

A major issue that is almost ready to ship is the implementation of a separate thread that collects statistics from the ALP server and displays them into NuBot, both via CLI and UI .

Both the backend and the frontend are ready for live testing :

I also completed and tested Cryptsy wrappers.

Next in the pipeline we have southxchange wrappers, orderbook visualization in the webinterface, other major an minor issue …

Looking good, next week, after live testing, I will be able to provide a reliable completion date.


That’s awesome @desrever!

Integration of NuBot and ALPs is really exciting. Everything I’ve seen so far is very professional looking. I wonder how this will change things for our liquidity providers.

1 Like

The GUI really makes me want to collect fund and restart my liquidity operations.


From my understanding, right now NuBot is almost not used in liquidity operations.
That is a pity since it seems that it is a beautifully crafted piece of software, sophisticated that can be so useful in reducing the costs of liquidity provision from Nu’s perspective.
And its development costs money.
The good news is that that is gonna be changed very soon with the integration to ALP.
I expect NuBot to be the major bot used for liquidity operations.
Is my understanding correct?

By the way, once NuBot is adapted to ALP, I suppose I will be able to use NuBot’s GUI as a pool participant.
Is that correct?

it is being used on poloniex and hitbtc by NuLagoon, as entry and exit gateway by @masterOfDisaster afaik.

1 Like