- 🚀 Connect with us on Discord
- 📅 Join our Community Calls
- 🔍 Find your first issue
- 📝 Make changes
- 📑 Commit with Developer Certificate of Origin
- 📥 Open a Pull Request
We welcome anyone to contribute to the FireFly project! If you’re interested, this is a guide on how to get started. You don’t have to be a blockchain expert to make valuable contributions! There are lots of places for developers of all experience levels to get involved.
🧑🏽💻 👩🏻💻 👩🏾💻 🧑🏻💻 🧑🏿💻 👨🏽💻 👩🏽💻 🧑🏾💻 👨🏿💻 👨🏾💻 👩🏿💻 👨🏻💻
You can chat with maintainers and other contributors on Discord in the
Community calls are a place to talk to other contributors, maintainers, and other people interested in FireFly. Maintainers often discuss upcoming changes and proposed new features on these calls. These calls are a great way for the community to give feedback on new ideas, ask questions about FireFly, and hear how others are using FireFly to solve real world problems.
Please see the FireFly Calendar for the current meeting schedule, and the link to join. Everyone is welcome to join, regardless of background or experience level.
If you’re looking for somewhere to get started in the FireFly project and want something small and relatively easy, take a look at issues tagged with “Good first issue”. You can definitely work on other things if you want to. These are only suggestions for easy places to get started.
NOTE Hyperledger FireFly has a microservice architecture so it has many different GitHub repos. Use the link or the button above to look for “Good First Issues” across all the repos at once.
Here are some other suggestions of places to get started, based on experience you may already have:
If you looking to make your first open source contribution the FireFly documentation is a great place to make small, easy improvements. These improvements are also very valuable, because they help the next person that may want to know the same thing.
Here are some detailed instructions on Contributing to Documentation
If you have some experience in Go and really want to jump into FireFly, the FireFly Core is the heart of the project.
Here are some detailed instructions on Setting up a FireFly Core Development Environment.
If you don’t have a lot of experience with Go, but are interested in learning, the FireFly CLI might be a good place to start. The FireFly CLI is a tool to set up local instances of FireFly for building apps that use FireFly, and for doing development on FireFly itself.
If you have some experience in TypeScript, there are several FireFly microservices that are written in TypeScript. The Data Exchange is used for private messaging between FireFly nodes. The ERC-20/ERC-271 Tokens Connector and ERC-1155 Tokens Connector are used to abstract token contract specifics from the FireFly Core.
If you want to do some frontend development, the FireFly UI is written in TypeScript and React.
If you already have some experience with blockchain and want to work on some backend components, the blockchain connectors, firefly-ethconnect (for Ethereum) and firefly-fabconnect (for Fabric) are great places to get involved.
To contribute to the repository, please fork the repository that you want to change. Then clone your fork locally on your machine and make your changes. As you commit your changes, push them to your fork. More information on making commits below.
As with all Hyperledger repositories, FireFly requires proper sign-off on every commit that is merged into the
main branch. The sign-off indicates that you certify the changes you are submitting are in accordance with the Developer Certificate of Origin. To sign-off on your commit, you can use the
-s flag when you commit changes.
git commit -s -m "Your commit message"
This will add a string like this to the end of your commit message:
"Signed-off-by: Your Name <your-email@address>"
When you’re ready to submit your changes for review, open a Pull Request back to the upstream repository. When you open your pull request, the maintainers will automatically be notified. Additionally, a series of automated checks will be performed on your code to make sure it passes certain repository specific requirements.
Maintainers may have suggestions on things to improve in your pull request. It is our goal to get code that is beneficial to the project merged as quickly as possible, so we don’t like to leave pull requests hanging around for a long time. If the project maintainers are satisfied with the changes, they will approve and merge the pull request.
Thanks for your interest in collaborating on this project!