Skip to content
Merged
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
23 changes: 16 additions & 7 deletions breakout-rooms/leanConsensus/pq-interop/pq-devnet-3.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,26 @@
- **Signature aggregation:** [leanMultisig](https://github.com/leanEthereum/leanMultisig)
- **Changes**
- **validator-config.yaml:**
- New field: `validator.attestation_subnet_id` - The subnet that the validator propagates attestations to. Each validator must belong to one attestation subnet.
- New field: `validator.is_aggregator` - A boolean flag whether the validator has the aggregator duty in its attestation subnet. Each attestation subnet must have 1 validator assigned as the aggregator.
- Note that with above, the aggregator re-uses the same ENR as the validator (same instance)
- New field: `is_aggregator` - A boolean ENR record indicating whether the validator has the aggregator duty in its attestation subnet. Each attestation subnet must have 1 validator assigned as the aggregator. If field is missing we assume the node is not an aggregator.
- Example new validator config for aggregator:
```yaml
- name: node_0
privkey: 0000000000000000010000000000000002000000000000000300000000000000
enrFields:
ip: 10.0.0.0
quic: 10000
is_aggregator: true
```

- **Networking:**
- New ENR metadata field: `is_aggregator`, follows `validator.is_aggregator` value
- New ENR metadata field: `is_aggregator`, follows previous explanation
- Every validator now belongs to one of the attestation subnets. `subnet_id` is defined by `validator_id % subnets_count` formula to ease debugging. In future devnets it will be replaced by the random assignment.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much better way to assign subnet thanks!

- New gossipsub topic: `attestation_{subnet_id}` for propagating `SignedAttestation`
- New gossipsub topic: `aggregated_attestation` for propagating `SignedAggregatedAttestation`
- Note: attesters should still propate its attestations to the global `attestation` topic for safe target computation
- Note: attesters still publish and subscribe to the global `attestation` topic for safe target computation
- **Attester role:**
- Attesters propagate their individual attestations to `attestation_{subnet_id}` gossipsub topic (in addition to existing `attestation`)
- Attesters do not need to subscribe, i.e. listen to other attestations, in its subnet
- Attesters propagate their individual attestations to new `attestation_{subnet_id}` gossipsub topic and existing `attestation` topic
- Attesters do not need to subscribe to `attestation_{subnet_id}` topic if they are not aggregators, i.e. they only publish into the topic. This is to save some bandwidth by not receiving the same attestation both in the subnet and global attestation topics.
- **Aggregator role (new):**
- Aggregators collect individual attestations from `attestation_{subnet_id}` gossipsub topic and aggregates them into aggregated signatures
- Aggregators propagate their aggregated signatures to `aggregated_attestation` gossipsub topic
Expand Down