mirror of
https://github.com/tendermint/tendermint.git
synced 2026-02-04 19:12:05 +00:00
## Description I'm just doing a self audit of the light client. There's a few things I've changed - Validate trust level in `VerifyNonAdjacent` function - Make errNoWitnesses public (it's something people running software on top of a light client should be able to parse) - Remove `ChainID` check of witnesses on start up. We do this already when we compare the first header with witnesses - Remove `ChainID()` from provider interface Closes: #4538
27 lines
741 B
Go
27 lines
741 B
Go
package provider
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tendermint/tendermint/types"
|
|
)
|
|
|
|
// Provider provides information for the light client to sync (verification
|
|
// happens in the client).
|
|
type Provider interface {
|
|
// LightBlock returns the LightBlock that corresponds to the given
|
|
// height.
|
|
//
|
|
// 0 - the latest.
|
|
// height must be >= 0.
|
|
//
|
|
// If the provider fails to fetch the LightBlock due to the IO or other
|
|
// issues, an error will be returned.
|
|
// If there's no LightBlock for the given height, ErrLightBlockNotFound
|
|
// error is returned.
|
|
LightBlock(ctx context.Context, height int64) (*types.LightBlock, error)
|
|
|
|
// ReportEvidence reports an evidence of misbehavior.
|
|
ReportEvidence(context.Context, types.Evidence) error
|
|
}
|