Project Gridcoin - The Testnet Project
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.
You are certainly not the first to some up with this idea, but first to write. I like it. There are some considerations:
What is the use case? What is the point of having hundreds of peers when we don't know what to test? Sure having this system ready in advance will be nice when such a need arises.
Who is going to set it up? If current gridcoin developers (~3) are assigned this task, they would stop developing gridcoin.
No need to fake anything. This project could be added to testnet and generate actual rac and mag (not in prod ofc). Or they can be assigned CPID and keys as a part of workunit. You can specify "boinckey" (combination of CPID, secret key and some shady stuff) in your config to run miner separate from boinc.
Good point. Nodes need coins to stake. More thought is needed for this point. How to distribute (pre-loaded private keys?), how to return, what happens when someone steals it.
Whether it's feasible or not, it's good to come up with ideas and not be afraid to share them.
I would definitely volunteer some boinc power to the testnet if it helped devs experiment and was straight forward to setup and secure.
Would be in volunteering for this as well. Being a software developer myself I could not agree more to the idea of setting up a testnet where code really can be tested thoroughly would also sponsor a few of my machines if needs be.
Kind regards Jan