libp2p / libp2p/go-libp2p-pubsub

Testground for gossipsub implementations

Open
#362 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted kind/enhancement status/ready
Dominant language
Go
Stars
364
Forks
221
PR merge metrics
No merged PRs in 30d

Description

In the java world, there is this concept of a [Technology_Compatibility_Kit](https://en.wikipedia.org/wiki/Technology_Compatibility_Kit).

Several complex protocols come with TCKs that ensure that implementations are compatible. E.g. https://github.com/reactive-streams/reactive-streams-jvm/tree/master/tck

It would be really neat to have something similar. A way for projects to ensure that their implementation of complex protocols such as gossipsub and bitswap is compliant. I guess the best way to ensure this would be to use testground.ai in a mixed environment (with go-ipfs, js-ipfs and the test program).

But this is not something that small companies can set up on their own. Ideally this would be something provided by protocol labs. E.g. you provide a way to upload some kind of binary that does the protocol under test and can be remote controlled via something simple like a REST API. Then this thing is run through different scenarios in a mixed environment. You then get a test report.

If you want you could even gamify it and score the submitted impls for compliance and performance...

Cause for this ticket is https://github.com/libp2p/go-libp2p-pubsub/issues/361 , but I think it would be a great thing for all kinds of situations, especially as the protocols get more complex...

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked gossipsub issue and the Testground mixed-environment concept described here. Define the scope for testing gossipsub and bitswap implementations, including binary control, protocol scenarios, mixed implementations, and compatibility or performance reports; done would require an agreed design rather than a single code change.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.