waku-org / bounties

Community bounties for the waku ecosystem
10 stars 2 forks source link

[BOUNTY] Waku Meme Board 2.0 #16

Open fryorcraken opened 11 months ago

fryorcraken commented 11 months ago

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:

Bounty

The Waku Meme board is a dApp that uses Waku and BitTorrent 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 BitTorrent.

This will hopefully provide the inspiration to developers to combine Waku with other decentralized technology such as BitTorrent.

Deliverables

A Web dApp that enables the following:

The dApp is expected to be designed as follows:

It is recommended to use https://github.com/webtorrent/webtorrent for the BitTorrent integration.

Please check with the Waku team if you decide to use a different design. Waku must be used for communication purposes.

Acceptance Criteria

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/.

b4s36t4 commented 11 months ago

@fryorcraken Sorry for my enthusiasm but I'm just wondering about the difference between v1 and v2? it's just how we upload the memes right? on V1 we did used IPFS for this bounty we have to use webtorrent right?

Waiting for this bounty to be opened 🤓

fryorcraken commented 10 months ago

@fryorcraken Sorry for my enthusiasm but I'm just wondering about the difference between v1 and v2? it's just how we upload the memes right? on V1 we did used IPFS for this bounty we have to use webtorrent right?

Waiting for this bounty to be opened 🤓

We learned that IPFS was not ideal so let's try with BitTorrent

b4s36t4 commented 10 months ago

Cool, I'd love to propose my solution when it opens.

hackyguru commented 10 months ago

@b4s36t4 another suggestion from my side would be to use a pinning service like web3.storage or nft.storage to avoid IPFS note setup complications

b4s36t4 commented 10 months ago

@hackyguru yes at first I did the same, used pinata only. But since we're trying to achieve full decentralization using a ipfs service is not an option to go.

fryorcraken commented 10 months ago

@hackyguru what'st the decentralization level of these services?

@b4s36t4 from nft.storage:

Free decentralized storage and bandwidth for NFTs on IPFS and Filecoin.

b4s36t4 commented 10 months ago

I think nft.storage and web3.storage is from same. People (protocol labs) but they require a user to login and create an API then using their sdks to upload the assets. Which is same as pinata. These all services uses ipfs under the hood.

What about lighthouse.storage? @fryorcraken

fryorcraken commented 10 months ago

Thanks for this. Not sure about lighthouse but either way, keen to get some input from @hackyguru

vpavlin commented 10 months ago

Same thing - they all use API gateway. The underlying storage might be decentralized, but the web interaction is via REST API. Sadly IPFS does not seem to have an answer to this at the moment (helia is useless for providing content).

WebTorrent which relies on WebRTC, thus can potentially allow direct connection between browser instances, and thus minimize the 3rd party involvement, would make sense to me. Although I am not entirely how it will work in context of Memeboard content - since when someone posts and closes the window, no one is seeding the content anymore, right? So it might needs some kind of backend actually getting the initial seed and then being the seeder once the window is closed?

fryorcraken commented 10 months ago

. Although I am not entirely how it will work in context of Memeboard content - since when someone posts and closes the window, no one is seeding the content anymore, right? So it might needs some kind of backend actually getting the initial seed and then being the seeder once the window is closed?

Meme poster should keep their window open.

We can then do a follow-up bounty with go-waku or nwaku REST API to have a backend that seed memes.

b4s36t4 commented 10 months ago

Well, I think we can use FVM to support files & keep them seeding. As Filecoin is full decentralized and we don't need to update anything to keep the files available it should fair play using filecoin and FVM.

I don't know FVM fully :)

fryorcraken commented 10 months ago

Well, I think we can use FVM to support files & keep them seeding. As Filecoin is full decentralized and we don't need to update anything to keep the files available it should fair play using filecoin and FVM.

I don't know FVM fully :)

Let's try bittorrent this time and we can have future bounty with fvm

b4s36t4 commented 10 months ago

Understood.

hackyguru commented 10 months ago

All pinning services including lighthouse.storage are centralised at some point (obviously because they have API Keys). But unfortunately native IPFS integration has a lot of problems in terms of file availability :( Let's go ahead with Bittorrent, excited to see the outcome!!!!

b4s36t4 commented 8 months ago

@hackyguru, is this up for grabs? if so shall I proceed and submit a proposal :)

fryorcraken commented 7 months ago

We want to make RLN by defualt on js-waku first before releasing more js-waku bounties.