libp2p / libp2p/go-libp2p

Clock / Mock time

Open
#831 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

kind/enhancement
Dominant language
Go
Stars
6.9k
Forks
1.3k
Avg merge
13d 21h
Merged PRs (30d)
1

Description

If timers were abstracted through a common clock/timing interface through libp2p, it would allow tests to provide a mocked time for fast-forwarding and running more deterministically and quickly than the current use of time.Sleep.

there are a few libraries for go out there that might work, or libp2p could define its own interface - it shouldn't be too complex
https://github.com/jonboulle/clockwork
https://godoc.org/github.com/facebookgo/clock
https://github.com/mixer/clock

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 surveying libp2p's current uses of time.Sleep and comparing the clockwork, facebookgo/clock, and mixer/clock libraries linked in the issue. Determine whether libp2p should define a common clock/timing interface or adopt an existing library; done means timers can use mocked time for deterministic, faster tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
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.