experimental-offchain-zkapp-storage-punkpoll
v0.1.0
Published
This project is currently under development and should not be used in production.
Downloads
6
Maintainers
Readme
zkApp: Off-Chain Storage
An experimental library designed for storing zkApp data off-chain. The project is in development and is not intended for production use. This library serves as a reference implementation for Tutorial 6: Off-Chain Storage, which illustrates how to store zkApp data off-chain.
Usage
Dependencies:
Ensure all required modules are installed:
npm install
Configuration
Blockchain Mode
In the main.ts
file, you can toggle the useLocalBlockchain
variable to switch between local simulated blockchain testing and real-world usage.
Account Configuration
For local testing, you use predefined accounts.
For Berkeley
mode, you must provide a deployerPrivateKey
and zkAppPrivateKey
as command line arguments.
To generate these keys:
npm run generate-key
Running the Application:
Ensure that the off-chain server is running:
npm run server
This command starts the server on port 3001
.
Finally, to run the example:
npm run build
node build/src/examples/main.js [deployerPrivateKey] [zkAppPrivateKey]
Note: Always remember to safeguard private keys and never expose them publicly. Use environment variables or secure vaults to manage sensitive information in production environments.
zkApp Storage Server
This server is designed to interact with the zkApp and help store and manage zkApp-related data. It is set up for development purposes only and is not supported for production-level storage.
Features
- CORS-enabled for cross-origin requests.
- Stores data for a given zkApp address with a height and items.
- Fetches stored data for a zkApp address based on its root.
- Provides the public key of the server.
- Background job running cleanup operations to manage outdated or irrelevant data.
- Supports both local simulated blockchains and Berkeley blockchains for the Mina network.
Endpoints
- POST
/data
- Save data for a zkApp address.
- Body parameters: height, items, zkAppAddress.
- GET
/data
- Fetch stored data for a zkApp address based on its root.
- Query parameters: zkAppAddress, root.
- GET
/publicKey
- Provides the public key of the server.