Skip to content

Commit

Permalink
Avoid sending already verified signatures when transmitting (#1224)
Browse files Browse the repository at this point in the history
## Motivation

Exec plugin submits reports which do not have their signatures checked
on chain. This is to save gas, because signature checking is expensive
and executions can only be for committed data which is already
authenticated. It is executed using a OCR2 plugin as it handles the turn
taking functionality.

Gas can be saved by not even submitting the signatures as calldata. Each
signature is about 64 bytes and it costs 16 per non-zero byte of
calldata.

## Solution
In the Exec Provider, configure the Transmitter to skip sending the
signatures.
The exec provider was modified in
smartcontractkit/chainlink#13761
  • Loading branch information
agusaldasoro authored Aug 1, 2024
1 parent a2566c0 commit 0518b92
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion core/services/relay/evm/evm.go
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ func (r *Relayer) NewCCIPExecProvider(rargs commontypes.RelayArgs, pargs commont
subjectID := chainToUUID(configWatcher.chain.ID())
contractTransmitter, err := newOnChainContractTransmitter(ctx, r.lggr, rargs, r.ks.Eth(), configWatcher, configTransmitterOpts{
subjectID: &subjectID,
}, OCR2AggregatorTransmissionContractABI, WithReportToEthMetadata(fn), WithRetention(0))
}, OCR2AggregatorTransmissionContractABI, WithReportToEthMetadata(fn), WithRetention(0), WithExcludeSignatures())
if err != nil {
return nil, err
}
Expand Down

0 comments on commit 0518b92

Please sign in to comment.