github.com/Bytom/bytom@v1.1.2-0.20210127130405-ae40204c0b09/consensus/server_flag.go (about)

     1  package consensus
     2  
     3  // ServiceFlag use uint64 to indicate what kind of server this node can provide.
     4  // one uint64 can represent 64 type of service flag
     5  type ServiceFlag uint64
     6  
     7  const (
     8  	// SFFullNode is a flag used to indicate a peer is a full node.
     9  	SFFullNode ServiceFlag = 1 << iota
    10  	// SFFastSync indicate peer support header first mode
    11  	SFFastSync
    12  	// SFSPV indicate peer support spv mode
    13  	SFSPV
    14  	// DefaultServices is the server that this node support
    15  	DefaultServices = SFFullNode | SFFastSync | SFSPV
    16  )
    17  
    18  // IsEnable check does the flag support the input flag function
    19  func (f ServiceFlag) IsEnable(checkFlag ServiceFlag) bool {
    20  	return f&checkFlag == checkFlag
    21  }