diff --git a/docs/docs/concepts/advanced/private_execution_environment.md b/docs/docs/concepts/advanced/private_execution_environment.md new file mode 100644 index 00000000000..ffc9a9e7031 --- /dev/null +++ b/docs/docs/concepts/advanced/private_execution_environment.md @@ -0,0 +1,49 @@ +--- +title: Private Execution Environment (PXE) +--- + +The Private Execution Environment (or PXE, pronounced 'pixie') is a client-side library for the execution of private operations. It is a TypeScript library and can be run within Node, such as when you run the sandbox, within the browser, or any other environment in which TypeScript can run. For example, in future it could be run inside wallet software. + +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. + +```mermaid +graph TD; + + subgraph client[Client] + subgraph pxe [PXE] + acirSim[ACIR Simulator] + db[Database] + keyStore[KeyStore] + end + end + + subgraph server[Server] + subgraph pxeService [PXE Service] + acctMgmt[Account Management] + contractTxInteract[Contract & Transaction Interactions] + noteMgmt[Note Management] + end + end + + pxe -->|interfaces| server + +``` + +## PXE Service + +The PXE is a client-side interface of the PXE Service, which is a set of server-side APIs for interacting with the network. It provides functions for account management, contract and transaction interactions, note management, and more. For a more extensive list of operations, refer to the [PXE reference](../../apis/pxe/index.md). + + +## Components + +### ACIR simulator + +### Database + +### Note discovery + +### Key store + +## Oracles + + diff --git a/docs/docs/dev_docs/pxe/custom_oracles.md b/docs/docs/dev_docs/pxe/custom_oracles.md new file mode 100644 index 00000000000..20203aa9493 --- /dev/null +++ b/docs/docs/dev_docs/pxe/custom_oracles.md @@ -0,0 +1,3 @@ +--- +title: How to write a custom oracle +--- diff --git a/docs/docs/dev_docs/pxe/run_more_than_one_pxe_sandbox.md b/docs/docs/dev_docs/pxe/run_more_than_one_pxe_sandbox.md new file mode 100644 index 00000000000..e28a913e032 --- /dev/null +++ b/docs/docs/dev_docs/pxe/run_more_than_one_pxe_sandbox.md @@ -0,0 +1,3 @@ +--- +title: How to run more than one PXE in the sandbox +--- diff --git a/docs/sidebars.js b/docs/sidebars.js index b65035ba968..49c8adae4c5 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -188,6 +188,7 @@ const sidebars = { }, "concepts/advanced/public_vm", "concepts/advanced/contract_creation", + "concepts/advanced/private_execution_environment", "concepts/advanced/sequencer_selection", "concepts/advanced/acir_simulator", ], @@ -421,7 +422,14 @@ const sidebars = { }, items: ["dev_docs/testing/cheat_codes"], }, - + { + label: "Private Execution Environment (PXE)", + type: "category", + items: [ + "dev_docs/pxe/custom_oracles", + "dev_docs/pxe/run_more_than_one_pxe_sandbox", + ], + }, { label: "Wallets", type: "category",