Before I begin please note that this is not my idea although I hope I have fleshed it out, recorded it for future use and brought it forward for discussion.
I remember hearing it proposed on one of the Gridcoin communication platforms. Possibly on a previous Hangout. Shout-up if you know who originated it, they may be able to add to the idea.
I also could have got completely the wrong end of the stick and in some cases talking nonsense, I'm open to criticism. As I have previously mentioned, I am very much a learner when it comes to these technical aspects.
Gridcoin Testnet
Currently, as per best practice, Gridcoin tests code changes using a separate network called Testnet. This is done in order to minimise the probability and impact of bugs on the main blockchain and to provide a sandbox environment for the Gridcoin developers to experiment and see the impact of changes.
Unfortunately one downside of Testnet is that as currently implemented, it has very low participation and therefore any changes cannot be tested across a large number of clients. To participate people need to build the version of the client to be tested and configure it to use Testnet. This tends to limit testing to the current Devs.
The Proposal
In order to increase participation in the Gridcoin Testnet it seems both poetic and logical that we use the BOINC system that currently underlies Gridcoin, to improve Gridcoin.
The idea was that we set-up a Gridcoin Test project utilising the BOINC platform, this project would distribute the test client to all who join the project.
The Detail
The Testnet Project would provide a sandbox for Gridcoin developers to test client builds on a large scale. Access to publish to the Testnet Project would either be through agreement with existing devs or vote.
The Gridcoin test client would be packaged as a test install using either/or:
- The BOINC wrapper: https://boinc.berkeley.edu/trac/wiki/WrapperApp
- Virtual Box: https://boinc.berkeley.edu/trac/wiki/VboxApps
Various client configurations could be set as different application, i.e. Linux, Windows, Different client versions etc.
The Packaged client should have a typical build of the Gridcoin client and dummy BOINC project data to generate project RAC.
Project Work Units would run the client for a fixed amount of time, i.e. 3 hours or 24 hours etc.
Developers could "attack" such Testnet(s) to test security and resilience.
Ideas/Questions?
- I assume we can fake Project RAC with a pre-packaged build?
- Assuming that it would be beneficial, could this be randomised per client to create some variability?
To generate variability a random amount of coins could be send to each new registered Testnet address.
Various client configurations could be set as different application, i.e. Linux, Windows, Different client versions etc.
Thanks for taking the time to read my ramblings. If you have found this post useful please consider upvoting, resteeming and/or following me.