Documentation
¶
Index ¶
- Constants
- Variables
- func GetApricotPhase3Time(networkID uint32) time.Time
- func GetApricotPhase4MinPChainHeight(networkID uint32) uint64
- func GetApricotPhase4Time(networkID uint32) time.Time
- func GetApricotPhase5Time(networkID uint32) time.Time
- func GetApricotPhase6Time(networkID uint32) time.Time
- func GetAthensPhaseTime(networkID uint32) time.Time
- func GetBanffTime(networkID uint32) time.Time
- func GetBerlinPhaseTime(networkID uint32) time.Time
- func GetCairoPhaseTime(networkID uint32) time.Time
- func GetCortinaTime(networkID uint32) time.Time
- func GetPreCortinaTime(networkID uint32) time.Time
- func GetSunrisePhase0Time(networkID uint32) time.Time
- type Application
- type Compatibility
- type Semantic
Constants ¶
View Source
const RPCChainVMProtocol uint = 25
RPCChainVMProtocol should be bumped anytime changes are made which require the plugin vm to upgrade to latest avalanchego release to be compatible.
Variables ¶
View Source
var ( // GitCommit and GitVersion will be set with -X during build step GitCommit string = "unknown" GitVersion string = "unknown" Current = &Semantic{ Major: 1, Minor: 1, Patch: 0, } CurrentApp = &Application{ Major: Current.Major, Minor: Current.Minor, Patch: Current.Patch, } MinimumCompatibleVersion = &Application{ Major: 1, Minor: 1, Patch: 0, } PrevMinimumCompatibleVersion = &Application{ Major: 1, Minor: 0, Patch: 0, } CurrentDatabase = DatabaseVersion1_4_5 PrevDatabase = DatabaseVersion1_0_0 DatabaseVersion1_4_5 = &Semantic{ Major: 1, Minor: 4, Patch: 5, } DatabaseVersion1_0_0 = &Semantic{ Major: 1, Minor: 0, Patch: 0, } // RPCChainVMProtocolCompatibility maps RPCChainVMProtocol versions to the // set of avalanchego versions that supported that version. This is not used // by avalanchego, but is useful for downstream libraries. RPCChainVMProtocolCompatibility map[uint][]*Semantic DefaultUpgradeTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC) ApricotPhase1Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2021, time.March, 31, 14, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2021, time.March, 26, 14, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhase2Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2021, time.May, 10, 11, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2021, time.May, 5, 14, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhase3Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2021, time.August, 24, 14, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2021, time.August, 16, 19, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhase3DefaultTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC) ApricotPhase4Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2021, time.September, 22, 21, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2021, time.September, 16, 21, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhase4DefaultTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC) ApricotPhase4MinPChainHeight = map[uint32]uint64{ constants.MainnetID: 793005, constants.FujiID: 47437, constants.CaminoID: 0, constants.ColumbusID: 0, constants.KopernikusID: 0, } ApricotPhase4DefaultMinPChainHeight uint64 ApricotPhase5Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2021, time.December, 2, 18, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2021, time.November, 24, 15, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhase5DefaultTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC) ApricotPhasePre6Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2022, time.September, 5, 1, 30, 0, 0, time.UTC), constants.FujiID: time.Date(2022, time.September, 6, 20, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhase6Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2022, time.September, 6, 20, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2022, time.September, 6, 20, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhasePost6Times = map[uint32]time.Time{ constants.MainnetID: time.Date(2022, time.September, 7, 3, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2022, time.September, 7, 6, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } ApricotPhase6DefaultTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC) BanffTimes = map[uint32]time.Time{ constants.MainnetID: time.Date(2022, time.October, 18, 16, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2022, time.October, 3, 14, 0, 0, 0, time.UTC), constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } BanffDefaultTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC) SunrisePhase0Times = map[uint32]time.Time{ constants.CaminoID: time.Date(2022, time.May, 16, 8, 0, 0, 0, time.UTC), constants.ColumbusID: time.Date(2022, time.May, 16, 8, 0, 0, 0, time.UTC), constants.KopernikusID: time.Date(2022, time.May, 16, 8, 0, 0, 0, time.UTC), } AthensPhaseTimes = map[uint32]time.Time{ constants.KopernikusID: time.Date(2023, time.July, 4, 13, 0, 0, 0, time.UTC), constants.ColumbusID: time.Date(2023, time.July, 7, 8, 0, 0, 0, time.UTC), constants.CaminoID: time.Date(2023, time.July, 17, 8, 0, 0, 0, time.UTC), } PreCortinaTimes = map[uint32]time.Time{ constants.CaminoID: caminoEarliestTime, constants.ColumbusID: columbusEarliestTime, constants.KopernikusID: kopernikusEarliestTime, } BerlinPhaseTimes = map[uint32]time.Time{ constants.KopernikusID: time.Date(2024, time.November, 28, 10, 0, 0, 0, time.UTC), constants.ColumbusID: time.Date(2024, time.November, 28, 10, 0, 0, 0, time.UTC), constants.CaminoID: time.Date(2024, time.December, 18, 10, 0, 0, 0, time.UTC), } CortinaTimes = map[uint32]time.Time{ constants.MainnetID: time.Date(2023, time.April, 25, 15, 0, 0, 0, time.UTC), constants.FujiID: time.Date(2023, time.April, 6, 15, 0, 0, 0, time.UTC), constants.KopernikusID: BerlinPhaseTimes[constants.KopernikusID], constants.ColumbusID: BerlinPhaseTimes[constants.ColumbusID], constants.CaminoID: BerlinPhaseTimes[constants.CaminoID], } CortinaDefaultTime = time.Date(2020, time.December, 5, 5, 0, 0, 0, time.UTC) CairoPhaseTimes = map[uint32]time.Time{ constants.KopernikusID: unreachableFutureTime, constants.ColumbusID: unreachableFutureTime, constants.CaminoID: unreachableFutureTime, } )
These are globals that describe network upgrades and node versions
View Source
var ( // V1_0_0 is a useful version to use in tests Semantic1_0_0 = &Semantic{ Major: 1, Minor: 0, Patch: 0, } )
View Source
var String string
String is displayed when CLI arg --version is used
Functions ¶
func GetApricotPhase3Time ¶
func GetApricotPhase4Time ¶
func GetApricotPhase5Time ¶
func GetApricotPhase6Time ¶
func GetAthensPhaseTime ¶
func GetBanffTime ¶
func GetBerlinPhaseTime ¶
func GetCairoPhaseTime ¶
func GetCortinaTime ¶
func GetPreCortinaTime ¶
func GetSunrisePhase0Time ¶
Types ¶
type Application ¶
type Application struct {
Major int `json:"major" yaml:"major"`
Minor int `json:"minor" yaml:"minor"`
Patch int `json:"patch" yaml:"patch"`
// contains filtered or unexported fields
}
func ParseApplication ¶
func ParseApplication(s string) (*Application, error)
func (*Application) Before ¶
func (a *Application) Before(o *Application) bool
func (*Application) Compare ¶
func (a *Application) Compare(o *Application) int
Compare returns a positive number if s > o, 0 if s == o, or a negative number if s < o.
func (*Application) Compatible ¶
func (a *Application) Compatible(o *Application) error
func (*Application) String ¶
func (a *Application) String() string
The only difference here between Application and Semantic is that Application prepends "avalanche/" rather than "v".
type Compatibility ¶
type Compatibility interface {
// Returns the local version
Version() *Application
// Returns nil if the provided version is compatible with the local version.
// This means that the version is connectable and that consensus messages
// can be made to them.
Compatible(*Application) error
}
Compatibility a utility for checking the compatibility of peer versions
func GetCompatibility ¶
func GetCompatibility(networkID uint32) Compatibility
func NewCompatibility ¶
func NewCompatibility( version *Application, minCompatable *Application, minCompatableTime time.Time, prevMinCompatable *Application, ) Compatibility
NewCompatibility returns a compatibility checker with the provided options
type Semantic ¶
type Semantic struct {
Major int `json:"major" yaml:"major"`
Minor int `json:"minor" yaml:"minor"`
Patch int `json:"patch" yaml:"patch"`
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.