-
Notifications
You must be signed in to change notification settings - Fork 3
[BOUNTY] Waku Meme Board (1000DAI) #1
Description
Context
Waku Is Uncompromising Web3 Communication at Scale.
A family of robust, censorship-resistant communication protocols, designed to enable privacy-focused messaging for web3 apps.
The JavaScript implementation of Waku, js-waku, enables web apps to utilize the Waku network for off-chain message transmission.
Disclaimer: Waku is experimental, you may find blocking issues while developing your web app. We will prioritize their resolution to unblock you, which means you may have to pause development until done.
Thank you for your patience and understanding.
Your participation in this bounty is subject to your acceptance of our terms and conditions.
Please see https://github.com/waku-org/bounties#applying-for-a-bounty for details.
Reward
USD1000 in DAI.
Timeframe to Completion
Once the application is approved, the result must be submitted within 30 days.
Application Evaluation
To ensure you are selected for this bounty, provide the following information:
- Describe the approach you will take to tackle the bounty.
- A timeline within which you expect to deliver the bounty.
- Any previous relevant work you have done.
Bounty
The Waku Meme board is a dApp that uses Waku and IPFS (or any other decentralized storage protocol) to display a timeline of memes.
Post memes on the board is permission-less, so is viewing memes.
Impact
The aim of the bounty is to demonstrate how Waku can be used for ephemeral communication while offloading large files to another, more appropriate, system such as IPFS.
This will hopefully provide the inspiration to developers to combine Waku with other decentralized technology such as IPFS or Codex.
Deliverables
A Web dApp that enables the following:
- Display previously posted memes (latest first)
- Post memes (images only).
The dApp is expected to be designed as follows:
- A unique content topic is used for the dApp, such as
/meme-board/1/meme/proto
- When posting a meme, the dApp upload the image to IPFS and then send a Waku message with Waku Light push that contains:
- IPFS hash to the image
- Protobuf must be used for payload encoding
- When opening the dApp, and loading the timeline:
- Waku Messages are retrieved via store + filter on the unique content topic
- Images are retrieved from IPFS using the hash in the Waku message
- Memes are displayed, newest first and on top.
Please check with the Waku team if you decide to use a different design.
Waku must be used for communication purposes.
Acceptance Criteria
- The dApp works as described:
- meme are displayed latest first
- Waku Store is used to retrieved older memes
- Waku Filter is used for real-time reception of memes
- No image data is uploaded to Waku, only IPFS hashes.
- Some visual feedback is provided to the user when uploading the image.
- Users can send memes.
- Must use the latest stable version of
@waku/sdk
- Must be a frontend only, browser web app (no backend, no NodeJS, no SSR, no lambda function otherwise it's not decentralized).
- The web app must be deployed on IPFS or similar permission-less decentralized storage solution.
- In addition to that, you are free to host the website on a web server of your choice such as GitHub pages (not mandatory)
- All code must be licensed under MIT+Apache2.0.
Resources
Learn more about Waku at https://docs.waku.org/.
Join our Discord to get support at https://discord.waku.org/.
Various examples available at https://github.com/waku-org/js-waku-examples/.