Skip to content

Commit

Permalink
docs: Add contribution guidelines WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
zklim authored and zklimaleo committed Oct 6, 2024
1 parent 7b5daa1 commit 6835514
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 10 deletions.
10 changes: 0 additions & 10 deletions documentation/concepts/00_accounts.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,16 +147,6 @@ Given global instantiated Aleo parameters and subroutines.

3.`private_key` = (`seed`, (`sk_sig`, `r_sig`))

<<<<<<< HEAD
<<<<<<< HEAD
[source code](https://github.com/AleoNet/snarkVM/blob/mainnet/console/account/src/private_key/try_from.rs)
=======
[source code](https://github.com/AleoNet/snarkVM/blob/testnet3/console/account/src/private_key/try_from.rs)
>>>>>>> a5c06be (docs: update url AleoHQ -> AleoNet)
=======
[source code](https://github.com/AleoNet/snarkVM/blob/mainnet-staging/console/account/src/private_key/try_from.rs)
>>>>>>> ee9c63b (docs: update API endpoint, links to sdk and rename testnet3 to testnet)
#### Generate a View Key
1. `(sk_sig, r_sig)` = `private_key`
2. `view_key` = `sk_sig` + `r_sig` + HashToScalar(`sk_sig` * `G` | `r_sig` * `G`)
Expand Down
25 changes: 25 additions & 0 deletions documentation/contribute/00_contribution_guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
id: contribution_guidelines
title: Contribution Guidelines
sidebar_label: Contribution Guidelines
---
Welcome to Aleo’s Developer Documentation. Committed to open-source principles and decentralization, Aleo actively welcomes and values contributions from the community. All forms of contributions are encouraged, including suggesting new topics and contents, or providing examples to improve clarity and usefulness.

## Introduction
Aleo is a fully open-source, decentralized, privacy-preserving Layer 1 blockchain that allows developers to create applications with built-in privacy features. Using zero-knowledge proofs, Aleo enables programmable privacy, ensuring that sensitive data remains confidential while still allowing verification. The platform offers high scalability, making it capable of supporting large-scale applications, and provides an unrestricted runtime environment that removes typical blockchain limitations. This unique combination of privacy, scalability, and flexibility makes Aleo an ideal platform for building the next generation of privacy-focused decentralized applications.

For more details, visit the [Concepts](../concepts) section to explore Aleo’s architecture and features.

## Help improve our ecosystem
Have ideas on development standards or protocol improvements? Share them in the #loose-thoughts channel on our Discord to start a discussion. When you're ready to propose a new idea, head to ARCs discussions on GitHub to create a proposal and gather community feedback before proceeding to vote for acceptance.

Every stack that forms Aleo is open-sourced and welcomes contributions of all kinds. Each stack has specific contribution guidelines, which are provided below for easy reference:
- [Leo](https://docs.leo-lang.org/leo/resources#contributing) - Rust-based DSL to write programs on Aleo
- [Provable SDK](https://github.com/ProvableHQ/sdk/tree/testnet3/sdk) - Javascript/Typescript tools for creating zero knowledge apps
- [Create-leo-app](https://github.com/ProvableHQ/sdk/tree/testnet3/create-leo-app) - Scaffolding your first Aleo project
- [Aleo Instruction](https://developer.aleo.org/aleo) - IR that Leo language compiles into
- [SnarkOS](./snarkos_contribute) - The operating system or blockchain node client of Aleo
- [SnarkVM](./snarkvm_contribute) - The virtual machine that performs verifiable computation

## How to get help
Discord is our primary communication channel with the community. If you have a question that is not covered in this developer documentation, join our [Discord](https://discord.com/invite/aleo) and visit the engineering support channels for help. You can also join the weekly Core Devs Meeting, which is open to everyone and hosted on Discord.
66 changes: 66 additions & 0 deletions documentation/contribute/01_snarkos_contribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
id: snarkos_contribute
title: SnarkOS Contribution (WIP)
sidebar_label: SnarkOS Contribution (WIP)
---
This checklist provides a step-by-step guide for restarting the Aleo network with new features merged. Follow these steps to ensure a smooth process.

## Branches Overview
[mainnet-staging branch](https://github.com/AleoNet/snarkOS)
This branch serves as a staging area for the integration and initial testing of changes before they are promoted to the mainnet branch.

[mainnet branch](https://github.com/AleoNet/snarkOS/tree/mainnet)
The production branch where only stable and thoroughly tested changes are merged. It is used for creating production releases. It is always a direct mirror of a mainnet-staging commit.

## Networks Overview
### DevNet(s)
- Initial proposed changes are implemented and tested on DevNets.
- Snarkops - aims to provide guides and scripts for managing SnarkOS and participating in ANF’s CanaryNet.

### CanaryNet (running mainnet-staging branch)
- Changes are merged into CanaryNet from DevNet for testing and validation.
- CanaryNet is used to onboard additional validators before potentially bonding them to Testnet Beta/Mainnet.
- Validators are bonded by the ANF.
- snarkOS github tag standard: `canary-v*`. [Link to tags](https://github.com/AleoNet/snarkOS/tags).
- [Explorer for canary](https://vision.snarkos.net/?blocks)

### Testnet Beta (running mainnet branch)
- Open, public network for testing applications in a production-like environment without incurring costs.
- Validators are bonded by the Aleo Network Foundation.
- ANF and Provable initially run the validators.
- Demox Labs and Puzzle run public faucets
- snarkOS github tag standard: `testnet-beta-v*` [Link to tags](https://github.com/AleoNet/snarkOS/tags).
- [Explorer for Testnet Beta](https://vision.snarkos.net/?blocks)

### Mainnet (running mainnet branch)
- The final testing stage before full production deployment.
- Intended to be the “last stop” for new code and/or validator onboarding.
- Will run concurrently with Testnet Beta before becoming the canonical Mainnet.
- snarkOS github tag standard: `mainnet-v*` [Link to tags](https://github.com/AleoNet/snarkOS/tags).
- [Explorer for Mainnet](https://vision.snarkos.net/?blocks)

## Contribution Workflow [ snarkOS ]

<p align="center" width="100%">
<img src={require("./images/snarkos_contribute_flow.png").default} alt="SnarkOS Contribution Diagram"></img>
</p>

1. Fork the Repository
- Fork the repository from the mainnet-staging branch to your own GitHub account.
- Clone your fork locally.

```sh
git clone git@github.com:AleoNet/snarkOS.git
git remote add upstream git@github.com:AleoNet/snarkOS.git
```

2. Switch to the base branch
```sh
git switch mainnet-staging
```

3. Create a Feature Branch
- Create a feature branch from your fork's main branch.
```sh
git checkout -b feat/my-branch
```
10 changes: 10 additions & 0 deletions documentation/contribute/02_snarkvm_contribute.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
id: snarkvm_contribute
title: SnarkVM Contribution (WIP)
sidebar_label: SnarkVM Contribution (WIP)
---
This guide details the steps required to update snarkVM and propagate these changes to the Aleo network.

## Branches Overview
mainnet-staging branch
- This branch acts as a staging environment for integrating and initially testing changes before they are promoted to the mainnet branch.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 6835514

Please sign in to comment.