code: func newSnapshot(config *params.CliqueConfig, sigcache *lru.ARCCache, number uint64, hash common.Hash, signers []common.Address) *Snapshot {
  	snap := &Snapshot{
  		config:   config,
  		sigcache: sigcache,
  		Number:   number,
  		Hash:     hash,
  		Signers:  make(map[common.Address]struct{}),
  		Recents:  make(map[uint64]common.Address),
  		Tally:    make(map[common.Address]Tally),
  	}
  	for _, signer := range signers {
  		snap.Signers[signer] = struct{}{}
  	}
  	return snap
  }
docs: // newSnapshot creates a new snapshot with the specified startup parameters. This
  // method does not initialize the set of recent signers, so only ever use if for
  // the genesis block.