Skip to content

Commit d55816d

Browse files
jzakicritesjosh
andauthored
docs: Update glossary & snippets (#13661)
After this fees docs that make use of snippets can be updated, including final snippet cleanup with versions. --------- Co-authored-by: josh crites <[email protected]> Co-authored-by: Josh Crites <[email protected]>
1 parent 50f5bf0 commit d55816d

File tree

4 files changed

+382
-24
lines changed

4 files changed

+382
-24
lines changed

docs/docs/glossary.md

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,92 @@ title: Glossary
33
tags: [protocol, glossary]
44
---
55

6+
import { Glossary } from '@site/src/components/Snippets/glossary_snippets';
7+
8+
### Aztec
9+
10+
<Glossary.Tools.aztec />
11+
12+
Full reference [here](./developers/reference/environment_reference/cli_reference).
13+
14+
### Aztec Wallet
15+
16+
<Glossary.Tools.aztec_wallet />
17+
18+
Full reference [here](./developers/reference/environment_reference/cli_wallet_reference).
19+
620
### `aztec-nargo`
721

8-
The command line tool used to compile Aztec contracts. It gets its name from the Noir compiler, `nargo`. `aztec-nargo` is really just a specific version of `nargo`. You can read more about `nargo` [here](#nargo).
22+
<Glossary.Tools.aztec_nargo />
23+
24+
You can read more about `nargo` [here](#nargo).
25+
26+
### `aztec-up`
27+
28+
<Glossary.Tools.aztec_up />
29+
30+
### Aztec.js
31+
32+
<Glossary.Libs.aztec_js />
33+
34+
Read more and review the source code [here](https://github.com/AztecProtocol/aztec-packages/blob/#include_aztec_version/yarn-project/aztec.js).
935

1036
### Aztec.nr
1137

12-
A [Noir](https://noir-lang.org) framework for writing smart contracts on Aztec.
38+
<Glossary.Libs.aztec_nr />
1339

1440
Read more and review the source code [here](https://aztec.nr).
1541

1642
### Barretenberg
1743

18-
Aztec's cryptography back-end. Refer to the graphic at the top of [this page](https://medium.com/aztec-protocol/explaining-the-network-in-aztec-network-166862b3ef7d) to see how it fits in the Aztec architecture.
44+
<Glossary.Barretenberg />
1945

20-
Barretenberg's source code can be found [here](https://github.com/AztecProtocol/barretenberg).
46+
### bb / bb.js
47+
48+
`bb` (CLI) and its corresponding `bb.js` (node module) are tools that prove and verify circuits. It also has helpful functions such as: writing solidity verifier contracts, checking a witness, and viewing a circuit's gate count.
2149

2250
### `nargo`
2351

24-
With `nargo`, you can start new projects, compile, execute, prove, verify, test, generate solidity contracts, and do pretty much all that is available in Noir.
52+
With `nargo`, you can start new projects, compile, execute, and test your Noir programs.
2553

2654
You can find more information in the nargo installation docs [here](https://noir-lang.org/docs/getting_started/installation/) and the nargo command reference [here](https://noir-lang.org/docs/reference/nargo_commands).
2755

2856
### Noir
2957

30-
Noir is a Domain Specific Language for SNARK proving systems. It is used for writing smart contracts in Aztec because private functions on Aztec are implemented as SNARKs to support privacy-preserving operations.
58+
<Glossary.Noir />
59+
60+
### Noir Language Server
61+
62+
The Noir Language Server can be used in vscode to facilitate writing programs in Noir by providing syntax highlighting, circuit introspection and an execution interface. The Noir LSP addon allows the dev to choose their tool, nargo or aztec-nargo, when writing a pure Noir program or an Aztec smart contract.
63+
64+
You can find more info about the LSP [in the Noir docs](https://noir-lang.org/docs/tooling/language_server).
65+
66+
### Node
67+
68+
<Glossary.AztecNode />
69+
70+
To run your own node see [here](./run_node/guides/run_nodes/index.md).
71+
72+
### Note
73+
74+
In Aztec, a Note is encrypted information stored by nodes in the network. Data in a note (once decrypted) may represent some variable's state at a point in time.
3175

3276
### Provers
3377

3478
Aztec will be launched with a fully permissionless proving network that anyone can participate in.
3579

3680
How this works will be discussed via a future RFP process on Discourse, similarly to the Sequencer RFP.
3781

38-
### Private Execution Environment
82+
### Private Execution Environment (PXE)
3983

40-
The Private eXecution Environment (PXE) is a client-side library for the execution of private operations. The PXE generates proofs of private function execution, and sends these proofs along with public function requests to the sequencer. Private inputs never leave the client-side PXE.
84+
<Glossary.PXE />
4185

4286
Read more [here](./aztec/concepts/pxe/index.md).
4387

88+
### Sandbox
89+
90+
<Glossary.AztecSandbox />
91+
4492
### Sequencer
4593

4694
Aztec will be launched with a fully permissionless sequencer network that anyone can participate in.
@@ -67,6 +115,10 @@ Programs that run on the Aztec network are called smart contracts, similar to [p
67115

68116
However, these will be written in the [Noir](https://noir-lang.org/index.html) programming language, and may optionally include private state and private functions.
69117

118+
### Testing eXecution Environment (TXE)
119+
120+
<Glossary.TXE />
121+
70122
### Proving Key
71123

72124
A key that is used to generate a proof. In the case of Aztec, these are compiled from Noir smart contracts.
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
import React from "react";
2+
3+
export const Glossary = {
4+
Tools: {
5+
aztec: () => (
6+
<p>
7+
The CLI tool (with an extensive set of parameters) that enables users to
8+
perform a wide range of tasks. It can: run a node, run a sandbox,
9+
execute tests, generate contract interfaces for javascript...
10+
</p>
11+
),
12+
aztec_nargo: () => (
13+
<p>
14+
The command line tool used to compile Aztec contracts. It is a specific
15+
version of <code>nargo</code>, with additional transpiler for turning a
16+
contract's public function code from Noir brillig bytecode into Aztec
17+
Virtual Machine (AVM) bytecode.
18+
</p>
19+
),
20+
aztec_up: () => (
21+
<p>
22+
This tool updates the local aztec executables to the latest version
23+
(default behaviour) or to a specified version.
24+
</p>
25+
),
26+
aztec_wallet: () => (
27+
<p>
28+
The Aztec Wallet is a CLI wallet, <code>aztec-wallet</code>, that allows
29+
a user to manage accounts and interact with an Aztec network. It
30+
includes a PXE.
31+
</p>
32+
),
33+
},
34+
35+
Libs: {
36+
aztec_nr: () => (
37+
<p>
38+
A <a href="https://noir-lang.org">Noir</a> framework for writing smart
39+
contracts on Aztec.
40+
</p>
41+
),
42+
noir_contracts: () => (
43+
<p>
44+
Programs that run on the Aztec network, written in the Noir programming
45+
language. They may optionally include private state and private
46+
functions.
47+
</p>
48+
),
49+
aztec_js: () => (
50+
<p>
51+
A{" "}
52+
<a href="https://www.npmjs.com/package/@aztec/aztec.js">Node package</a>{" "}
53+
to help make Aztec dApps.
54+
</p>
55+
),
56+
},
57+
58+
Noir: () => (
59+
<p>
60+
Noir is a Domain Specific Language for SNARK proving systems. It is used
61+
for writing smart contracts in Aztec because private functions on Aztec
62+
are implemented as SNARKs to support privacy-preserving operations.
63+
</p>
64+
),
65+
66+
PXE: () => (
67+
<p>
68+
A client-side key manager, private contract storage, and Private eXecution
69+
Environment for private transactions. A PXE is a core part of an Aztec
70+
wallet and Sandbox, but can be decoupled and run independently.
71+
</p>
72+
),
73+
74+
AztecNode: () => (
75+
<p>
76+
A prover/sequencer that is part of a decentralised Aztec network. The
77+
Aztec testnet rolls up to Ethereum Sepolia.
78+
</p>
79+
),
80+
81+
AztecSandbox: () => (
82+
<p>
83+
The Aztec Sandbox runs a set of Aztec tools for convenient local
84+
development, it includes: an Ethereum node, an Aztec node, and PXE.
85+
</p>
86+
),
87+
88+
Account: () => (
89+
<p>
90+
An account on Aztec is a smart contract that specifies a method of
91+
authentication and a method of payment, allowing it to be used by the
92+
protocol to perform a transaction.
93+
</p>
94+
),
95+
96+
TXE: () => (
97+
<p>
98+
TXE stands for Test eXecution Environment. It enables rapid Aztec contract
99+
development by using "cheatcodes" in the Aztec Sandbox that manipulate
100+
state. For convenience, similar "cheatcodes" to manipulate Anvil's EVM
101+
state are wrapped.
102+
</p>
103+
),
104+
105+
Barretenberg: () => (
106+
<p>
107+
Aztec's cryptography back-end. Refer to the graphic at the top of{" "}
108+
<a href="https://medium.com/aztec-protocol/explaining-the-network-in-aztec-network-166862b3ef7d">
109+
this page
110+
</a>{" "}
111+
to see how it fits in the Aztec architecture.
112+
<br />
113+
<br />
114+
Barretenberg's source code can be found{" "}
115+
<a href="https://github.com/AztecProtocol/barretenberg">here</a>.
116+
</p>
117+
),
118+
};
119+
120+
export const Fees = {
121+
FPC: () => (
122+
<p>
123+
A fee paying contract (FPC) effectively implements fee abstraction. It is
124+
a contract that pays for transactions of other accounts, when its own
125+
custom criteria is met.
126+
</p>
127+
),
128+
129+
FeeAsset_NonTransferrable: () => (
130+
<p>
131+
The fee asset is only transferrable within a block to the current
132+
sequencer, as it powers the fee abstraction mechanism on Aztec. The asset
133+
is not transferable beyond this to ensure credible neutrality between all
134+
third party developer made asset portals and to ensure local compliance
135+
rules can be followed.
136+
</p>
137+
),
138+
};
139+
140+
export const Tx_Teardown_Phase = () => (
141+
<p>
142+
Transactions can optionally have a "teardown" phase as part of their public
143+
execution, during which the "transaction fee" is available to public
144+
functions. This is useful to transactions/contracts that need to compute a
145+
"refund", e.g. contracts that facilitate fee abstraction.
146+
</p>
147+
);
148+
149+
export const CLI_Add_Test_Accounts = () => (
150+
<p>
151+
For convenience, the sandbox comes with 3 initial accounts that are
152+
prefunded, helping bootstrap payment of any transaction. To use them, you
153+
will need to add them to your pxe/wallet.
154+
</p>
155+
);
156+
157+
export const Why_Fees = () => (
158+
<p>
159+
Fees are an integral part of any protocol's design. Proper fee pricing
160+
contributes to the longevity and security of a network, and the fee payment
161+
mechanisms available inform the types of applications that can be built.
162+
</p>
163+
);
164+
165+
export const CLI_Fees = () => (
166+
<p>
167+
The CLI tool <code>aztec-wallet</code> takes the fee payment method via the
168+
param: <code>--payment method=fee_juice</code>. See help for sending txs, eg{" "}
169+
<code>aztec-wallet help deploy</code>
170+
</p>
171+
);
172+
173+
export const Gas_Settings = () => (
174+
<p>
175+
<code>Gas Settings</code> used in transactions specify gas limits and
176+
maximum fee rates (fees-per-gas)
177+
</p>
178+
);
179+
180+
export const Gas_Settings_Components = () => (
181+
<p>
182+
The <code>Gas</code> and <code>GasFees</code> types each specify Data
183+
availability and L2 cost components, so the settings are:
184+
<ul>
185+
<li>gasLimits: DA and L2 gas limits</li>
186+
<li>
187+
teardownGasLimits: DA and L2 gas limits for a txs optional teardown
188+
operation
189+
</li>
190+
<li>maxFeesPerGas: maximum DA and L2 fees-per-gas</li>
191+
<li>maxPriorityFeesPerGas: maximum priority DA and L2 fees-per-gas</li>
192+
</ul>
193+
</p>
194+
);
195+
196+
export const Spec_Placeholder = () => (
197+
<p>
198+
The design and implementation have largely changed since the original
199+
specification, and these docs will soon be updated to reflect the latest
200+
implementation.
201+
</p>
202+
);

0 commit comments

Comments
 (0)