Pre-Proposal: Dash Ninja funding (hosting+maintenance+evolutions)

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
Preambule:
Hi everybody, I am elbereth, I was there when Dash started (with another name :) ), I helped as I could with testnet, explorer, etc.
Then I had an idea to create a monitoring website for masternodes : Dash Ninja.
I created it from scratch, alone. To understand better how Dash works. I hosted it on my private server since then. I maintain it and make evolutions myself.
For a time DCG helped me (thanks, but it ended 2 years ago) on the order of 90$ per month (for the last year they helped) to help cover the hosting costs.
For the last year, I was barely able to spend time on this project due to financial reasons.
With Covid-19 hitting hard this year, it is now possible for me to divert more time and effort on this project if it could be sustainable financially.

Proposal:
Dash Ninja needs a lot of work to become as useful as it ever was.
This first proposal will make possible for me to invest the time needed for the code to catch up with all new features of dashd since 2 years.

There are 3 targets for this first proposal :
1. A new hosting server, separate from my personal server. With better IO for the DB access, plenty of RAM and fast disk access. Only Dash Ninja will run on it.
2. 4 days a month to work full time (or 4 days FTE) for development (me) to bring Dash Ninja code up to the new features in dashd 0.15, 0.16 and 0.16.1.
3. Better document everything, so that starting another Dash Ninja with the code base is easier.

This means:
- Working masternode monitoring detail page
- Working governance monitoring (some things are very broken)
- Clean-up of old (now useless) code in the back-end
- Fix all quirks that prevent all the pages from working correctly (or at all)

Resources:
The source code of Dash Ninja is readily available for everybody to check. You will be able to check my progress from the commits to the different public git repositories.
The code will stay licensed under GPLv3.
- Front-end: https://github.com/elbereth/dashninja-fe
- Back-end: https://github.com/elbereth/dashninja-be
- Database: https://github.com/elbereth/dashninja-db
- Control scripts: https://github.com/elbereth/dashninja-ctl
- IRC bot script (Eggdrop): https://github.com/elbereth/dashninja-irc
Annex:
- Database daily automatic dump: https://github.com/elbereth/dashninja-dbdump

I will commit to publish a monthly state of developping Dash Ninja on this forum.

Budget:
1 Person Part Time Salaries $1,500.00 x 3
Server Fees $100.00 x 3
Proposal Fee $400.00 x 1
Total: 5200$ for the quarter / 1733$ per month
In Dash (@ 78.66$): 66,11 Dash for the quarter / 22,04 Dash per month

Current traffic:

Some key figures from the front-end from 17/11/2020 24h (as an example):
- 134k unique page access per day
- 85% of requests are to the RESTful API
- 9.34GiB outbound traffic
Tor & I2P are much less traffic intensive (respectively 400 and 300 unique hits per day).

Server details:
VPS was tested, and it didn't work at all. I really need a dedicated server with 64GB of RAM and at least SSD.
The cheapest I could find on OVH is the Rise-1 model:
1605797598447.png
This is without tax that I will need to be added (21% in France where I live).

The future (after this first quarter of funding, for the next proposal):
Then, after this first quarter, will come another proposal :
1. Continue paying for the hosting server. Again this will be strictly for Dash Ninja.
2. Up to 4 days (1 FTE) of maintenance (server+code) and evolutions/improvements:
- To help fix bugs and keep everything up to date. This also covers updating for new dashd versions.
- This will cover adapting the site for new features in dashd or new features requests (list of things possible below).

Possible features updates (for the next proposals):
- Better document the REST API
- Provide some extra information for Masternode payment (for ex: estimated next time for payment)
- Provide a price API to be able to get Dash prices overtime (everything is already in the DB)
- Cache improvements all around, for speed improvements
- Easier deployment of the whole Dash Ninja application (Docker also?)
- Fix/improve the IRC bot scripts

Thanks for your feedback.
 
Last edited:
  • Like
Reactions: tungfa and bhkien

kot

Administrator
Dash Core Team
Moderator
Foundation Member
Masternode Owner/Operator
Dash Support Group
Mar 17, 2015
698
1,860
263
Great to see you back @elbereth .
I love Dash Ninja and will be happy to support your efforts - you have my vote.
 
  • Like
Reactions: tungfa and elbereth

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
2,770
1,010
1,183
What kind of load / traffic are you seeing to justify $100 / month on server hosting?

What kind of new features are you looking to add?

If you're looking for a nice project to get your teeth into then I have a suggestion. I believe there is a significant hardcore of dash users that want enhanced privacy features. DCG don't want to touch privacy at the moment so I'm hoping someone can put together a small team and fork the dash desktop wallet. Perhaps adding atomic swaps with privacy coins, or adding Dandelion++. What do you think?
 

AjM

