• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

[Pre-Proposal] Add automated tests to Dash's code [closed]

Krister Viirsaar

New member
This proposal is already proven unnecessary. Thank you for your time :)

In software development automated tests are the backbone of making sure new code doesn’t break anything. And Dash doesn’t have any (correct me if I’m wrong). The Bitcoin developers have been diligent in this area, but Dash has overlooked this potential stability and security problem.

I’ll start out with writing tests for the RPC client.

The budget
I will aim for one month of work and would like to be paid 8 Dash for it. So a total of 13 Dash with the fee.

The work that will be done:

  • Setting up environment. Understanding how the testing environment works.
  • Research. Preparation is key to implement tests that actually have purpose.
  • Implement tests for RPC client. The “Dash” section in the RPC documentation is what is missing from the RPC client tests file.
  • Extra research. If time allows I’d like to look deeper into what the core differences are between Bitcoin and Dash code and if there are other areas that need to be covered by tests.
Help with the fee
Even without the recent rally of prices my investments aren’t large enough to cover the 5 Dash fee. So I’m looking for donors to help me out paying the fee. Something like 5 people each giving 1 Dash and receiving it back after. If the proposal fails however, I can’t return the funds I’m afraid.

About me
I’m a full-stack developer currently getting familiar with the details of how Bitcoin works through the Mastering Bitcoin book by Andreas Antonopoulos (which is amazing btw). I want to delve deeper into the blockchain technology and help develop the core of cryptocurrencies (and Dash is awesome).

You can see my profile at krister.ee. Been a dev for 5 years, the last year was spent in a cyber security company. As a developer, not as a security specialist, but learned a lot. I quit my job to pursue the blockchain field.

I’m also part of the Helium project (Dash fork that’s aimed at corporations) where I developed (with the help of a very knowledgeable partner) the budget proposals website along with an open API and all of the code is also open-source. This is where I learned how the Dash daemon and RPC commands worked. This is what lead me to wanting to improve it. And I’d rather improve the source (Dash). Also my personal vision has more to do with people than corporations so here I am.

My long-term goals with Dash
When this proposal is done and I’ve proved my skills (and familiarized myself with the process) my aim is to dig deeper and submit larger proposals. Regarding either the core code, testing or maybe the Evolution Node.js backend if the team is interested.

Ultra-long-term goal is to create a Dash development team. If I find bigger areas to work on and the Dash community is behind the proposals, I (and a few friends deeply invested in Dash) are capable of running a full-fledged development team in Estonia and create even more momentum to Dash. This is very much an idea in the process of still forming.
 
Last edited:
That definitely sounds like a good idea. I guess it would also make sense to add unit tests for the C++ code itself. Though I'm not a C++ developer and haven't checked the code myself, so I don't know if this makes sense.

For the funding, have you tried asking Dash Core first? The amount is quite small for a proposal, so direct funding might be a good idea. You can still create proposals once you can start a team.
 
Welcome! :)

Not sure how you missed it :p but Dash Core uses Travis to build and test binaries on various platforms https://github.com/dashpay/dash/blob/master/.travis.yml just like Bitcoin Core. Most tests are run via python testing framework, the file you linked to is just a functional test on C++ side which is a tiny piece of the whole process. It's true that Dash-specific code coverage is rather low but there is a work being done to improve it https://github.com/dashpay/dash/pull/1608 - I welcome you to join and review it.

That being said, I'm not sure if there a need in any research or some special additional environment (and thus in any proposal like this) but I'll be happy to see you contributing to increase rpc tests coverage.

Actually, I'm even more interested in "running a full-fledged development team in Estonia and create even more momentum to Dash" part tbh. I personally would love to see our data sites improved in a sense that the data itself is ok, but the visuals are a bit... simplistic and static e.g. http://178.254.23.111/~pub/Dash/Dash_Info.html by @crowning (no offense :))
Havin a nice looking data hub with dynamically updated data and api would be cool. Maybe you can join forces with @Antti Kaikkonen ?
 
Whoah, I've made an ass of myself :D

I see where I went wrong. I did notice Travis, but didn't look further when I didn't see the Dash RPC tests in the expected .cpp file. But that of course makes sense since they are in python instead :D

Okay let's send this proposal down the drain then. Thanks for stopping by and saving a bunch of time and money, Udjin :) I think this proves I should follow Nutomic's advice and just contact the team directly instead. Figure out something in that way.

I'll also look into what RPC tests specifically are missing, what the PR is about and how the data sites work. Then I'll open a new proposal with the specifics and better informed plan (if even necessary).
 
Last edited:
I´m not an expert in this field, but just one thing called my attention.

As you said, If you have the money to invest the 5 DASH yo submit the proposal, and you also have friends that deeply invested in DASH, why don´t you collect the 5 DASH between you and them?

I whink it would demonstrate even more your commitment with the proposal and the goals you want to achieve with DASH.


Wait for your feedback. Tks!
 
Ah yes, sorry my mistake for using confusing words. By "deeply invested" I meant believing in Dash and doing what they can to help the project along. Not that their investments are huge money wise. One friend did however offer 2 Dash to help out with the fee. In any case I'm here to also validate the idea so strangers pitching in means strong support and that the idea is worth doing.
 
...I personally would love to see our data sites improved in a sense that the data itself is ok, but the visuals are a bit... simplistic and static e.g. http://178.254.23.111/~pub/Dash/Dash_Info.html by @crowning (no offense :))
Havin a nice looking data hub with dynamically updated data and api would be cool. Maybe you can join forces with @Antti Kaikkonen ?

No offense taken. This site was intentionally created simple and static to be fast and easily accessible via mobile devices (aka, while I'm on the road).
 
Back
Top