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
6 changes: 3 additions & 3 deletions yarn-project/p2p/src/client/p2p_client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -372,13 +372,13 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
}

@trackSpan('p2pClient.broadcastProposal', async proposal => ({
[Attributes.BLOCK_NUMBER]: proposal.payload.header.globalVariables.blockNumber.toNumber(),
[Attributes.SLOT_NUMBER]: proposal.payload.header.globalVariables.slotNumber.toNumber(),
[Attributes.BLOCK_NUMBER]: proposal.blockNumber.toNumber(),
[Attributes.SLOT_NUMBER]: proposal.slotNumber.toNumber(),
[Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
[Attributes.P2P_ID]: (await proposal.p2pMessageIdentifier()).toString(),
}))
public broadcastProposal(proposal: BlockProposal): void {
this.log.verbose(`Broadcasting proposal ${proposal.p2pMessageIdentifier()} to peers`);
this.log.verbose(`Broadcasting proposal for slot ${proposal.slotNumber.toNumber()} to peers`);
return this.p2pService.propagate(proposal);
}

Expand Down
15 changes: 12 additions & 3 deletions yarn-project/p2p/src/services/discv5/discV5_service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,22 +203,31 @@ export class DiscV5Service extends EventEmitter implements PeerDiscoveryService
}

private validateEnr(enr: ENR): boolean {
// Check if the peer is actually a bootnode and we have disabled the version check
if (
!this.config.bootstrapNodeEnrVersionCheck &&
this.bootstrapNodes.some(enrTxt => ENR.decodeTxt(enrTxt).nodeId === enr.nodeId)
) {
this.logger.trace(`Skipping version check for bootnode ${enr.nodeId}`);
return true;
}

// Check the peer is an aztec peer
const value = enr.kvs.get(AZTEC_ENR_KEY);
if (!value) {
this.logger.warn(`Peer ${enr.nodeId} does not have aztec key in ENR`);
this.logger.warn(`Peer node ${enr.nodeId} does not have aztec key in ENR`);
return false;
}

// And check it has the correct version
let compressedVersion;
try {
// And check it has the correct version
compressedVersion = Buffer.from(value).toString();
checkCompressedComponentVersion(compressedVersion, this.versions);
return true;
} catch (err: any) {
if (err.name === 'ComponentsVersionsError') {
this.logger.warn(`Peer ${enr.nodeId} has incorrect version: ${err.message}`, {
this.logger.warn(`Peer node ${enr.nodeId} has incorrect version: ${err.message}`, {
compressedVersion,
expected: this.versions,
});
Expand Down