github agglayer/aggkit v0.7.0

latest releases: v0.12.0-rc4, v0.12.0-rc3, v0.12.0-rc2...
12 months ago

🚀 What's New

  • Aggkit now suppors new contracts (v0.3.5), multising certificate
  • Fix security issues in code (e.g., overflows, file permissions....)
  • Enhanced container security by removing root access
  • Fixed issues with L2GERsyncer
  • Improved the bridge API (added more data fields such global_index , tx_hash)
  • Improved debug: *aggsender stores rejected certificates into a file
  • Improved database performance
  • Support more granularity into aggkit running compnents adding:
    • L1INFOTREESYNC
    • L1BRIDGESYNC
    • L2BRIDGESYNC
    • L2GERSYNC
  • Fix error that prevent to run only l1infotreesync (#893)
  • Introduced new component: aggsender-validator

⚠️ Breaking Changes

  • Config File Changes:
    • Deprecated AggOracle.BlockFinality: is no longer possible to set the finality of aggOracle it use latest index l1 infotree leaf
    • Deprecated L1InfoTreeSync.BlockFinality: L1InfoTreeSync always use as finality FinalizedBlock
    • Moved section L2GERSync: it have been renamed to L2GERSync
    • Deprecated L2GERSync.SyncMode: It's not longer required beucase the mode is guess from environment
    • Moved field AggSender.MaxSubmitCertificateRate: it have been moved to AggSender.AgglayerClient.APIRateLimits
    • Deprecated Aggsender.BlockFinality: aggsender use BridgeL2Sync.BlockFinality as finality
    • Deprecated LastGERSync.SyncMode: is no longer required
    • Deprecated Aggsender.RequireValidatorCall: is no longer required, because calling a Validator now depends on the committee
    • Moved fieldAggSender.KeepCertificatesHistory: it have been moved to AggSender.StorageRetainCertificatesPolicy.KeepCertificatesHistory
    • Moved field L1NetworkConfig.URL to L1NetworkConfig.L1NetworkConfig.RPC.URL
  • Add field L2Config.AggOracleCommitteeAddr: address of aggoracle Committee
  • Add section L1NetworkConfig.RPC: it configures L1 RPC client
	[L1NetworkConfig.RPC]
		URL = "{{L1Config.URL}}"
		RetryMode = "backoff"
		MaxRetries = 5
		InitialBackoff = "2s"
		MaxBackoff = "10s"
		BackoffMultiplier = 2.0
  • Add section AggSender.StorageRetainCertificatesPolicy: it defines the retain policy for certificates (check #1057)
           [AggSender.StorageRetainCertificatesPolicy]
                    RetainCertificatesCount = 0 # 0 means keep all certificates
                    KeepCertificatesHistory = true
  • Add field AggSender.CertificatesDir: it configure where to store json file with certificates
  • Add field AggOracle.EnableAggOracleCommittee:
  • Add field AggOracle.AggOracle.EVMSender.EthTxManager.EstimateGasMaxRetries:
  • Improved fields related to BlockFinality: this kind of field now accept a block name and a offset e.g. LatestBlock/-10 (more info #916) . It applies to next fields:
    • BridgeL2Sync.BlockFinality
    • L2GERSync.BlockFinality
    • ReorgDetectorL2.FinalizedBlock
  • Add field AggSender.RetriesToBuildAndSendCertificate: It define the delays and tries when a certificate is rejected by agglayer
[AggSender]
[AggSender.RetriesToBuildAndSendCertificate]
                Mode= "delays"
		Delays = [ "1m", "1m", "2m", "5m", "5m", "8m" ]
		MaxRetries = 6 # 1+6 attemps, around 22m 
  • Add new section Validator: This is the configuration for new component aggsender-validator. In fact none of this fields are required to be set in config file because it use global variables
[Validator]
EnableRPC = false
# check SignerConfig in docs/common_config.md for more details
Signer = {{AggsenderPrivateKey}}
MaxCertSize = "{{AggSender.MaxCertSize}}"
MaxL2BlockNumber = "{{AggSender.MaxL2BlockNumber}}"
DelayBetweenRetries = "{{AggSender.DelayBetweenRetries}}"
# PessimisticProof, AggchainProof or Auto
Mode = "{{AggSender.Mode}}"
RequireCommitteeMembershipCheck = {{AggSender.RequireCommitteeMembershipCheck}}
[Validator.ServerConfig]
	Host = "0.0.0.0"
	Port = 5578
	EnableReflection = true
	MaxDecodingMessageSize = 26214400  # 25Mb
[Validator.LerQuerierConfig]
	RollupManagerAddr = "{{AggSender.RollupManagerAddr}}"
	RollupCreationBlockL1 = "{{AggSender.RollupCreationBlockL1}}"
[Validator.PPConfig]
	RequireOneBridgeInPPCertificate = "{{AggSender.RequireOneBridgeInPPCertificate}}"
[Validator.FEPConfig]
	SovereignRollupAddr = "{{AggSender.SovereignRollupAddr}}"
	RequireNoBlockGap = "{{AggSender.RequireNoFEPBlockGap}}"
	OpNodeURL = "{{OpNodeURL}}"
[Validator.AgglayerClient]
	Cached = true
	[Validator.AgglayerClient.ConfigurationCache]
		TTL = "5m"
		Capacity = 100
	[Validator.AgglayerClient.GRPC]
		URL = "{{AggSender.AgglayerClient.GRPC.URL}}"
		MinConnectTimeout = "{{AggSender.AgglayerClient.GRPC.MinConnectTimeout}}"
		RequestTimeout = "{{AggSender.AgglayerClient.GRPC.RequestTimeout}}"
		UseTLS = "{{AggSender.AgglayerClient.GRPC.UseTLS}}"
		[Validator.AgglayerClient.GRPC.Retry]
			InitialBackoff = "{{AggSender.AgglayerClient.GRPC.Retry.InitialBackoff}}"
			MaxBackoff = "{{AggSender.AgglayerClient.GRPC.Retry.MaxBackoff}}"
			BackoffMultiplier = "{{AggSender.AgglayerClient.GRPC.Retry.BackoffMultiplier}}"
			MaxAttempts = "{{AggSender.AgglayerClient.GRPC.Retry.MaxAttempts}}"
  • API Changes:

    • Bridge Service: filter token-mapping with origin address (#953)
    • Aggkit add version in headers in grpc calls
  • Migration Guide:

    • It's mandatory to resync bridgel2sync

📦 Full Changelog

New Contributors

Full Changelog: v0.5.4...v0.7.0

Don't miss a new aggkit release

NewReleases is sending notifications on new releases.