Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added .changelog/6514.trivial.md
Empty file.
4 changes: 2 additions & 2 deletions go/common/node/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,7 @@ func HashRAK(rak signature.PublicKey) hash.Hash {
}

// Verify verifies the node's TEE capabilities, at the provided timestamp and height.
func (c *CapabilityTEE) Verify(teeCfg *TEEFeatures, ts time.Time, height uint64, constraints []byte, nodeID signature.PublicKey, isFeatureVersion242 bool) error {
func (c *CapabilityTEE) Verify(teeCfg *TEEFeatures, ts time.Time, height uint64, constraints []byte, nodeID signature.PublicKey, isFeatureVersion261 bool) error {
switch c.Hardware {
case TEEHardwareIntelSGX:
// Parse SGX remote attestation.
Expand All @@ -591,7 +591,7 @@ func (c *CapabilityTEE) Verify(teeCfg *TEEFeatures, ts time.Time, height uint64,
if err := cbor.Unmarshal(constraints, &sc); err != nil {
return fmt.Errorf("node: malformed SGX constraints: %w", err)
}
if err := sc.ValidateBasic(teeCfg, isFeatureVersion242); err != nil {
if err := sc.ValidateBasic(teeCfg, isFeatureVersion261); err != nil {
return fmt.Errorf("node: malformed SGX constraints: %w", err)
}

Expand Down
4 changes: 2 additions & 2 deletions go/common/node/sgx.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ func (sc *SGXConstraints) MarshalCBOR() ([]byte, error) {
}

// ValidateBasic performs basic structure validity checks.
func (sc *SGXConstraints) ValidateBasic(cfg *TEEFeatures, isFeatureVersion242 bool) error {
func (sc *SGXConstraints) ValidateBasic(cfg *TEEFeatures, isFeatureVersion261 bool) error {
if cfg == nil {
cfg = &emptyFeatures
}
Expand All @@ -121,7 +121,7 @@ func (sc *SGXConstraints) ValidateBasic(cfg *TEEFeatures, isFeatureVersion242 bo
}

// Check that policy is compliant with the current feature version.
if err := sc.Policy.Validate(isFeatureVersion242); err != nil {
if err := sc.Policy.Validate(isFeatureVersion261); err != nil {
return fmt.Errorf("invalid policy: %w", err)
}

Expand Down
4 changes: 2 additions & 2 deletions go/common/sgx/quote/quote.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ type Policy struct {
}

// Validate validates the policy.
func (p *Policy) Validate(isFeatureVersion242 bool) error {
if isFeatureVersion242 {
func (p *Policy) Validate(isFeatureVersion261 bool) error {
if isFeatureVersion261 {
return nil
}

Expand Down
4 changes: 2 additions & 2 deletions go/consensus/cometbft/apps/keymanager/churp/txs.go
Original file line number Diff line number Diff line change
Expand Up @@ -559,8 +559,8 @@ func resetHandoff(status *churp.Status, nextHandoff beacon.EpochTime) {
}

func verifyPolicy(ctx *tmapi.Context, policy *churp.SignedPolicySGX) error {
// Allow non-empty `MayQuery` field with the 24.2 release.
enabled, err := features.IsFeatureVersion(ctx, migrations.Version242)
// Allow non-empty `MayQuery` field with the 26.1 feature version enabled.
enabled, err := features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion go/consensus/cometbft/apps/keymanager/common/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func RegistryRuntimes(ctx *tmapi.Context, doc *genesis.Document, epoch beacon.Ep
regSt := doc.Registry
rtMap := make(map[common.Namespace]*registry.Runtime)
for _, rt := range regSt.Runtimes {
verifyOpts := registry.VerifyRuntimeOptions{IsGenesis: true, IsFeatureVersion242: true}
verifyOpts := registry.VerifyRuntimeOptions{IsGenesis: true, IsFeatureVersion261: true}
err := registry.VerifyRuntime(&regSt.Parameters, ctx.Logger(), rt, epoch, verifyOpts)
if err != nil {
ctx.Logger().Error("InitChain: Invalid runtime",
Expand Down
4 changes: 2 additions & 2 deletions go/consensus/cometbft/apps/keymanager/secrets/epoch.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func (ext *secretsExt) onEpochChange(ctx *tmapi.Context, epoch beacon.EpochTime)
return fmt.Errorf("failed to get consensus parameters: %w", err)
}

isFeatureVersion242, err := features.IsFeatureVersion(ctx, migrations.Version242)
isFeatureVersion261, err := features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return err
}
Expand Down Expand Up @@ -71,7 +71,7 @@ func (ext *secretsExt) onEpochChange(ctx *tmapi.Context, epoch beacon.EpochTime)
return fmt.Errorf("failed to query key manager master secret: %w", err)
}

newStatus := generateStatus(ctx, rt, oldStatus, secret, nodes, params, epoch, isFeatureVersion242)
newStatus := generateStatus(ctx, rt, oldStatus, secret, nodes, params, epoch, isFeatureVersion261)
if forceEmit || !bytes.Equal(cbor.Marshal(oldStatus), cbor.Marshal(newStatus)) {
ctx.Logger().Debug("status updated",
"id", newStatus.ID,
Expand Down
8 changes: 4 additions & 4 deletions go/consensus/cometbft/apps/keymanager/secrets/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func generateStatus( // nolint: gocyclo
nodes []*node.Node,
params *registry.ConsensusParameters,
epoch beacon.EpochTime,
isFeatureVersion242 bool,
isFeatureVersion261 bool,
) *secrets.Status {
status := &secrets.Status{
ID: kmrt.ID,
Expand Down Expand Up @@ -112,7 +112,7 @@ nextNode:
continue nextNode
}

initResponse, err := VerifyExtraInfo(ctx.Logger(), n.ID, kmrt, nodeRt, ts, height, params, isFeatureVersion242)
initResponse, err := VerifyExtraInfo(ctx.Logger(), n.ID, kmrt, nodeRt, ts, height, params, isFeatureVersion261)
if err != nil {
ctx.Logger().Error("failed to validate ExtraInfo", append(vars, "err", err)...)
continue nextNode
Expand Down Expand Up @@ -232,9 +232,9 @@ func VerifyExtraInfo(
ts time.Time,
height uint64,
params *registry.ConsensusParameters,
isFeatureVersion242 bool,
isFeatureVersion261 bool,
) (*secrets.InitResponse, error) {
if err := registry.VerifyNodeRuntimeEnclaveIDs(logger, nodeID, nodeRt, rt, params.TEEFeatures, ts, height, isFeatureVersion242); err != nil {
if err := registry.VerifyNodeRuntimeEnclaveIDs(logger, nodeID, nodeRt, rt, params.TEEFeatures, ts, height, isFeatureVersion261); err != nil {
return nil, err
}
if nodeRt.ExtraInfo == nil {
Expand Down
6 changes: 3 additions & 3 deletions go/consensus/cometbft/apps/keymanager/secrets/txs.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ func (ext *secretsExt) updatePolicy(
status.NextPolicy = sigPol

// Support legacy behavior where the policy was applied immediately.
isFeatureVersion242, err := features.IsFeatureVersion(ctx, migrations.Version242)
isFeatureVersion261, err := features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return err
}
if !isFeatureVersion242 {
if !isFeatureVersion261 {
// Ok, as far as we can tell the new policy is valid, apply it.
//
// Note: The key manager cohort responsible for servicing this ID
Expand All @@ -104,7 +104,7 @@ func (ext *secretsExt) updatePolicy(

nodes, _ := regState.Nodes(ctx)
registry.SortNodeList(nodes)
status = generateStatus(ctx, kmRt, status, nil, nodes, regParams, epoch, isFeatureVersion242)
status = generateStatus(ctx, kmRt, status, nil, nodes, regParams, epoch, isFeatureVersion261)
}

if err := state.SetStatus(ctx, status); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion go/consensus/cometbft/apps/registry/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func (app *Application) InitChain(ctx *abciAPI.Context, _ types.RequestInitChain
if rt == nil {
return fmt.Errorf("registry: genesis runtime index %d is nil", i)
}
verifyOpts := registry.VerifyRuntimeOptions{IsGenesis: ctx.IsInitChain(), IsFeatureVersion242: true}
verifyOpts := registry.VerifyRuntimeOptions{IsGenesis: ctx.IsInitChain(), IsFeatureVersion261: true}
err := registry.VerifyRuntime(&st.Parameters, ctx.Logger(), rt, epoch, verifyOpts)
if err != nil {
return err
Expand Down
4 changes: 2 additions & 2 deletions go/consensus/cometbft/apps/registry/messages.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func (app *Application) changeParameters(ctx *api.Context, msg any, apply bool)
return nil, fmt.Errorf("registry: failed to unmarshal consensus parameter changes: %w", err)
}

isFeatureVersion242, err := features.IsFeatureVersion(ctx, migrations.Version242)
isFeatureVersion261, err := features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return nil, err
}
Expand All @@ -45,7 +45,7 @@ func (app *Application) changeParameters(ctx *api.Context, msg any, apply bool)
if err = changes.Apply(params); err != nil {
return nil, fmt.Errorf("registry: failed to apply consensus parameter changes: %w", err)
}
if err = params.SanityCheck(isFeatureVersion242); err != nil {
if err = params.SanityCheck(isFeatureVersion261); err != nil {
return nil, fmt.Errorf("registry: failed to validate consensus parameters: %w", err)
}

Expand Down
16 changes: 8 additions & 8 deletions go/consensus/cometbft/apps/registry/transactions.go
Original file line number Diff line number Diff line change
Expand Up @@ -228,9 +228,9 @@ func (app *Application) registerNode( // nolint: gocyclo
return err
}

isFeatureVersion242 := true
isFeatureVersion261 := true
if !ctx.IsInitChain() {
isFeatureVersion242, err = features.IsFeatureVersion(ctx, migrations.Version242)
isFeatureVersion261, err = features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return err
}
Expand All @@ -249,7 +249,7 @@ func (app *Application) registerNode( // nolint: gocyclo
epoch,
state,
state,
isFeatureVersion242,
isFeatureVersion261,
)
if err != nil {
return err
Expand Down Expand Up @@ -590,15 +590,15 @@ func (app *Application) registerRuntime( // nolint: gocyclo
return nil, err
}

isFeatureVersion242 := true
isFeatureVersion261 := true
if !ctx.IsInitChain() {
isFeatureVersion242, err = features.IsFeatureVersion(ctx, migrations.Version242)
isFeatureVersion261, err = features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return nil, err
}
}

verifyOpts := registry.VerifyRuntimeOptions{IsGenesis: ctx.IsInitChain(), IsFeatureVersion242: isFeatureVersion242}
verifyOpts := registry.VerifyRuntimeOptions{IsGenesis: ctx.IsInitChain(), IsFeatureVersion261: isFeatureVersion261}
if err = registry.VerifyRuntime(params, ctx.Logger(), rt, epoch, verifyOpts); err != nil {
return nil, err
}
Expand Down Expand Up @@ -649,7 +649,7 @@ func (app *Application) registerRuntime( // nolint: gocyclo
switch {
case existingRt != nil:
// Existing runtime, verify update.
err = registry.VerifyRuntimeUpdate(ctx.Logger(), existingRt, rt, epoch, params, isFeatureVersion242)
err = registry.VerifyRuntimeUpdate(ctx.Logger(), existingRt, rt, epoch, params, isFeatureVersion261)
default:
// New runtime, verify new descriptor.
err = registry.VerifyRuntimeNew(ctx.Logger(), rt, epoch, params, ctx.IsInitChain())
Expand Down Expand Up @@ -780,7 +780,7 @@ func (app *Application) registerRuntime( // nolint: gocyclo
return nil, fmt.Errorf("failed to set runtime: %w", err)
}

switch isFeatureVersion242 {
switch isFeatureVersion261 {
case true:
switch existingRt {
case nil:
Expand Down
14 changes: 7 additions & 7 deletions go/consensus/cometbft/apps/scheduler/scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,8 @@ func (app *Application) elect(ctx *api.Context, epoch beacon.EpochTime, reward b
return fmt.Errorf("cometbft/scheduler: couldn't elect validators: %w", err)
}

// Check if the current feature version is at least 24.2.
isFeatureVersion242, err := features.IsFeatureVersion(ctx, migrations.Version242)
// Check if the current feature version is at least 26.1.
isFeatureVersion261, err := features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return err
}
Expand All @@ -278,7 +278,7 @@ func (app *Application) elect(ctx *api.Context, epoch beacon.EpochTime, reward b
committeeNodes,
entropy,
vrf,
isFeatureVersion242,
isFeatureVersion261,
); err != nil {
return fmt.Errorf("cometbft/scheduler: couldn't elect committees: %w", err)
}
Expand Down Expand Up @@ -398,7 +398,7 @@ func isSuitableExecutorWorker(
rt *registry.Runtime,
epoch beacon.EpochTime,
registryParams *registry.ConsensusParameters,
isFeatureVersion242 bool,
isFeatureVersion261 bool,
) bool {
if !n.node.HasRoles(node.RoleComputeWorker) {
return false
Expand Down Expand Up @@ -439,7 +439,7 @@ func isSuitableExecutorWorker(
uint64(ctx.LastHeight()),
activeDeployment.TEE,
n.node.ID,
isFeatureVersion242,
isFeatureVersion261,
); err != nil {
ctx.Logger().Warn("failed to verify node TEE attestation",
"err", err,
Expand Down Expand Up @@ -467,7 +467,7 @@ func (app *Application) electCommittees(
nodes []*nodeWithStatus,
entropy []byte,
vrf *beacon.PrevVRFState,
isFeatureVersion242 bool,
isFeatureVersion261 bool,
) error {
runtimes, err := fetchRuntimes(ctx)
if err != nil {
Expand All @@ -494,7 +494,7 @@ func (app *Application) electCommittees(
kind,
entropy,
vrf,
isFeatureVersion242,
isFeatureVersion261,
); err != nil {
return err
}
Expand Down
10 changes: 5 additions & 5 deletions go/consensus/cometbft/apps/scheduler/shuffle.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ func electCommittee(
kind scheduler.CommitteeKind,
entropy []byte,
vrf *beacon.PrevVRFState,
isFeatureVersion242 bool,
isFeatureVersion261 bool,
) error {
ctx.Logger().Debug("electing committee",
"epoch", epoch,
Expand All @@ -134,7 +134,7 @@ func electCommittee(
)

// Only generic compute runtimes need to elect all the committees.
switch isFeatureVersion242 {
switch isFeatureVersion261 {
case false:
if !rt.IsCompute() && kind != scheduler.KindComputeExecutor {
return nil
Expand All @@ -159,7 +159,7 @@ func electCommittee(
kind,
entropy,
vrf,
isFeatureVersion242,
isFeatureVersion261,
)
if err != nil {
return err
Expand Down Expand Up @@ -205,7 +205,7 @@ func electCommitteeMembers( //nolint: gocyclo
kind scheduler.CommitteeKind,
entropy []byte,
vrf *beacon.PrevVRFState,
isFeatureVersion242 bool,
isFeatureVersion261 bool,
) ([]*scheduler.CommitteeNode, error) {
// Workers must be listed before backup workers, as other parts of the code depend on this
// order for better performance.
Expand Down Expand Up @@ -274,7 +274,7 @@ func electCommitteeMembers( //nolint: gocyclo
}

// Check general node compatibility.
if !isSuitableFn(ctx, n, rt, epoch, registryParameters, isFeatureVersion242) {
if !isSuitableFn(ctx, n, rt, epoch, registryParameters, isFeatureVersion261) {
continue
}

Expand Down
6 changes: 3 additions & 3 deletions go/consensus/cometbft/apps/supplementarysanity/checks.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@ func checkRegistry(ctx *abciAPI.Context, now beacon.EpochTime) error {
return fmt.Errorf("SuspendedRuntimes: %w", err)
}

isFeatureVersion242, err := features.IsFeatureVersion(ctx, migrations.Version242)
isFeatureVersion261, err := features.IsFeatureVersion(ctx, migrations.Version261)
if err != nil {
return err
}

runtimeLookup, err := registry.SanityCheckRuntimes(logger, params, runtimes, suspendedRuntimes, false, now, isFeatureVersion242)
runtimeLookup, err := registry.SanityCheckRuntimes(logger, params, runtimes, suspendedRuntimes, false, now, isFeatureVersion261)
if err != nil {
return fmt.Errorf("SanityCheckRuntimes: %w", err)
}
Expand All @@ -76,7 +76,7 @@ func checkRegistry(ctx *abciAPI.Context, now beacon.EpochTime) error {
if err != nil {
return fmt.Errorf("SignedNodes: %w", err)
}
_, err = registry.SanityCheckNodes(logger, params, signedNodes, seenEntities, runtimeLookup, false, now, ctx.Now(), uint64(ctx.LastHeight()), isFeatureVersion242)
_, err = registry.SanityCheckNodes(logger, params, signedNodes, seenEntities, runtimeLookup, false, now, ctx.Now(), uint64(ctx.LastHeight()), isFeatureVersion261)
if err != nil {
return fmt.Errorf("SanityCheckNodes: %w", err)
}
Expand Down
2 changes: 1 addition & 1 deletion go/oasis-test-runner/scenario/e2e/scenario.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ func RegisterScenarios() error {
NodeUpgradeEmpty,
NodeUpgradeCancel,
NodeUpgradeConsensus240,
NodeUpgradeConsensus242,
NodeUpgradeConsensus261,
// Debonding entries from genesis test.
Debond,
// Consensus state sync.
Expand Down
14 changes: 7 additions & 7 deletions go/oasis-test-runner/scenario/e2e/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,9 +238,9 @@ func (c *upgrade240Checker) PostUpgradeFn(ctx context.Context, ctrl *oasis.Contr
return nil
}

type upgrade242Checker struct{}
type upgrade261Checker struct{}

func (c *upgrade242Checker) PreUpgradeFn(ctx context.Context, ctrl *oasis.Controller) error {
func (c *upgrade261Checker) PreUpgradeFn(ctx context.Context, ctrl *oasis.Controller) error {
// Check consensus parameters.
consParams, err := ctrl.Consensus.GetParameters(ctx, consensus.HeightLatest)
if err != nil {
Expand All @@ -255,15 +255,15 @@ func (c *upgrade242Checker) PreUpgradeFn(ctx context.Context, ctrl *oasis.Contro
return nil
}

func (c *upgrade242Checker) PostUpgradeFn(ctx context.Context, ctrl *oasis.Controller) error {
func (c *upgrade261Checker) PostUpgradeFn(ctx context.Context, ctrl *oasis.Controller) error {
// Check updated consensus parameters.
consParams, err := ctrl.Consensus.GetParameters(ctx, consensus.HeightLatest)
if err != nil {
return fmt.Errorf("can't get consensus parameters: %w", err)
}
if consParams.Parameters.FeatureVersion == nil || *consParams.Parameters.FeatureVersion != migrations.Version242 {
if consParams.Parameters.FeatureVersion == nil || *consParams.Parameters.FeatureVersion != migrations.Version261 {
return fmt.Errorf("consensus parameter FeatureVersion not updated correctly (expected: %s actual: %s)",
migrations.Version242,
migrations.Version261,
consParams.Parameters.FeatureVersion,
)
}
Expand All @@ -278,8 +278,8 @@ var (
NodeUpgradeEmpty scenario.Scenario = newNodeUpgradeImpl(migrations.EmptyHandler, &noOpUpgradeChecker{}, false)
// NodeUpgradeConsensus240 is the node upgrade scenario for migrating to consensus 24.0.
NodeUpgradeConsensus240 scenario.Scenario = newNodeUpgradeImpl(migrations.Consensus240, &upgrade240Checker{}, false)
// NodeUpgradeConsensus242 is the node upgrade scenario for migrating to consensus 24.2.
NodeUpgradeConsensus242 scenario.Scenario = newNodeUpgradeImpl(migrations.Consensus242, &upgrade242Checker{}, false)
// NodeUpgradeConsensus261 is the node upgrade scenario for migrating to consensus 26.1.
NodeUpgradeConsensus261 scenario.Scenario = newNodeUpgradeImpl(migrations.Consensus261, &upgrade261Checker{}, false)

malformedDescriptor = []byte(`{
"v": 1,
Expand Down
Loading
Loading