Hlib Kanunnikov

Results 126 issues of Hlib Kanunnikov

Instead of relying on automatic subjective initialization over `trustedPeers`, infrastructure providers may want to run their nodes with a custom target addressed with a hash.

The `Getter` interface, which `Store` implements, guarantees that `GetRangeByHeight` always returns valid headers. This was likely the motivation behind doing `Verify` over each header inside `GetRangeByHeight`. However, headers appended to...

Currently, if two clients request the same headers, the exchange will end up duplicating requests for headers. We should avoid this with single-flight protection on the Exchange level. We should...

We should harden the library against user bugs that may cause panic and crash the node.

We should cover most of the internal go-header components with metrics to observe their stability and know whether the assumptions made in the code are held. Currently, we have coverage...

currently, if nodes start following a fork (outside of the unbonding period), they will discard the subjective head (which was given by a subjectively chosen trusted peer or the default...

We introduced the notion of header recency, which just checks if the header is recent via [isRecent](https://github.com/celestiaorg/go-header/blob/e50090545cc7e049d2f965d2b5c773eaa4a2c0b2/sync/sync_head.go#L192-L195) func. In case of the current subjective header is not recent, we forcefully...

Considering that we take the first 4 for the request, we should sort them by the score and ensure the first 4 are the best ones _Originally posted by @Wondertan...

We do [this](https://github.com/celestiaorg/go-header/blob/c82c1b320391bb97895734eb793f0a27216908f5/p2p/options.go#L60-L63) to make a single option usable in different contexts, but it's ugly and error-prone. Think of a cleaner way to accomplish the same goal.