fiz: correções da pool
This commit is contained in:
@ -1,42 +1,38 @@
|
||||
package consensus
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
// RoundState mantém o estado atual da altura e rodada de consenso.
|
||||
type RoundState struct {
|
||||
Height uint64 // Altura atual do consenso (número do bloco)
|
||||
Round uint64 // Rodada atual (tentativas por altura)
|
||||
LockedBlock string // Hash do bloco "travado" (caso tenha precommit anterior)
|
||||
Proposal string // Hash da proposta atual recebida
|
||||
Prevotes map[string]string // Mapa[ValidatorID] = BlockHash (pode ser vazio)
|
||||
Precommits map[string]string // Mapa[ValidatorID] = BlockHash
|
||||
LastRoundStart time.Time // 🆕 Controle de início da rodada
|
||||
Mu sync.RWMutex // Proteção de acesso concorrente
|
||||
Height uint64 // Altura atual do consenso (número do bloco)
|
||||
Round uint64 // Rodada atual (tentativas por altura)
|
||||
LockedBlock string // Hash do bloco "travado" (caso tenha precommit anterior)
|
||||
Proposal string // Hash da proposta atual recebida
|
||||
Prevotes map[string]string // Mapa[ValidatorID] = BlockHash (pode ser vazio)
|
||||
Precommits map[string]string // Mapa[ValidatorID] = BlockHash
|
||||
LastRoundStart time.Time // Controle de início da rodada
|
||||
}
|
||||
|
||||
// NewRoundState cria um estado novo para uma altura específica.
|
||||
func NewRoundState(height uint64) *RoundState {
|
||||
return &RoundState{
|
||||
Height: height,
|
||||
Round: 0,
|
||||
LockedBlock: "",
|
||||
Proposal: "",
|
||||
Prevotes: make(map[string]string),
|
||||
Precommits: make(map[string]string),
|
||||
LastRoundStart: time.Now(),
|
||||
Height: height,
|
||||
Round: 0,
|
||||
LockedBlock: "",
|
||||
Proposal: "",
|
||||
Prevotes: make(map[string]string),
|
||||
Precommits: make(map[string]string),
|
||||
LastRoundStart: time.Now(),
|
||||
}
|
||||
}
|
||||
|
||||
// ResetRound limpa os votos e proposta da rodada atual (usado ao iniciar nova rodada).
|
||||
func (rs *RoundState) ResetRound(round uint64) {
|
||||
rs.Mu.Lock()
|
||||
defer rs.Mu.Unlock()
|
||||
rs.Round = round
|
||||
rs.Proposal = ""
|
||||
rs.Prevotes = make(map[string]string)
|
||||
rs.Precommits = make(map[string]string)
|
||||
rs.LastRoundStart = time.Now()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user