Skip to content

Commit 11c9b72

Browse files
committed
Just deactivated attestation publish to check the node running without issues
1 parent c85151e commit 11c9b72

File tree

2 files changed

+17
-22
lines changed

2 files changed

+17
-22
lines changed

lib/lambda_ethereum_consensus/validator/validator.ex

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ defmodule LambdaEthereumConsensus.Validator do
77
defstruct [
88
:slot,
99
:root,
10+
:epoch,
1011
:duties,
1112
:validator,
1213
:payload_builder
@@ -41,6 +42,7 @@ defmodule LambdaEthereumConsensus.Validator do
4142
# just at the begining of every epoch, and then just update them as needed.
4243
@type state :: %__MODULE__{
4344
slot: Types.slot(),
45+
epoch: Types.epoch(),
4446
root: Types.root(),
4547
duties: Duties.duties(),
4648
validator: validator(),
@@ -51,6 +53,7 @@ defmodule LambdaEthereumConsensus.Validator do
5153
def new({head_slot, head_root, {pubkey, privkey}}) do
5254
state = %__MODULE__{
5355
slot: head_slot,
56+
epoch: Misc.compute_epoch_at_slot(head_slot),
5457
root: head_root,
5558
duties: Duties.empty_duties(),
5659
validator: %{
@@ -152,17 +155,8 @@ defmodule LambdaEthereumConsensus.Validator do
152155

153156
defp update_state(%{slot: slot, root: root} = state, slot, root), do: state
154157

155-
defp update_state(%{slot: slot, root: _other_root} = state, slot, head_root) do
156-
# TODO: this log is appearing for every block
157-
# Logger.warning("[Validator] Block came late", slot: slot, root: head_root)
158-
159-
# TODO: rollback stale data instead of the whole cache
160-
epoch = Misc.compute_epoch_at_slot(slot + 1)
161-
recompute_duties(state, 0, epoch, slot, head_root)
162-
end
163-
164-
defp update_state(%{slot: last_slot} = state, slot, head_root) do
165-
last_epoch = Misc.compute_epoch_at_slot(last_slot + 1)
158+
# Epoch as part of the state now avoids recomputing the duties at every block
159+
defp update_state(%{epoch: last_epoch} = state, slot, head_root) do
166160
epoch = Misc.compute_epoch_at_slot(slot + 1)
167161

168162
if last_epoch == epoch do
@@ -187,7 +181,7 @@ defmodule LambdaEthereumConsensus.Validator do
187181
move_subnets(state.duties, new_duties)
188182
Duties.log_duties(new_duties, state.validator.index)
189183

190-
%{state | slot: slot, root: head_root, duties: new_duties}
184+
%{state | slot: slot, root: head_root, duties: new_duties, epoch: epoch}
191185
end
192186

193187
@spec fetch_target_state(Types.epoch(), Types.root()) :: Types.BeaconState.t()
@@ -254,8 +248,9 @@ defmodule LambdaEthereumConsensus.Validator do
254248
log_md = [slot: attestation.data.slot, attestation: attestation, subnet_id: subnet_id]
255249
log_debug(validator.index, "publishing attestation", log_md)
256250

257-
Gossip.Attestation.publish(subnet_id, attestation)
258-
|> log_info_result(validator.index, "published attestation", log_md)
251+
# FIXME: Uncommenting this line generates the invalid signature errors upon proposals
252+
# Gossip.Attestation.publish(subnet_id, attestation)
253+
# |> log_info_result(validator.index, "published attestation", log_md)
259254

260255
if current_duty.should_aggregate? do
261256
log_debug(validator.index, "collecting for future aggregation", log_md)
@@ -400,16 +395,16 @@ defmodule LambdaEthereumConsensus.Validator do
400395

401396
defp start_payload_builder(%{validator: validator} = state, proposed_slot, head_root) do
402397
# TODO: handle reorgs and late blocks
403-
log_debug(validator.index, "starting building payload", slot: proposed_slot)
398+
log_debug(validator.index, "starting building payload for slot #{proposed_slot}")
404399

405400
case BlockBuilder.start_building_payload(proposed_slot, head_root) do
406401
{:ok, payload_id} ->
407-
log_debug(validator.index, "payload built", slot: proposed_slot)
402+
log_info(validator.index, "payload built for slot #{proposed_slot}")
408403

409404
%{state | payload_builder: {proposed_slot, head_root, payload_id}}
410405

411406
{:error, reason} ->
412-
log_error(validator.index, "start building payload", reason, slot: proposed_slot)
407+
log_error(validator.index, "start building payload for slot #{proposed_slot}", reason)
413408

414409
%{state | payload_builder: nil}
415410
end
@@ -517,10 +512,10 @@ defmodule LambdaEthereumConsensus.Validator do
517512
defp log_result({:error, reason}, _level, index, message, metadata),
518513
do: log_error(index, message, reason, metadata)
519514

520-
defp log_info(index, message, metadata),
515+
defp log_info(index, message, metadata \\ []),
521516
do: Logger.info("[Validator] #{index} #{message}", metadata)
522517

523-
defp log_debug(index, message, metadata),
518+
defp log_debug(index, message, metadata \\ []),
524519
do: Logger.debug("[Validator] #{index} #{message}", metadata)
525520

526521
defp log_error(index, message, reason, metadata \\ []),

lib/lambda_ethereum_consensus/validator/validator_manager.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ defmodule LambdaEthereumConsensus.Validator.ValidatorManager do
4949

5050
@spec notify_new_block(Types.slot(), Types.root()) :: :ok
5151
def notify_new_block(slot, head_root) do
52-
# Making this alone a cast solves the issue
53-
GenServer.cast(__MODULE__, {:notify_all, {:new_block, slot, head_root}})
54-
# notify_validators({:new_block, slot, head_root})
52+
# Making this alone a cast sometimes solves the issue for a while
53+
# GenServer.cast(__MODULE__, {:notify_all, {:new_block, slot, head_root}})
54+
notify_validators({:new_block, slot, head_root})
5555
end
5656

5757
@spec notify_tick(Clock.logical_time()) :: :ok

0 commit comments

Comments
 (0)