View Source
const (
	// SnapshotChannel exchanges snapshot metadata
	SnapshotChannel = byte(0x60)
	// ChunkChannel exchanges chunk contents
	ChunkChannel = byte(0x61)


This section is empty.


This section is empty.


type Reactor

type Reactor struct {
	// contains filtered or unexported fields

    Reactor handles state sync, both restoring snapshots for the local node and serving snapshots for other nodes.

    func NewReactor

    func NewReactor(conn proxy.AppConnSnapshot, connQuery proxy.AppConnQuery, tempDir string) *Reactor

      NewReactor creates a new state sync reactor.

      func (*Reactor) AddPeer

      func (r *Reactor) AddPeer(peer p2p.Peer)

        AddPeer implements p2p.Reactor.

        func (*Reactor) GetChannels

        func (r *Reactor) GetChannels() []*p2p.ChannelDescriptor

          GetChannels implements p2p.Reactor.

          func (*Reactor) OnStart

          func (r *Reactor) OnStart() error

            OnStart implements p2p.Reactor.

            func (*Reactor) Receive

            func (r *Reactor) Receive(chID byte, src p2p.Peer, msgBytes []byte)

              Receive implements p2p.Reactor.

              func (*Reactor) RemovePeer

              func (r *Reactor) RemovePeer(peer p2p.Peer, reason interface{})

                RemovePeer implements p2p.Reactor.

                func (*Reactor) Sync

                func (r *Reactor) Sync(stateProvider StateProvider, discoveryTime time.Duration) (sm.State, *types.Commit, error)

                  Sync runs a state sync, returning the new state and last commit at the snapshot height. The caller must store the state and commit in the state database and block store.

                  type StateProvider

                  type StateProvider interface {
                  	// AppHash returns the app hash after the given height has been committed.
                  	AppHash(ctx context.Context, height uint64) ([]byte, error)
                  	// Commit returns the commit at the given height.
                  	Commit(ctx context.Context, height uint64) (*types.Commit, error)
                  	// State returns a state object at the given height.
                  	State(ctx context.Context, height uint64) (sm.State, error)

                    StateProvider is a provider of trusted state data for bootstrapping a node. This refers to the state.State object, not the state machine.

                    func NewLightClientStateProvider

                    func NewLightClientStateProvider(
                    	ctx context.Context,
                    	chainID string,
                    	version tmstate.Version,
                    	initialHeight int64,
                    	servers []string,
                    	trustOptions light.TrustOptions,
                    	logger log.Logger,
                    ) (StateProvider, error)

                      NewLightClientStateProvider creates a new StateProvider using a light client and RPC clients.


                      Path Synopsis