Hive powers crypto, people, and projects. The ecosystem being built on the blockchain is growing but the biggest opportunities are still ahead of us! At the heart of Hive, the core code is what makes everything possible.
Decentralized contributions to base blockchain and core code is a big challenge that also creates the greatest opportunities for the Hive ecosystem. There are a lot of questions around this, so here is a handy reference for things like, "what's core development? How can I get involved? Where does all of this happen?"
Not all development is core development.
Developers can be a catch-all term for any people who write code. There are developers who work on front end interfaces, back end structures and databases, mobile app specialists, website designers, software engineers, and even people who are learning about how to run blockchain nodes and write scripts... developers are everywhere!
When it comes to the Hive blockchain, core development consists of the base layer code, and the main libraries and services which can then be used to build projects based on the data and capabilities of the ledger. For example:
- the Hive blockchain code itself, which is the software that witness, RPC, and seed nodes run
- Hivemind, a database of social features that helps make Hive data more easily usable
- Jussi, a caching layer that helps make calls to the blockchain faster and easier
- the public image hosting infrastructure that front ends use
- libraries, which help developers interact with the blockchain using different programming languages
- Python libraries like hive-python and beem, or JS libraries like hive-js and dhive
- GitLab pipelines, which manage workflow and facilitate deployment of changes, fixes, and new code between all contributers
- testnet management and deployment tools like Tinman
This is far from a complete list but it's an example of the kinds of things that make up Hive's core development. This base layer is what makes the blockchain run and is a solid foundation for building other things. Developers of third party dApps, interfaces, games, etc. build their projects on top of Hive but the work that they're doing is separate from this core code. Yes, they're also developing... but on another important branch of the ecosystem. Core development and third party development go hand in hand: the blockchain was made to power web 3.0! Hive was built to be used and needs other developers to be inspired to build with the tools available.
Where can I find all this? How can I get involved?
The core code and the repository is open source, which means anyone can use or contribute to it! This allows many people to all work on the problems that they're most interested in and best suited to. By bringing together brains from all around the world to discuss, collaborate, and contribute, Hive has the ability to iterate and improve in a decentralized way. You might be a coder who wants to help work on this base code; you could be a developer wanting to create a project on Hive; you might be an end user who wants to follow and join in discussion of issues. There's also the chance that you're not super interested in the behind-the-scenes stuff and only want to check in to get infrequent updates now and again - in which case @HiveIO will have you covered! You don't have to be involved or interested in this stuff if you don't want to be.
The public repository is located at https://gitlab.syncad.com/hive.
If you have bug reports, fixes, requests, or would like to take a look at public discussion, you can browse or search the GitLab to see if the issue you're looking for already exists. In the left hand menu, you will see "Issues". These are topics open for whatever part of the project you are looking at. In the picture below, the issues for Hive (the core blockchain code) are shown. There is a breadcrumb trail at the top of the page to help you remember where you are in the repository.
The most important thing to do is to take a look around first, and to read through the issues to make sure you're not duplicating your request or bug report. This will help keep things quick and neat! If your issue already exists, add a comment or an emoji to show your support for this feature. If it doesn’t, then feel free to create a new issue!
Please remember: add as many elements as you can about your bug report/idea/feature request. A good rule of thumb is that a developer should not need to contact you to begin working, so try to include everything pertinent in a concise, accurate way. Feel free to use all the tools at your disposal: pictures, code snippets, or a hive blog post with discussion all being good examples. Finally, add a label to the issue. Use only one that best describes it: bug, discussion, enhancement, documentation, suggestion.
Coordinating decentralized blockchain development is a lot of work.
To this end, there will be bi-weekly Core Development meetings. Most people do not have to participate: they are a good way for the developers who are doing the heavy lifting to get on the same page and talk some things out via voice. To keep the meetings usable and functional, only people who are working on core code will attend. There won't be a comment/public text discussion during these meetings.
These meetings are public, and will be live streamed for anyone to watch at the Hive YouTube channel available here: https://www.youtube.com/channel/UCwM89V7NzVIHizgWT3GxhwA
You can subscribe to this channel if you'd like notifications of the streams and to listen in. If you can't listen to the live meetings, the recordings will also be saved so you can come back to them. This account will be posting notes summarizing each of the core meetings, along with the next future meeting date.
Finally, if you find all of this terribly dry (it's okay if you do!) there is no obligation.
This post is a reference to help you understand and navigate some of the more intimidating parts of building a blockchain. As we go forward, we won't be as focused on this topic here on the blog. Choose the parts of Hive that interest you the most and make them yours! 🐝