Hi! Thanks for your interest in contributing to the Storj Network!
Contributions to this project are released under the AGPLv3 License. For code released under the AGPLv3, we request that contributors sign our Contributor License Agreement (CLA) so that we can re-license parts of the code under a less restrictive license, like Apache v2, if that would help the adoption of Storj in the future.
- Reporting Security Issues
- Issue tracking and roadmap
- Quick Contribution Tips and Guidelines
- Testing
- Resources
If you believe you've found a security vulnerability, please send your report to security-reports@storj.io.
We greatly value security, and we may publicly thank you for your report, although we keep your name confidential if you request it.
See the breakdown of what we're building by checking out the following resources:
To encourage active collaboration, pull requests are strongly encouraged, not just bug reports.
We accept pull requests for bug fixes and features where we've discussed the approach in an issue and given the go-ahead for a community member to work on it.
"Bug reports" may also be sent in the form of a pull request containing a failing test. We'd also love to hear about ideas for new features as issues.
Please do:
- Check existing issues to verify that the bug or feature request has not already been submitted.
- Open an issue if things aren't working as expected.
- Open an issue to propose a significant change.
- open an issue to propose a feature
- Open a pull request to fix a bug.
- Open a pull request for an issue with the
Help Wanted
orGood first issue
label and leave a comment claiming it.
Please avoid:
- Opening pull requests for issues marked
Need Design
,Need Investigation
,Waiting For Feedback
orBlocked
. - opening pull requests that are not related to any open issue unless they are bug reports in the form pull requests containing failing tests.
Please note that this project adheres to a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
To get started running Storj locally, download and install the latest release of Go (at least Go 1.16) at golang.org.
You will also need Git. (brew install git
, apt-get install git
, etc).
If you're building on Windows, you also need to install and have gcc setup correctly.
We support Linux, Mac, and Windows operating systems. Other operating systems supported by Go should also be able to run Storj.
Aside about GOPATH: Go 1.11 supports a new feature called Go modules, and Storj has adopted Go module support. If you've used previous Go versions, Go modules no longer require a GOPATH environment variable. Go by default falls back to the old behavior if you check out code inside of the directory referenced by your GOPATH variable, so make sure to use another directory,
unset GOPATH
entirely, or setGO111MODULE=on
before continuing with these instructions.
First, fork our repo and clone your copy of our repository.
git clone git@github.com:<your-username>/storj storj
cd storj
Then, let's install Storj.
go install -v ./cmd/...
Make the changes you want to see! Once you're done, you can run all the unit tests:
go test -v ./...
You can also execute only a single test package if you like. For example:
go test ./pkg/identity
. Add -v
for more information about the executed unit
tests.
See our guide for writing tests and setting a local instance of the V3 components using the storj-sim.
Our guide on good commits can be found at https://github.com/storj/storj/wiki/Git.
Use Git to push your changes to your fork:
git commit -a -m 'my changes!'
git push origin main
Use GitHub to open a pull request!
- See our guide for writing tests here:
- You can spin up a local instance of the V3 Network components (Uplink, Satellite, Storage Nodes), see: