Bor is the Official Golang implementation of the Matic protocol. It is a fork of Go Ethereum - https://github.com/ethereum/go-ethereum and EVM compatible.
We believe one of the things that makes Polygon special is its coherent design and we seek to retain this defining characteristic. From the outset we defined some guidelines to ensure new contributions only ever enhance the project:
- Quality: Code in the Polygon project should meet the style guidelines, with sufficient test-cases, descriptive commit messages, evidence that the contribution does not break any compatibility commitments or cause adverse feature interactions, and evidence of high-quality peer-review
- Size: The Polygon project’s culture is one of small pull-requests, regularly submitted. The larger a pull-request, the more likely it is that you will be asked to resubmit as a series of self-contained and individually reviewable smaller PRs
- Maintainability: If the feature will require ongoing maintenance (eg support for a particular brand of database), we may ask you to accept responsibility for maintaining this feature
- Create a new issue
- Comment on the issue (if you'd like to be assigned to it) - that way our team can assign the issue to you.
- If you do not have a specific contribution in mind, you can also browse the issues labelled as
help wanted
- Issues that additionally have the
good first issue
label are considered ideal for first-timers
-
If you're not sure, here's how to fork the repo
-
If this is your first time forking our repo, this is all you need to do for this step:
$ git clone git@github.com:[your_github_handle]/bor
-
If you've already forked the repo, you'll want to ensure your fork is configured and that it's up to date. This will save you the headache of potential merge conflicts.
-
$ git remote add upstream https://github.com/maticnetwork/bor
-
To sync your fork with the latest changes:
$ git checkout master $ git fetch upstream $ git merge upstream/master
-
Building
bor
requires both a Go (version 1.19 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, run$ make bor
-
Create new branch for your changes
$ git checkout -b new_branch_name
-
Commit and prepare for pull request (PR). In your PR commit message, reference the issue it resolves (see how to link a commit message to an issue using a keyword.
Checkout our Git-Rules
$ git commit -m "brief description of changes [Fixes #1234]"
-
Push to your GitHub account
$ git push
- After your changes are commited to your GitHub fork, submit a pull request (PR) to the
master
branch of thematicnetwork/bor
repo - In your PR description, reference the issue it resolves (see linking a pull request to an issue using a keyword)
- ex.
Updates out of date content [Fixes #1234]
- ex.
- Why not say hi and draw attention to your PR in our discord server?
- The team reviews every PR
- Acceptable PRs will be approved & merged into the
master
branch
- You can view the history of releases, which include PR highlights
The go-ethereum library (i.e. all code outside of the cmd
directory) is licensed under the
GNU Lesser General Public License v3.0,
also included in our repository in the COPYING.LESSER
file.
The go-ethereum binaries (i.e. all code inside of the cmd
directory) is licensed under the
GNU General Public License v3.0, also
included in our repository in the COPYING
file.
Join Polygon community – share your ideas or just say hi over on Discord.