func (m ManifestNode) Stateless() bool {
	return m.Mode == string(ModeLight) || m.Mode == string(ModeSeed)
}
Stateless reports whether m is a node that does not own state, including light and seed nodes.
package e2e
import (
	"fmt"
	"os"
	"sort"
	"github.com/BurntSushi/toml"
)
type Manifest struct {
	IPv6 bool `toml:"ipv6"`
	InitialHeight int64 `toml:"initial_height"`
	InitialState map[string]string `toml:"initial_state"`
	Validators *map[string]int64 `toml:"validators"`
	ValidatorUpdates map[string]map[string]int64 `toml:"validator_update"`
	Nodes map[string]*ManifestNode `toml:"node"`
	KeyType string `toml:"key_type"`
	Evidence int `toml:"evidence"`
	LogLevel string `toml:"log_level"`
	QueueType string `toml:"queue_type"`
	TxSize int64
	ABCIProtocol string `toml:"abci_protocol"`
}
type ManifestNode struct {
	Mode string `toml:"mode"`
	Seeds []string `toml:"seeds"`
	PersistentPeers []string `toml:"persistent_peers"`
	Database string `toml:"database"`
	PrivvalProtocol string `toml:"privval_protocol"`
	StartAt int64 `toml:"start_at"`
	BlockSync string `toml:"block_sync"`
	Mempool string `toml:"mempool_version"`
	StateSync string `toml:"state_sync"`
	PersistInterval *uint64 `toml:"persist_interval"`
	SnapshotInterval uint64 `toml:"snapshot_interval"`
	RetainBlocks uint64 `toml:"retain_blocks"`
	Perturb []string `toml:"perturb"`
	LogLevel string `toml:"log_level"`
}