Well-known Member
Foundation Member
Jun 23, 2014
1,341
575
283
Finland
I think also that 100$ per month for server is quite a lot.

In EU you can get good linux server about 34€ per month:

Linux 24

CPU: 6 x 2.6 GHz
Intel® Xeon® Gold 6132

RAM: 24 GB
DDR4-2666 ECC REG

Storage: 240 GB
Choose SATA or SSD

Bandwidth: 24 TB
Choose 100 Mbps or 1 Gbps

Backups: Optional



PS. This is NOT ad, just a example.
 

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
What kind of load / traffic are you seeing to justify $100 / month on server hosting?
The load is intensive, mainly on the memory and disk.
The infrastructure is at least 3 dashd nodes for monitoring, I can increase that if the server is big enough (the 10 I was running on current server was not sustainable).
Each of them is queried every minute for masternode protx and governance status. Inserting data in database and converting it for consumption is memory and cpu intensive.

I need a server with good RAM and very good IO on the disk. That's the expensive part.
I am really going for the entry level dedicated server on OVH Rise-1 with NVME drives + 64GB of RAM.
Without the extensive caching I am already doing the current server (SoYouStart, entry level 32GB RAM, traditional HDD) was already too hammered to even answer all the queries I was getting.

What kind of new features are you looking to add?
For this first proposal, during the 3 months, it will be getting on par with dashd 0.16.1. Currently checking info for protx and governance is basically not working in the front end. I need to also cleanup the code so it can be enhanced more easily than today.

If you're looking for a nice project to get your teeth into then I have a suggestion. I believe there is a significant hardcore of dash users that want enhanced privacy features. DCG don't want to touch privacy at the moment so I'm hoping someone can put together a small team and fork the dash desktop wallet. Perhaps adding atomic swaps with privacy coins, or adding Dandelion++. What do you think?
I am not very at all a C/C++ dev.
For the moment, I am not looking for a full time job as a developper. I just got some more time, that can be used for Dash Ninja.
 
Last edited:

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
I think also that 100$ per month for server is quite a lot.

In EU you can get good linux server about 34€ per month:
Thanks for your info.
But your example is a VPS, this would just worsen the performance. Already tried.
I need a dedicated server. If you can find me one with 64GB of RAM and a SSD (I don't need NVME but that's all I could find on OVH) that is less than 100$/month on a reputable network, I will gladly change that part. :)
I can also continue to run the app on my personal server along the other stuff to avoid the 100$/month budget entry, I just don't think it would be the best.
 

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
Some key figures from the front-end from yesterday 24h:
- 134k unique page access per day
- 85% of requests are to the RESTful API
- 9.34GiB outbound traffic

Tor & I2P are much less traffic intensive (respectively 400 and 300 unique hits per day).
 
  • Like
Reactions: GrandMasterDash

AjM

Well-known Member
Foundation Member
Jun 23, 2014
1,341
575
283
Finland
Thanks for your info.
But your example is a VPS, this would just worsen the performance. Already tried.
I need a dedicated server. If you can find me one with 64GB of RAM and a SSD (I don't need NVME but that's all I could find on OVH) that is less than 100$/month on a reputable network, I will gladly change that part. :)
I can also continue to run the app on my personal server along the other stuff to avoid the 100$/month budget entry, I just don't think it would be the best.
Ah, dedicated server, that is lot more expensive, so that 100$ is starting looking a fair price.
 

GrandMasterDash

Grizzled Member
Masternode Owner/Operator
Jul 12, 2015
2,770
1,010
1,183
I had no idea you was getting that sort of traffic. Is there any way to distribute the load e.g. shifting the load to the client side? Or maybe a plugin to the desktop wallet?
 

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
I had no idea you was getting that sort of traffic. Is there any way to distribute the load e.g. shifting the load to the client side? Or maybe a plugin to the desktop wallet?
I already spent a lot of time to make it as easy as possible on the server. Before those optimizations the server would just go down regurarly.
Most of the things need to be done on the server side (data gathering and injestion), some can be done on the client side (most stats display are done in JS).
There is certainly a way to improve the database/queries (not an expert) and coding (I plan on doing that).
 

elbereth

Active Member
Dash Support Group
Mar 25, 2014
447
469
133
Costa Rica
dashninja.pl
Dash Address
XkfkHqMnhvQovo7kXQjvnNiFnQhRNZYCsz
I had no idea you was getting that sort of traffic. Is there any way to distribute the load e.g. shifting the load to the client side? Or maybe a plugin to the desktop wallet?
None of the 3 offered on that page fulfill the requirement : SSD + 64GB.
They are all HDD and 32GB max.
But thanks for the help! Appreciated.
 

tungfa

Administrator
Dash Core Team
Moderator
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,906
6,729
1,283
Great page
happy to support