version: types

This commit is contained in:
Ethan Buchman 2018-09-18 22:32:44 -04:00
parent 27ba6e8a42
commit e4ee34cfbc
1 changed files with 44 additions and 14 deletions

View File

@ -1,26 +1,56 @@
package version
// Version components
const (
Maj = "0"
Min = "25"
Fix = "0"
)
var (
// Version is the current version of Tendermint
// Must be a string because scripts like dist.sh read this file.
Version = "0.25.0"
// GitCommit is the current HEAD set using ldflags.
GitCommit string
)
// ABCIVersion is the version of the ABCI library
const ABCIVersion = "0.14.0"
// Version is the built softwares version.
Version string = TMCoreSemVer
)
func init() {
if GitCommit != "" {
Version += "-" + GitCommit
}
}
const (
// TMCoreSemVer is the current version of Tendermint Core.
// It's the Semantic Version of the software.
// Must be a string because scripts like dist.sh read this file.
TMCoreSemVer = "0.25.0"
// ABCISemVer is the semantic version of the ABCI library
ABCISemVer = "0.14.0"
ABCIVersion = ABCISemVer
)
// Protocol is used for implementation agnostic versioning.
type Protocol uint64
var (
// P2PProtocol versions all p2p behaviour and msgs.
P2PProtocol Protocol = 4
// BlockProtocol versions all block data structures and processing.
BlockProtocol Protocol = 7
)
//------------------------------------------------------------------------
// Version types
// App includes the protocol and software version for the application.
// This information is included in ResponseInfo. The App.Protocol can be
// updated in ResponseEndBlock.
type App struct {
Protocol Protocol `json:"protocol"`
Software string `json:"software"`
}
// Consensus captures the consensus rules for processing a block in the blockchain,
// including all blockchain data structures and the rules of the application's
// state transition machine.
type Consensus struct {
Block Protocol `json:"block"`
App Protocol `json:"app"`
}