diff --git a/cl/blockbuilder/blockbuilder.go b/cl/blockbuilder/blockbuilder.go index 370d154c9..6acc77edb 100644 --- a/cl/blockbuilder/blockbuilder.go +++ b/cl/blockbuilder/blockbuilder.go @@ -50,7 +50,6 @@ type BlockBuilder struct { buildDelay time.Duration buildEmptyBlocksDelay time.Duration buildDelayMs uint64 - LastCallTime time.Time lastBlockTime time.Time feeRecipient common.Address executionHead *types.ExecutionHead @@ -84,7 +83,7 @@ func NewMemberBlockBuilder(engineCL EngineClient, logger *slog.Logger) *BlockBui } func (bb *BlockBuilder) SetLastCallTimeToZero() { - bb.LastCallTime = time.Time{} + bb.lastBlockTime = time.Time{} } func (bb *BlockBuilder) startBuild(ctx context.Context, head *types.ExecutionHead, ts uint64) (engine.ForkChoiceResponse, error) { @@ -142,13 +141,12 @@ func (bb *BlockBuilder) GetPayload(ctx context.Context) error { var ts uint64 - if bb.LastCallTime.IsZero() { + if bb.lastBlockTime.IsZero() { // First block, initialize LastCallTime and set default timestamp ts = uint64(time.Now().UnixMilli()) + bb.buildDelayMs - bb.LastCallTime = currentCallTime } else { // Compute diff in milliseconds - diff := currentCallTime.Sub(bb.LastCallTime) + diff := currentCallTime.Sub(bb.lastBlockTime) diffMillis := diff.Milliseconds() if uint64(diffMillis) <= bb.buildDelayMs { @@ -158,8 +156,6 @@ func (bb *BlockBuilder) GetPayload(ctx context.Context) error { multiples := (uint64(diffMillis) + bb.buildDelayMs - 1) / bb.buildDelayMs // Round up to next multiple of buildDelay ts = prevTimestamp + multiples*bb.buildDelayMs } - - bb.LastCallTime = currentCallTime } // Very low chance to happen, only after restart and time.Now is broken @@ -225,16 +221,16 @@ func (bb *BlockBuilder) GetPayload(ctx context.Context) error { return fmt.Errorf("failed to get payload: %w", err) } - // hasTransactions := len(payloadResp.ExecutionPayload.Transactions) > 0 + hasTransactions := len(payloadResp.ExecutionPayload.Transactions) > 0 now := time.Now() - // timeSinceLastBlock := now.Sub(bb.lastBlockTime) - // if !hasTransactions && timeSinceLastBlock < bb.buildEmptyBlocksDelay { - // bb.logger.Info( - // "Leader: Skipping empty block", - // "timeSinceLastBlock", timeSinceLastBlock, - // ) - // return ErrEmptyBlock - // } + timeSinceLastBlock := now.Sub(bb.lastBlockTime) + if !hasTransactions && timeSinceLastBlock < bb.buildEmptyBlocksDelay { + bb.logger.Info( + "Leader: Skipping empty block", + "timeSinceLastBlock", timeSinceLastBlock, + ) + return ErrEmptyBlock + } payloadData, err := msgpack.Marshal(payloadResp.ExecutionPayload) if err != nil { diff --git a/p2p/gen/go/bidderapi/v1/bidderapi.pb.gw.go b/p2p/gen/go/bidderapi/v1/bidderapi.pb.gw.go index 860960af6..e594b1fc8 100644 --- a/p2p/gen/go/bidderapi/v1/bidderapi.pb.gw.go +++ b/p2p/gen/go/bidderapi/v1/bidderapi.pb.gw.go @@ -43,6 +43,9 @@ func request_Bidder_SendBid_0(ctx context.Context, marshaler runtime.Marshaler, if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.SendBid(ctx, &protoReq) if err != nil { return nil, metadata, err @@ -63,7 +66,9 @@ func request_Bidder_Deposit_0(ctx context.Context, marshaler runtime.Marshaler, metadata runtime.ServerMetadata err error ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } val, ok := pathParams["amount"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "amount") @@ -114,7 +119,9 @@ func request_Bidder_AutoDeposit_0(ctx context.Context, marshaler runtime.Marshal metadata runtime.ServerMetadata err error ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } val, ok := pathParams["amount"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "amount") @@ -164,7 +171,9 @@ func request_Bidder_CancelAutoDeposit_0(ctx context.Context, marshaler runtime.M protoReq CancelAutoDepositRequest metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -195,7 +204,9 @@ func request_Bidder_AutoDepositStatus_0(ctx context.Context, marshaler runtime.M protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.AutoDepositStatus(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -217,6 +228,9 @@ func request_Bidder_WithdrawFromWindows_0(ctx context.Context, marshaler runtime if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.WithdrawFromWindows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -240,7 +254,9 @@ func request_Bidder_GetDeposit_0(ctx context.Context, marshaler runtime.Marshale protoReq GetDepositRequest metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -273,7 +289,9 @@ func request_Bidder_Withdraw_0(ctx context.Context, marshaler runtime.Marshaler, protoReq WithdrawRequest metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -306,7 +324,9 @@ func request_Bidder_GetBidInfo_0(ctx context.Context, marshaler runtime.Marshale protoReq GetBidInfoRequest metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -337,7 +357,9 @@ func request_Bidder_ClaimSlashedFunds_0(ctx context.Context, marshaler runtime.M protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ClaimSlashedFunds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/p2p/gen/go/debugapi/v1/debugapi.pb.gw.go b/p2p/gen/go/debugapi/v1/debugapi.pb.gw.go index d97675e37..c825e1434 100644 --- a/p2p/gen/go/debugapi/v1/debugapi.pb.gw.go +++ b/p2p/gen/go/debugapi/v1/debugapi.pb.gw.go @@ -40,7 +40,9 @@ func request_DebugService_GetTopology_0(ctx context.Context, marshaler runtime.M protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetTopology(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -59,7 +61,9 @@ func request_DebugService_GetPendingTransactions_0(ctx context.Context, marshale protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetPendingTransactions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -79,7 +83,9 @@ func request_DebugService_CancelTransaction_0(ctx context.Context, marshaler run metadata runtime.ServerMetadata err error ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } val, ok := pathParams["tx_hash"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "tx_hash") diff --git a/p2p/gen/go/notificationsapi/v1/notifications.pb.gw.go b/p2p/gen/go/notificationsapi/v1/notifications.pb.gw.go index ec0297c99..dfdd9314f 100644 --- a/p2p/gen/go/notificationsapi/v1/notifications.pb.gw.go +++ b/p2p/gen/go/notificationsapi/v1/notifications.pb.gw.go @@ -43,6 +43,9 @@ func request_Notifications_Subscribe_0(ctx context.Context, marshaler runtime.Ma if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.Subscribe(ctx, &protoReq) if err != nil { return nil, metadata, err diff --git a/p2p/gen/go/providerapi/v1/providerapi.pb.gw.go b/p2p/gen/go/providerapi/v1/providerapi.pb.gw.go index 652fccfb2..fd025c349 100644 --- a/p2p/gen/go/providerapi/v1/providerapi.pb.gw.go +++ b/p2p/gen/go/providerapi/v1/providerapi.pb.gw.go @@ -40,7 +40,9 @@ func request_Provider_ReceiveBids_0(ctx context.Context, marshaler runtime.Marsh protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.ReceiveBids(ctx, &protoReq) if err != nil { return nil, metadata, err @@ -102,7 +104,9 @@ func request_Provider_Stake_0(ctx context.Context, marshaler runtime.Marshaler, metadata runtime.ServerMetadata err error ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } val, ok := pathParams["amount"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "amount") @@ -150,7 +154,9 @@ func request_Provider_GetStake_0(ctx context.Context, marshaler runtime.Marshale protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetStake(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -169,7 +175,9 @@ func request_Provider_GetMinStake_0(ctx context.Context, marshaler runtime.Marsh protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetMinStake(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -188,7 +196,9 @@ func request_Provider_WithdrawStake_0(ctx context.Context, marshaler runtime.Mar protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.WithdrawStake(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -207,7 +217,9 @@ func request_Provider_Unstake_0(ctx context.Context, marshaler runtime.Marshaler protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.Unstake(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -226,7 +238,9 @@ func request_Provider_GetProviderReward_0(ctx context.Context, marshaler runtime protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetProviderReward(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -245,7 +259,9 @@ func request_Provider_WithdrawProviderReward_0(ctx context.Context, marshaler ru protoReq EmptyMessage metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.WithdrawProviderReward(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -266,7 +282,9 @@ func request_Provider_GetCommitmentInfo_0(ctx context.Context, marshaler runtime protoReq GetCommitmentInfoRequest metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } diff --git a/p2p/gen/go/validatorapi/v1/validatorapi.pb.gw.go b/p2p/gen/go/validatorapi/v1/validatorapi.pb.gw.go index 2ab8e2717..a1acfb822 100644 --- a/p2p/gen/go/validatorapi/v1/validatorapi.pb.gw.go +++ b/p2p/gen/go/validatorapi/v1/validatorapi.pb.gw.go @@ -42,7 +42,9 @@ func request_Validator_GetValidators_0(ctx context.Context, marshaler runtime.Ma protoReq GetValidatorsRequest metadata runtime.ServerMetadata ) - io.Copy(io.Discard, req.Body) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) }