Feel free to edit this post, is a wiki. Make sure you add edit reason at the bottom if you change something.
Draft design of Nu-BuybackBot ( aka NBB) and Nu-BuybackPricefeed (aka NBP)
NBB+NBP is intended as a software system to automate NSR buybacks on the available markets. It requires one or more operator to configure and keep it running. It should be easy to configure and run, open source, and should use a publicly known pricing policy.
##NBP
####NBP-01
NBP is a service that requires 24/7 uptime and should have high availability and reliability since it provides a core service to the Nu network. (4)
####NBP-02
NBP should expose an entry point that accepts HTTP get request and reply with a price, expressed in BTC with 8 decimal digits precision. It should also provide a timestamp at which the value has been refreshed.
####NBP-03
NBP should implement some DoS protection mechanism.
####NBP-04
The price is calculated in weekly cycles (1) as required by current buyback strategy :
- an initial cycle price (ICP) is computed every Sunday, 23:59 PM UTC, using this formula based on market price : . (5)
- every Mondays 23:59 PM UTC the price is updated : ICP + xx%
- every Tuesdays 23:59 PM UTC the price is updated : ICP + yy%
- every Wednesday 23:59 PM UTC the price is updated : ICP + zz%
- The price stays the same from 4—>till next cycle
####NBP-05
The pricefeed operators should be able to configure the parameters for the cycle. (6)
##NBB
####NBB-01
An elected operator can download the source code and binary. The main scope of the bot is to place limit buy orders for NSR below market price.
####NBB-02
The bot will work on available markets with an active NSR/BTC market. At the time of this writing being Poloniex and BTER.
####NBB-03
The bot operator will manually fund his exchange account with BTC, create an API key pair, configure the bot and run it.
####NBB-04
The bot needs to connect to an external price feed that is active 24/7 . The price will be verified locally and used to determine the limit buy price (2).
####NBB-05
The bot operator needs to manually withdraw funds from his account as defined by his operational details.
####NBB-06
As soon as NBB obtained and verified a buy price the whole BTC balance will be used to enter a single limit buy order (3).
####NBB-07
If the price feed is not available or considered unreliable, the bot should stop and do nothing.
####NBB-08
The NBB operator can configure a list of IP addresses of nodes of price feeds. feed1, feed2, feedN. A minimum number of x nodes is required to work …
####NBB-09
Every two hours the bot checks active orders and … ?
###Discussion
(1) Do we want the bot to operate on weekly cycles or continuously ?
(2) This way, the operator doesn’t have any control on pricing. Ana a price feed requires a price-feed operator and maintainer.
(3) Are you sure you want a single buy order? Maybe its better to distribute it, parametric orderbooks are already built so its no brainer… Is a matter of defining which book type and the replenish-wall strategy (how often, under which conditions?)
(4)To realize this condition this service should either require an operator, some redundancy and decent infrastructure, or it can be distributed and replicated across multiple volunteer nodes, similarly to the DNS seed server.
(5) please enter some proposals for the formula used to compute ICP
(6) if we deploy the feeds across a network of volunteer nodes, how can we know the config parameters are the same for all nodes
(7) …