Contributing to ZeroNet

Thank you for using ZeroNet. ZeroNet is a collaborative effort of 67+ decentralization enthusiasts just like you. We appreciate all users that catch bugs, improve documentation and have good ideas of designing new protocols. Here are a few guidelines we ask you to follow to get started with making your contribution.

You don’t have to contribute source code

In fact, a majority of contributors do not submit source code. Even if you like to write programs, other types of contribution are also welcomed.

Do you like to write?

  • Write about ZeroNet.
  • Write tutorials to help people set things up.
  • Help translate ZeroNet.
  • Improve this documentation. This documentation is a written by many community members all over the world.

Do you like helping people?

Do you like to make websites?

  • Create new ZeroNet sites. Go ahead and make your own blog on ZeroNet. It is easy and costs little.
  • “Content is king!” as NoFish puts. The network is worth nothing without content, so we need You to make it succeed.

Do you like to do research?

Do you like to write code?

  • If you know Python, you can pick a task from our issue tracker on GitHub.
  • You are also welcomed develop your own ideas. Before you start, please open a new discussion to let the community know, so you can make sure we can share our ideas to make the best out of it.
  • Keep your coding style consistent. We ask you to follow our coding convention below.

Do you like to offer financial support?

Coding convention

  • Follow PEP8
  • Simple is better than complex
  • Premature optimization is the root of all evil

Naming

  • ClassNames: Capitalized, CamelCased
  • functionNames: starts with lowercase, camelCased
  • variable_names: lowercased, under_scored

Variables

  • file_path: File path relative to working dir (data/17ib6teRqdVgjB698T4cD1zDXKgPqpkrMg/css/all.css)
  • inner_path: File relative to site dir (css/all.css)
  • file_name: all.css
  • file: Python file object
  • privatekey: Private key for the site (without _)

Source files directories and naming

  • One class per file is preferred
  • Source file name and directory comes from ClassName: WorkerManager class = Worker/WorkerManager.py