cmd, eth: support switching client modes of operation

This commit is contained in:
Péter Szilágyi
2015-09-01 17:35:14 +03:00
parent 10ed107ba2
commit 92f9a3e5fa
8 changed files with 122 additions and 35 deletions

View File

@ -26,6 +26,15 @@ import (
"github.com/ethereum/go-ethereum/rlp"
)
// Mode represents the mode of operation of the eth client.
type Mode int
const (
ArchiveMode Mode = iota // Maintain the entire blockchain history
FullMode // Maintain only a recent view of the blockchain
LightMode // Don't maintain any history, rather fetch on demand
)
// Constants to match up protocol versions and messages
const (
eth61 = 61
@ -34,6 +43,14 @@ const (
eth64 = 64
)
// minimumProtocolVersion is the minimum version of the protocol eth must run to
// support the desired mode of operation.
var minimumProtocolVersion = map[Mode]uint{
ArchiveMode: eth61,
FullMode: eth63,
LightMode: eth64,
}
// Supported versions of the eth protocol (first is primary).
var ProtocolVersions = []uint{eth64, eth63, eth62, eth61}