A quick, decentralized JSON store perfect for quick web3 builders.
Redis + IPFS = zfast = 😍
git clone https://github.com/tanyaya94/zfast
npm run build
The quickest way to test out zfast is with the zfast sandbox server (example below). If you want to run a production instance of zfast, see the running your own server section.
...
// See encryption section below on how to enable encryption
const myJson = { hello: 'world' };
await ZFast.set('myJsonKey', myJson, { encrypt: false });
...
const { data } = await ZFast.get('myJsonKey');
...
// reclaims memory, but preserves data on IPFS
await ZFast.purge('myJsonKey');
zfast offers easy E2E encryption for user data via lit protocol. In order to use encryption, you will need to install the lit
javascript SDK.
> npm install lit-js-sdk
<script
onload="LitJsSdk.litJsSdkLoadedInALIT()"
src="https://jscdn.litgateway.com/index.web.js"
></script>
// Enable encryption during client initialization
// zfast will automatically use lit-js-sdk for encryption
const zfast = new RipClient({ zfastServerUrl, enableEncryption: true });
...
// you need a one-time wallet signature to
// prove identity for encryption and decryption
await zfast.signMessageForEncryption()
...
// make sure to pass encrypt: true option
const myJson = { hello: 'Encrypted zfast world' };
await zfast.set('myJsonKey', myJson, { encrypt: true });
...
// zfast automatically decrypts
const { data } = await zfast.get('myJsonKey');
For now, if you want to use zfast in production, you will need to run your own zfast server instance.
If you want to run a zfast instance on your own follow the below instructions
- Install and run redis (documentation here. You can run on your local or a cloud service of your choice.
- Acquire an NFT Storage API Key (found here)
- Clone the repo
git clone https://github.com/zdenham/redis-ipfs.git
> yarn install
> cd server
> yarn install
NOTE: you can see the redis URI syntax here
Under /server
directory if you are using a .env file.
REDIS_URL=redis://[[username:]password@]host[:port][/database]
IPFS_KEY=[YOUR_NFT STORAGE_KEY]
Under your environment variables you will need to set IPFS
> yarn start
Once your server is live, you can point your zfast client to the server by initializing it with zfastServerUrl
which points to your server instance URL.