Skip to content

Conversation

@joanestebanr
Copy link
Contributor

@joanestebanr joanestebanr commented Sep 19, 2025

🔄 Changes Summary

  • When we have enough signature from committee the rest of call are canceled, and must no be logged as a ERROR because is the expected behaviour

🐞 Issues

@joanestebanr joanestebanr self-assigned this Sep 19, 2025
@joanestebanr joanestebanr changed the base branch from develop to feat/aggsender-multisig September 19, 2025 08:41
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR improves logging functionality when validator polling reaches the required signature threshold. The main purpose is to change error-level logging to informational logging when validator calls are canceled after reaching the threshold, since this is expected behavior rather than an error.

  • Improved logging messages and structure for validator polling operations
  • Changed threshold comparison logic from *big.Int to int64 for better performance
  • Enhanced error handling and result formatting with timing information

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
aggsender/validator_poller.go Main logging improvements with new result formatting, threshold handling changes, and better log messages
aggsender/types/multisig_committee.go Added ThresholdInt() method to support int64 threshold operations
aggsender/validator_poller_test.go Updated test calls to use new int64 threshold parameter
test/scripts/optimistic.sh Updated configuration and private key handling for test scripts
aggsender/block_notifier_polling.go Fixed string formatting for block finality type logging

KURTOSIS_ARTIFACT_AGGKIT_CONFIG=${KURTOSIS_ARTIFACT_AGGKIT_CONFIG:-"cdk-aggoracle-config-artifact"}
KURTOSIS_ENCLAVE=${KURTOSIS_ENCLAVE:-aggkit}

KURTOSIS_ARTIFACT_AGGKIT_CONFIG=${KURTOSIS_ARTIFACT_AGGKIT_CONFIG:-" aggkit-config-artifact"}
Copy link

Copilot AI Sep 19, 2025

Choose a reason for hiding this comment

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

There's an extra leading space in the default value ' aggkit-config-artifact' which could cause issues when this artifact name is used. Remove the leading space.

Suggested change
KURTOSIS_ARTIFACT_AGGKIT_CONFIG=${KURTOSIS_ARTIFACT_AGGKIT_CONFIG:-" aggkit-config-artifact"}
KURTOSIS_ARTIFACT_AGGKIT_CONFIG=${KURTOSIS_ARTIFACT_AGGKIT_CONFIG:-"aggkit-config-artifact"}

Copilot uses AI. Check for mistakes.
@joanestebanr joanestebanr marked this pull request as ready for review September 19, 2025 10:44
Copy link
Contributor

@Stefan-Ethernal Stefan-Ethernal left a comment

Choose a reason for hiding this comment

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

Just fix the failing Test_ECDSAMultisigCommitteeQuery_GetMultisigCommittee, otherwise LGTM

@joanestebanr joanestebanr changed the title feat: improve logs #1023 feat: improve request to committee logs #1023 [INTEGRATION] Sep 19, 2025
@sonarqubecloud
Copy link

@joanestebanr joanestebanr merged commit e7735be into feat/aggsender-multisig Sep 19, 2025
22 of 24 checks passed
@joanestebanr joanestebanr deleted the feat/improve_logs-1023 branch September 19, 2025 13:10
Stefan-Ethernal added a commit that referenced this pull request Oct 10, 2025
## 🔄 Changes Summary

Enable the AggSender to work with multiple validator nodes in a
committee-based validation system. The implementation includes validator
services, multisig committee management, certificate validation
improvements, and enhanced gRPC communication protocols.

**Multisig Committee Support:** 
- Added `MultisigCommittee` type to manage signer sets and enforce
signature thresholds.
- Signers are represented as `SignerInfo` structs with both address and
URL for improved context and error reporting.
- Committee construction validates non-empty membership and non-zero
threshold, preventing misconfiguration.
- Dynamic signer management: methods for adding signers, duplicate
checks by address and URL.

**Aggsender Validator Refactor:**
- The Aggsender certificate validation flow was refactored to integrate
multisig logic.
- The multisig validation logic is applicable to both `PP` and `FEP`
certificates.
- Certificate validation now checks for contiguous certificates, last L2
block, and settlement status using new queries.
- Import bridge exit proof verification is handled via new logic using
`verifyClaimProofs`, ensuring only valid proofs pass.

