Skip to content

Commit 255398d

Browse files
committed
add trust base verification to cli
1 parent 5201b95 commit 255398d

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

cmd/aggregator/main.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,13 @@ func main() {
9999
log.WithComponent("main").Info("Database connection established")
100100

101101
// Store trust bases from config files
102+
trustBaseValidator := service.NewTrustBaseValidator(storageInstance.TrustBaseStorage())
102103
for _, tb := range cfg.BFT.TrustBases {
103-
if err := storageInstance.TrustBaseStorage().Store(ctx, tb); err != nil {
104+
if err := trustBaseValidator.Verify(ctx, &tb); err != nil {
105+
log.WithComponent("main").Error(fmt.Sprintf("Trust base verification failed"), "error", err.Error())
106+
gracefulExit(asyncLogger, 1)
107+
}
108+
if err := storageInstance.TrustBaseStorage().Store(ctx, &tb); err != nil {
104109
if errors.Is(err, interfaces.ErrTrustBaseAlreadyExists) {
105110
log.WithComponent("main").Warn(fmt.Sprintf("Trust base already exists, not overwriting it"), "epoch", tb.GetEpoch())
106111
} else {

internal/config/config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ type BFTConfig struct {
203203
Enabled bool `mapstructure:"enabled"`
204204
KeyConf *partition.KeyConf `mapstructure:"key_conf"`
205205
ShardConf *types.PartitionDescriptionRecord `mapstructure:"shard_conf"`
206-
TrustBases []types.RootTrustBase `mapstructure:"trust_bases"`
206+
TrustBases []types.RootTrustBaseV1 `mapstructure:"trust_bases"`
207207

208208
// Peer configuration
209209
Address string `mapstructure:"address"`
@@ -332,13 +332,13 @@ func Load() (*Config, error) {
332332
return nil, fmt.Errorf("failed to load shard configuration: %w", err)
333333
}
334334
trustBaseFiles := strings.Split(getEnvOrDefault("BFT_TRUST_BASE_FILES", "bft-config/trust-base.json"), ",")
335-
config.BFT.TrustBases = make([]types.RootTrustBase, 0, len(trustBaseFiles))
335+
config.BFT.TrustBases = make([]types.RootTrustBaseV1, 0, len(trustBaseFiles))
336336
for _, file := range trustBaseFiles {
337337
trustBaseV1 := types.RootTrustBaseV1{}
338338
if err := loadConf(file, &trustBaseV1); err != nil {
339339
return nil, fmt.Errorf("failed to load trust base configuration from %s: %w", file, err)
340340
}
341-
config.BFT.TrustBases = append(config.BFT.TrustBases, &trustBaseV1)
341+
config.BFT.TrustBases = append(config.BFT.TrustBases, trustBaseV1)
342342
}
343343
}
344344

0 commit comments

Comments
 (0)