First of all, if you choose to contribute to the Purple Protocol, thank you! From the beginning, Purple has been a community effort and we have avoided receiving funding from traditional private entities. This is because we believe that a true blockchain protocol is first and foremost a public entity, made for all and owned by none and such it requires a public effort, at least until it has the capability to sustain itself.
What are the main ways in which I can contribute?
These are the main ways in which you can contribute to the development of the Purple Protocol:
- By joining the core development team.
- By opening Pull Requests in any of the associated repositories.
- By participating in our crowdfunding campaign.
- By spreading the word about Purple and what it offers.
- By actively engaging in constructive community discussions on places such as our sub-reddit.
I do not know how to code. Can I still contribute?
Of course! Even though Purple is a deeply technical project there are areas which tie to the blockchain sphere and are equally important to the technical aspect:
- Communication - Are you a communication guru? Send us a message!
- Economics - How will Purple affect the global and local economies? What can we do to make this better? What are the correct economical parameters to the protocol? etc.
- Law - This is a big one, especially with the changing regulatory landscape. If you have expertise in both law and crypto don’t hesitate to contact us, we will surely have questions. Another aspect of this is that there is a global need for legislation research so if this interests anyone, you can also contact us.
- Marketing - There is no point in building something awesome if no one knows about it. If you have suggestions regarding this topic, contact us!
- Operations - Do you have suggestions on how to better organise the processes revolving around the Purple ecosystem? Give us a shout!
- Community - We all know the best part about a protocol is its community and that their ties are deep. Do you have a suggestion about how to make it better? You know what to do!
What do I get in return for contributing?
At this point in time, we cannot guarantee specific rewards for contributors since the economic model is still not in place. However, contributors will surely rewarded based on a combination of expertise, quality of work, the point in time when they became a contributor and the overall value created by their contribution.
Core Contributor Guidelines
This section contains guidelines regarding the way to contribute to any of the repositories in the Purple core ecosystem. Our core development principles rely around the following things:
- Advanced testing methodology - We encourage contributors before writing any new functionality to write tests for the said functionality. We also encourage contributors to write tests for already implemented functionality. Property tests are better than normal tests.
- Soundness of logic - The implemented logic must be sound. Hacks are not encouraged.
- Documented code - The best code is readable code. We encourage contributors to document changes for greater readability and maintenance.
- No assumptions - If anything is unclear, it is always better to ask than to shoot in the dark. Use the #core-dev on our discord server to do so.
- Benchmarking - We encourage contributors to write benchmarks for new code and old code. This allows optimizations to be done safely.
- Fast code - We encourage contributors to write fast code and optimize old code.
How to get started
Check out the issues section of any repository for any tasks that need to be solved. If there isn’t any issue open for the change you wish to propose, open a new issue detailing the change and the reasoning behind it.
Opening an issue
If have a suggested change, the first step to do so is to open an issue in any of the repositories if there isn’t already one open. Please check for duplicates before opening an issue!
Opening a Pull Request
The main way in which you can contribute is by opening a Pull Request to any of the repositories on the main repositories page.
All Pull Request are required to have an open issue in their respective repository detailing the reason for the changes, if there isn’t any open yet, you are required to open one. Tests, documentation for new code and code comments are mandatory unless a good enough reason is explicitly given for not doing so.
Before opening a Pull Request, make sure that there isn’t already one open for the same issue.