**Certificate Metadata removal:**
- It is gone from the agglayer and therefore it is not sent anymore from
the aggsender either.
- Only thing worth noting is that, when calculating `CertificateID`,
instead of metadata field, which was used previously, we now use
`ZeroHash`.

**Smart contracts integration:**
- **AggchainFEP contract:** Removed querying of `TrustedSequencer`
address and rely on the signers committee instead
- **AggchainBase contract:** Retrieve the multisig committee from the
`AggchainBase` contract

**Agglayer integration:**
- Invoke the `GetNetworkState` API from agglayer to get the latest
settled imported bridge exit info.
- Multisig is populated into the certificate and sent to the Agglayer's
`SendCertificate` gRPC endpoint

## ⚠️ Breaking Changes
- 🛠️ **Config**: Make sure that `Mode` on the `Validator` and
`AggSender` are the same.
- 🔌 **API/CLI**: `aggkit` version (`v0.7.0`) that supports `multisig`
will now require updated contracts to run. At least version
`v12.1.0-rc.3` of `agglayer-contracts`, and a new version of `agglayer`
which supports `multisig`, which is the `v0.4.0` of `agglayer`.
- 🗑️ **Deprecated Features**: Aggsender Phase II validator signing logic

## 📋 Config Updates
- Added `AggSender.RequireCommitteeMembershipCheck = false` parameter,
which defines if a check on `aggsender proposer` startup will be
performed to see if the proposer is in the `multisig` committee.
- Added `Validator.RequireCommitteeMembershipCheck =
{{AggSender.RequireCommitteeMembershipCheck}}` parameter, which defines
if a check on `aggsender validator` startup will be performed to see if
the validator is in the `multisig` committee.
- Added `Validator.Mode = "PessimisticProof"` parameter, which acts the
same as the `AggSender.Mode`. It tells the validator that the network is
a `PP` network or an `FEP` network. It has to be the same as on
`aggsender proposer`.
- Added `Validator.FEPConfig.SovereignRollupAddr =
"{{AggSender.SovereignRollupAddr}}" parameter which is the address of
the `AggchainFEP` rollup on L1 for given network for which validator is
running.
- Added `Validator.FEPConfig.RequireNoBlockGap =
{{AggSender.RequireNoFEPBlockGap}}, which acts the same as the given
paremeter on `AggSender` (proposer) config, and tells the validator if
gaps in blocks in certificates are allowed in `FEP` network.

```toml
[AggSender]
RequireCommitteeMembershipCheck = false

[Validator]
# PessimisticProof or AggchainProof
Mode = "PessimisticProof"
RequireCommitteeMembershipCheck = {{AggSender.RequireCommitteeMembershipCheck}}
[Validator.FEPConfig]
	SovereignRollupAddr = "{{AggSender.SovereignRollupAddr}}"
	RequireNoBlockGap = "{{AggSender.RequireNoFEPBlockGap}}"
```

## ✅ Testing
- 🤖 **Automatic**: `aggkit` CI
- 🖱️ **Manual**: [Optional: Steps to verify]

## 🐞 Issues
- Closes #792 
## 🔗 Related PRs
- #814
- #832
- #838
- #839
- #843
- #842
- #846
- #858
- #847
- #865
- #861
- #863
- #875
- #876
- #881
- #877
- #898
- #920
- #913
- #926
- #945
- #951
- #954
- #957
- #955
- #974
- #978
- #985
- #989
- #984
- #998
- #1017
- #1028
- #1034
- #1024
- #1052
- #1067
- #1068
- #1050
- #1071
- #1072
- #1060
- #1087
- #1077
- #1073

---------

Co-authored-by: Goran Rojovic <[email protected]>
Co-authored-by: Goran Rojovic <[email protected]>
Co-authored-by: Joan Esteban <[email protected]>
Co-authored-by: Rachit Sonthalia <[email protected]>
Co-authored-by: Arpit Temani <[email protected]>
Co-authored-by: Copilot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

log context canceled error on an INFO log level

3 participants