plebbit / whitepaper

GNU General Public License v2.0
151 stars 6 forks source link

Plebbit IPFS/IPNS fetching speed proof of concept #3

Open estebanabaroa opened 3 years ago

estebanabaroa commented 3 years ago

Plebbit is a theoretical design for a Reddit alternative built partly using IPFS/IPNS. View the whitepaper.

One of the design that needs to be tested and benchmarked is how long it would take for a user to fetch a Plebbit page (with all its IPFS/IPNS content) client side.

Multiple scenarios should be tested:

  1. A front page for a user subscribed to 100 subplebbits with 100 posts each.
  2. A subplebbit front page with 100 posts, with new posts (a new IPNS record) published every X minutes.
  3. A subplebbit post with all replies, with new replies (a new IPNS record) published every X minutes.

Deliverables

Each scenario should be tested using a Cloudflare IPFS gateway, as well as with a local gateway (will require 2 servers to simulate 2 peers).

A CLI script should be used to simulate publishing the posts. And fetching a page should be done in the browser to simulate a user's experience (console log is OK, no need for front-end).

You should host the publishing script, IPFS node, and browser code on a server to make it easy to test and demo without having to set it up ourselves, until the work is approved.

Everything should be written in Node.js/Javascript or Typescript, using the IPFS CLI client, and preferably/optionally using Docker (though Docker can sometimes cause P2P problems with IPFS).

It should be coded with the assumption that more benchmarks and tests will be added later, eg to test the performance of different ways to store and fetch data.

Plebbit has no standard or schema yet for how the posts are serialized and stored, so you will have to invent a tentative one. For now, it is assumed that posts would be a linked list and the latest post would be the latest IPNS record, but there may be a more performant way to do it in the future.

Submit PRs to this repo inside this folder /proof-of-concepts/ipfs-ipns-fetching-speed

For more in depth explanation of the task contact me on telegram @estebanabaroa or discord estebanabaroa#2853

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 0.23 ETH (916.33 USD @ $3984.03/ETH) attached to it as part of the Plebbit fund.

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 264 years, 9 months from now. Please review their action plans below:

1) baldator has applied to start work _(Funders only: approve worker | reject worker)_.

Hi,

I love the idea and I'd like to help you implement the performance benchmark. I will provide the test script in a docker container and a docker compose to create full environment (IPFS + test script).

Happy to discuss with you further about Plebbit :) Marco 2) lolboysgamin has been approved to start work.

I would like to start this benchmark to help out this new exciting project :)

Learn more on the Gitcoin Issue Details page.

gitcoinbot commented 3 years ago

@lolboysgamin Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

ghost commented 3 years ago

So far I've achieved to create all the data structures and now only need the scripts of IPNS

gitcoinbot commented 3 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 0.23 ETH (1030.11 USD @ $4478.74/ETH) has been submitted by: