Skip to content

Plebbit pubsub spam resistance proof of concept #5

@estebanabaroa

Description

@estebanabaroa

Plebbit is a theoretical design for a Reddit alternative built partly using IPFS' experimental pubsub feature. View the whitepaper.

One of the design that needs to be tested is how big can the pubsub network scale, and how much spam resistance does the captcha service over pubsub provides.

Multiple scenarios should be tested:

  1. How much time does it take on average to complete a full captcha challenge request-answer-validation exchange.
  2. What is the maximum amount of posts per minute that can be published without breaking.
  3. Can the captcha service successfully prevent attackers from spamming captcha challenge requests.
  4. Can the captcha service successfully prevent attackers from spamming captcha challenge answers that are incorrect.

Deliverables

The "captcha puzzle" doesn't need to be implemented, the captcha challenges and answers should be simulated for the experiment. The captcha answers validation and blocking of peers who submit too many incorrect captcha answers (or too many captcha challenge requests without answers) should be implemented. This might require forking the IPFS go client to add the functionality of blocking a pubsub peer. It might be possible without forking using IPFS swarm filter.

The experiments should be done using at least 3 nodes on 3 servers: A subplebbit owner's node running the simulated captcha service, one (or more) well behaving nodes publishing posts, and one spammer node trying to break the pubsub.

A video running the experiments and explaining the conclusion should be uploaded to Youtube so that we don't have to set it up and run it ourselves. Each iteration will require uploading a new video until the work is approved.

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

Submit PRs to this repo inside this folder /proof-of-concepts/pubsub-spam-resistance

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions