libp2p / libp2p/go-libp2p-pubsub
Testground for gossipsub implementations
Nobody has claimed this yet.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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