-
Notifications
You must be signed in to change notification settings - Fork 317
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Incorporate docs feedback and add "intermediate" level intros t…
…o some pages (#2598) Learning to build on Aztec requires learning a lot of new info. Many of our current docs pages are walls of text the go quite deep into the specific details of the protocol. Create an "intermediate" level section at the top of the following docs pages to make the information easier to parse and more digestible. This PR also includes feedback on overall docs structure and general editing. Closes issue #2561 # Checklist: Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge. - [ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag. - [ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code. - [ ] Every change is related to the PR description. - [ ] I have [linked](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) this pull request to relevant issues (if any exist). --------- Co-authored-by: Cat McGee <helloworld@mcgee.cat>
- Loading branch information
1 parent
a467b96
commit 78f9f52
Showing
27 changed files
with
319 additions
and
234 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,87 +1,16 @@ | ||
--- | ||
title: Initial Sandbox Features | ||
title: Sandbox Features | ||
--- | ||
|
||
import Disclaimer from "../../misc/common/\_disclaimer.mdx"; | ||
|
||
<Disclaimer/> | ||
|
||
The Aztec Sandbox is intended to provide developers with a lightweight & fast node, with features similar to Ethereum's Ganache or Anvil 'local node' packages. | ||
The Aztec Sandbox is intended to provide developers with a lightweight and fast local node. | ||
|
||
Developers should be able to quickly spin up local, emulated instances of an Ethereum blockchain and an Aztec encrypted rollup, and start deploying private contracts and submitting private txs. | ||
|
||
Here's a summary of the features we intend to support with the first release of the Aztec Sandbox. | ||
|
||
## Aztec.nr Contracts | ||
|
||
See the source on Github [here](https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/aztec-nr). | ||
|
||
- Noir `contract` scopes. | ||
- Declare a `contract`, containing a collection of state variables and functions. | ||
- private state variables: | ||
- `read`, `write`, and `delete` private state variables within private functions. | ||
- public (non-private) state variables: | ||
- Manipulate 'public' state in a familiar way to Ethereum state. | ||
- private functions | ||
- May read and modify private state. | ||
- public functions | ||
- May read and modify public state. | ||
- `constructor` functions, for initialising contract state. | ||
- `import` other Aztec.nr contracts, so their functions may be called. | ||
- Nested function calls, for contract composability | ||
- private functions can call private functions of other contracts, and receive return values. | ||
- private functions can call public functions any contract. | ||
- public functions can call private functions of any contract. | ||
- public functions can call public functions of other contracts, and receive return values. | ||
- private functions can be called recursively. | ||
- public functions can be called recursively. | ||
- Send messages from Aztec.nr contracts to Ethereum L1, for consumption by L1 smart contracts. | ||
- Useful, for example, if writing an app to withdraw funds from L2 to L1. | ||
- Consume messages which have been sent by: | ||
- L1 functions. | ||
- Useful, for example, if writing an app to deposit funds from L1 to L2. | ||
- public L2 functions. | ||
- Emit `event` data from a Aztec.nr Contract. | ||
- Allows applications to subscribe to events which have been emitted by a Aztec.nr contract's functions, for example. | ||
- Write `unconstrained` functions. | ||
- These allow developers to write `pure` and `view` functions, which can perform calculations and retrieve state. E.g. for fetching contract-specific information, which may then be consumed by a dapp, without having to generate a zero-knowledge proof or interact with the 'network'. | ||
|
||
## `aztec.js` | ||
|
||
A typescript wrapper for making RPC calls to an Aztec Sandbox node. See the source on Github [here](https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/aztec.js). | ||
|
||
- Similar in purpose to `web3.js`/`ethers.js`/`viem`, but for interacting with Aztec Network nodes. The RPC interface for an Aztec node is necessarily different from that of an Ethereum node, because it deals with encrypted transactions and state variables. | ||
- A library for public/private key management. | ||
- Construct `Contract` instances from a Aztec.nr contract's JSON artifact. | ||
- Deploy new contracts to the Aztec Sandbox. | ||
- Construct tx requests, passing arguments to a function of a contract. | ||
- Sign tx requests. | ||
- Send txs to the Sandbox node, for simulating. | ||
- Send txs to the Sandbox node, to be sent to the Sandbox network. | ||
- Call `unconstrained` functions of a Aztec.nr contract, to perform `pure` calculations or retrieve state. | ||
|
||
## Aztec Sandbox Node | ||
|
||
A bundle of packages which emulate the actions of all eventual Aztec network participants. The goal is for developer experience to be akin to Ganache / Anvil. | ||
The sandbox allows developers to: | ||
|
||
- PXE client | ||
- Simulate and/or execute private functions locally. | ||
- Aztec Public Node | ||
- Broadcasts a user's txs to the tx pool. | ||
- Simulate public functions locally. | ||
- Tx Pool | ||
- An in-memory emulation of a tx pool. By default, a user's txs will be rolled-up into an L2 block immediately. | ||
- Sequencer Node | ||
- Reads the tx pool and bundles pending txs into a rollup block immediately. | ||
- Orders txs. | ||
- Executes public functions. | ||
- Passes messages between L1 and L2. | ||
- L1 Rollup smart contract | ||
- Verifies the rollup's snark. | ||
- Reconciles calldata with snark public inputs. | ||
- Updates the rollup's state hash. | ||
- L1 data archiver | ||
- Gobbles up and stores all calldata, events, and state changes from L1 | ||
- World state DB | ||
- Reconstructs the Aztec Network's various trees. | ||
- Allows tree state to be queried. | ||
- Write and deploy Aztec contracts | ||
- Leverage private and public state variables in contracts | ||
- Write private and public functions in contracts | ||
- Call private and public functions on other Aztec contracts (contract composability) | ||
- Send messages between Aztec and Ethereum contracts | ||
- Interact with the Aztec network using a familiar Typescript SDK ([aztec.js](https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/aztec.js)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,14 @@ | ||
--- | ||
title: Roadmap | ||
--- | ||
|
||
import DocCardList from '@theme/DocCardList'; | ||
import Image from '@theme/IdealImage'; | ||
|
||
The next major milestone on the journey to mainnet is launching our testnet. | ||
|
||
<Image img={require('/img/road_to_testnet.png')} /> | ||
|
||
# Roadmap | ||
## Read more | ||
|
||
<DocCardList/> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.