This repository contains the formal specifications of the Subspace protocol. For a more approachable description of the protocol, check out the Autonomys Academy, which provides a comprehensive overview of the current state of protocol as implemented by Autonomys Network.
Ideally, the specification in this repository should be considered the canonical source of truth for the Subspace Network protocol. Currently, the specifications do not cover the full stack, but it is one of the goals of the project to do so.
New developments to the protocol code should be preceded by a pull request to this repository, accompanied by a discussion in the Forum to ensure that the stakeholders are aligned on the changes. If there is not yet a relevant section in the specifications, consider adding it to help cover the new (or updated) functionality. When the existing implementation is found to diverge from the specifications, the implementation should be considered a bug. If you have any additions or corrections, please submit a pull request.
If you would like to contribute check out the following materials, and feel free to ask questions in Autonomys Network Discord
To ensure that your contributions include your name in the last_update section of documentation files automatically, follow these steps to set up your local environment:
- At the root of your local repository clone, create a file named .env.
- Inside the .envfile, add the following line, replacing"Your Name"with your actual name:
AUTHOR_NAME="Your Name"- Save and close the .envfile. This file will be used by the pre-commit hook to automatically insert your name into thelast_updatesection of Markdown files.
The pre-commit package is used to run scripts before each commit automatically, allowing us to update the documentation's last_update section seamlessly.
- Install pre-commit on your system. If you're using pip (Python's package manager), you can install it by running:
(On some systems, pip3is just calledpip.)
pip3 install pre-commitOr on macOS, you can use Homebrew:
brew install pre-commit- 
Make sure the update_last_update.sh script is present in the scripts/ directory at the root of your repository and is executable. You may need to run chmod +x scripts/update_last_update.shto make it executable.
- 
Run following command to set up the hook. 
pre-commit installWith these steps completed, your local environment is set up to automatically update the last_update section of Markdown files with your name and the current date whenever you make a commit. This process helps maintain accurate documentation and attribution for contributions.