Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/firstbatchxyz/HollowDB
A privacy-preserving key-value database on Arweave.
https://github.com/firstbatchxyz/HollowDB
arweave arweave-blockchain circom firstbatch hollowdb key-value key-value-database key-value-store smartweave warp zero-knowledge
Last synced: 3 months ago
JSON representation
A privacy-preserving key-value database on Arweave.
- Host: GitHub
- URL: https://github.com/firstbatchxyz/HollowDB
- Owner: firstbatchxyz
- License: mit
- Created: 2023-02-26T15:57:33.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-05-24T15:07:04.000Z (6 months ago)
- Last Synced: 2024-06-12T17:13:10.058Z (5 months ago)
- Topics: arweave, arweave-blockchain, circom, firstbatch, hollowdb, key-value, key-value-database, key-value-store, smartweave, warp, zero-knowledge
- Language: TypeScript
- Homepage: https://hollowdb.xyz/
- Size: 8.64 MB
- Stars: 61
- Watchers: 6
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-arweave - HollowDB - A privacy-preserving key-value DB on Arweave. (Apps 🕯️)
README
HollowDB
HollowDB is a decentralized privacy-preserving key-value database on Arweave network, powered by Warp Contracts.
## Installation
To install HollowDB:
```bash
yarn add hollowdb # yarn
npm install hollowdb # npm
pnpm add hollowdb # pnpm
```Depending on your use-cases, we have several optional dependencies:
- You can use [hollowdb-prover](https://www.npmjs.com/package/hollowdb-prover) as a simple utility that generates zero-knowledge proofs that are verifiable by HollowDB.
- You can use LMDB cache within your Warp instance via [warp-contracts-lmdb](https://www.npmjs.com/package/warp-contracts-lmdb).
- You can use Redis cache within your warp instance via [warp-contracts-redis](https://www.npmjs.com/package/warp-contracts-redis) together with [ioredis](https://www.npmjs.com/package/ioredis).
- When you are evaluating a contract that uses ZK proofs, you should also use [warp-contracts-plugin-snarkjs](https://www.npmjs.com/package/warp-contracts-plugin-snarkjs) and [warp-contracts-plugin-ethers](https://www.npmjs.com/package/warp-contracts-plugin-ethers).## Usage
You can read the full documentation of HollowDB at .
> [!NOTE]
>
> If you are interested in customizing the smart contract of HollowDB and extending its SDKs, refer to this [README](./src/contracts/README.md).## Examples
Check out the [examples](./examples/) folder for a few examples of HollowDB usage:
- **Simple**: a single JS file that demonstrates getting & setting a key.
- **Micro**: a Vercel Micro backend that can serves HollowDB as API endpoints, useful when you want to use HollowDB from another language.## Testing
You can run all tests via:
```sh
pnpm test
```Tests operate on a local Arweave instance using [arlocal](https://www.npmjs.com/package/arlocal). They will run for all cache types (LMDB, Redis, LevelDB). You will need to have a Redis server running for some of the tests to pass, the URL shall be specified [here](./tests/constants/index.ts).
## Styling
You can check the formatting of the code or lint everything with the following commands:
```sh
pnpm format # prettier
pnpm lint # eslint
```