Skip to content

Commit f9515b0

Browse files
author
Julian Ventura
committed
Merge branch 'staging' into merge-testnet-into-staging
2 parents 5184bd0 + 96d1d17 commit f9515b0

File tree

82 files changed

+3373
-1633
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+3373
-1633
lines changed

Makefile

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,16 @@ upgrade_add_aggregator: ## Add Aggregator to Aligned Contracts
604604
@echo "Adding Aggregator to Aligned Contracts..."
605605
@. contracts/scripts/.env && . contracts/scripts/upgrade_add_aggregator_to_service_manager.sh
606606

607+
set_aggregator_address:
608+
@echo "Setting Aggregator Address in Aligned Service Manager Contract on $(NETWORK) network..."
609+
@echo "Aggregator address: $(AGGREGATOR_ADDRESS)"
610+
@. contracts/scripts/.env.$(NETWORK) && . contracts/scripts/set_aggregator_address.sh $(AGGREGATOR_ADDRESS)
611+
612+
set_aggregator_address_devnet:
613+
@echo "Setting Aggregator Address in Aligned Service Manager Contract..."
614+
@echo "Aggregator address: $(AGGREGATOR_ADDRESS)"
615+
RPC_URL="http://localhost:8545" PRIVATE_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" OUTPUT_PATH=./script/output/devnet/alignedlayer_deployment_output.json ./contracts/scripts/set_aggregator_address.sh $(AGGREGATOR_ADDRESS)
616+
607617
upgrade_initialize_disabled_verifiers:
608618
@echo "Adding disabled verifiers to Aligned Service Manager..."
609619
@. contracts/scripts/.env && . contracts/scripts/upgrade_disabled_verifiers_in_service_manager.sh
@@ -906,7 +916,7 @@ docker_down:
906916
@echo "Everything down"
907917
docker ps
908918

909-
DOCKER_BURST_SIZE=2
919+
DOCKER_BURST_SIZE=1
910920
DOCKER_PROOFS_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
911921

912922
docker_batcher_send_sp1_burst:
@@ -918,7 +928,8 @@ docker_batcher_send_sp1_burst:
918928
--vm_program ./scripts/test_files/sp1/sp1_fibonacci.elf \
919929
--repetitions $(DOCKER_BURST_SIZE) \
920930
--proof_generator_addr $(PROOF_GENERATOR_ADDRESS) \
921-
--rpc_url $(DOCKER_RPC_URL)
931+
--rpc_url $(DOCKER_RPC_URL) \
932+
--max_fee 0.1ether
922933

923934
docker_batcher_send_risc0_burst:
924935
@echo "Sending Risc0 fibonacci task to Batcher..."
@@ -930,7 +941,8 @@ docker_batcher_send_risc0_burst:
930941
--public_input ./scripts/test_files/risc_zero/fibonacci_proof_generator/risc_zero_fibonacci.pub \
931942
--repetitions $(DOCKER_BURST_SIZE) \
932943
--proof_generator_addr $(PROOF_GENERATOR_ADDRESS) \
933-
--rpc_url $(DOCKER_RPC_URL)
944+
--rpc_url $(DOCKER_RPC_URL) \
945+
--max_fee 0.1ether
934946

935947
docker_batcher_send_plonk_bn254_burst:
936948
@echo "Sending Groth16Bn254 1!=0 task to Batcher..."
@@ -942,7 +954,8 @@ docker_batcher_send_plonk_bn254_burst:
942954
--vk ./scripts/test_files/gnark_plonk_bn254_script/plonk.vk \
943955
--proof_generator_addr $(PROOF_GENERATOR_ADDRESS) \
944956
--rpc_url $(DOCKER_RPC_URL) \
945-
--repetitions $(DOCKER_BURST_SIZE)
957+
--repetitions $(DOCKER_BURST_SIZE) \
958+
--max_fee 0.1ether
946959

947960
docker_batcher_send_plonk_bls12_381_burst:
948961
@echo "Sending Groth16 BLS12-381 1!=0 task to Batcher..."
@@ -954,19 +967,21 @@ docker_batcher_send_plonk_bls12_381_burst:
954967
--vk ./scripts/test_files/gnark_plonk_bls12_381_script/plonk.vk \
955968
--proof_generator_addr $(PROOF_GENERATOR_ADDRESS) \
956969
--repetitions $(DOCKER_BURST_SIZE) \
957-
--rpc_url $(DOCKER_RPC_URL)
970+
--rpc_url $(DOCKER_RPC_URL) \
971+
--max_fee 0.1ether
958972

959973
docker_batcher_send_groth16_burst:
960974
@echo "Sending Groth16 BLS12-381 1!=0 task to Batcher..."
961975
docker exec $(shell docker ps | grep batcher | awk '{print $$1}') aligned submit \
962-
--private_key $(DOCKER_PROOFS_PRIVATE_KEY) \
963-
--proving_system Groth16Bn254 \
964-
--proof ./scripts/test_files/gnark_groth16_bn254_script/groth16.proof \
965-
--public_input ./scripts/test_files/gnark_groth16_bn254_script/plonk_pub_input.pub \
966-
--vk ./scripts/test_files/gnark_groth16_bn254_script/groth16.vk \
967-
--proof_generator_addr $(PROOF_GENERATOR_ADDRESS) \
968-
--repetitions $(DOCKER_BURST_SIZE) \
969-
--rpc_url $(DOCKER_RPC_URL)
976+
--private_key $(DOCKER_PROOFS_PRIVATE_KEY) \
977+
--proving_system Groth16Bn254 \
978+
--proof ./scripts/test_files/gnark_groth16_bn254_script/groth16.proof \
979+
--public_input ./scripts/test_files/gnark_groth16_bn254_script/plonk_pub_input.pub \
980+
--vk ./scripts/test_files/gnark_groth16_bn254_script/groth16.vk \
981+
--proof_generator_addr $(PROOF_GENERATOR_ADDRESS) \
982+
--repetitions $(DOCKER_BURST_SIZE) \
983+
--rpc_url $(DOCKER_RPC_URL) \
984+
--max_fee 0.1ether
970985

971986
# Update target as new proofs are supported.
972987
docker_batcher_send_all_proofs_burst:
@@ -993,6 +1008,7 @@ docker_batcher_send_infinite_groth16:
9931008
--public_input scripts/test_files/gnark_groth16_bn254_infinite_script/infinite_proofs/ineq_$${counter}_groth16.pub \
9941009
--vk scripts/test_files/gnark_groth16_bn254_infinite_script/infinite_proofs/ineq_$${counter}_groth16.vk \
9951010
--proof_generator_addr $(PROOF_GENERATOR_ADDRESS); \
1011+
--max_fee 0.1ether
9961012
sleep $${timer}; \
9971013
counter=$$((counter + 1)); \
9981014
done \
@@ -1010,7 +1026,7 @@ docker_verify_proofs_onchain:
10101026
done \
10111027
'
10121028

1013-
DOCKER_PROOFS_WAIT_TIME=30
1029+
DOCKER_PROOFS_WAIT_TIME=60
10141030

10151031
docker_verify_proof_submission_success:
10161032
@echo "Verifying proofs were successfully submitted..."
@@ -1032,7 +1048,7 @@ docker_verify_proof_submission_success:
10321048
fi; \
10331049
echo "---------------------------------------------------------------------------------------------------"; \
10341050
done; \
1035-
if [ $$(ls -1 ./aligned_verification_data/*.cbor | wc -l) -ne 10 ]; then \
1051+
if [ $$(ls -1 ./aligned_verification_data/*.cbor | wc -l) -ne 5 ]; then \
10361052
echo "ERROR: Some proofs were verified successfully, but some proofs are missing in the aligned_verification_data/ directory"; \
10371053
exit 1; \
10381054
fi; \

aggregator/pkg/aggregator.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ type Aggregator struct {
6767
// Stores the TaskResponse for each batch by batchIdentifierHash
6868
batchDataByIdentifierHash map[[32]byte]BatchData
6969

70+
// Stores the start time for each batch of the aggregator by task index
71+
batchStartTimeByIdx map[uint32]time.Time
72+
7073
// This task index is to communicate with the local BLS
7174
// Service.
7275
// Note: In case of a reboot it can start from 0 again
@@ -78,6 +81,7 @@ type Aggregator struct {
7881
// - batchCreatedBlockByIdx
7982
// - batchDataByIdentifierHash
8083
// - nextBatchIndex
84+
// - batchStartTimeByIdx
8185
taskMutex *sync.Mutex
8286

8387
// Mutex to protect ethereum wallet
@@ -124,6 +128,7 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error
124128
batchesIdxByIdentifierHash := make(map[[32]byte]uint32)
125129
batchDataByIdentifierHash := make(map[[32]byte]BatchData)
126130
batchCreatedBlockByIdx := make(map[uint32]uint64)
131+
batchStartTimeByIdx := make(map[uint32]time.Time)
127132

128133
chainioConfig := sdkclients.BuildAllConfig{
129134
EthHttpUrl: aggregatorConfig.BaseConfig.EthRpcUrl,
@@ -172,6 +177,7 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error
172177
batchesIdxByIdentifierHash: batchesIdxByIdentifierHash,
173178
batchDataByIdentifierHash: batchDataByIdentifierHash,
174179
batchCreatedBlockByIdx: batchCreatedBlockByIdx,
180+
batchStartTimeByIdx: batchStartTimeByIdx,
175181
nextBatchIndex: nextBatchIndex,
176182
taskMutex: &sync.Mutex{},
177183
walletMutex: &sync.Mutex{},
@@ -233,6 +239,7 @@ func (agg *Aggregator) handleBlsAggServiceResponse(blsAggServiceResp blsagg.BlsA
233239
batchIdentifierHash := agg.batchesIdentifierHashByIdx[blsAggServiceResp.TaskIndex]
234240
batchData := agg.batchDataByIdentifierHash[batchIdentifierHash]
235241
taskCreatedBlock := agg.batchCreatedBlockByIdx[blsAggServiceResp.TaskIndex]
242+
taskCreatedAt := agg.batchStartTimeByIdx[blsAggServiceResp.TaskIndex]
236243
agg.taskMutex.Unlock()
237244
agg.AggregatorConfig.BaseConfig.Logger.Info("- Unlocked Resources: Fetching task data")
238245

@@ -266,6 +273,9 @@ func (agg *Aggregator) handleBlsAggServiceResponse(blsAggServiceResp blsagg.BlsA
266273

267274
agg.telemetry.LogQuorumReached(batchData.BatchMerkleRoot)
268275

276+
// Only observe quorum reached if successful
277+
agg.metrics.ObserveTaskQuorumReached(time.Since(taskCreatedAt))
278+
269279
agg.logger.Info("Threshold reached", "taskIndex", blsAggServiceResp.TaskIndex,
270280
"batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:]))
271281

@@ -320,6 +330,8 @@ func (agg *Aggregator) sendAggregatedResponse(batchIdentifierHash [32]byte, batc
320330
agg.metrics.IncBumpedGasPriceForAggregatedResponse()
321331
agg.telemetry.BumpedTaskGasPrice(batchMerkleRoot, bumpedGasPrice.String())
322332
}
333+
334+
startTime := time.Now()
323335
receipt, err := agg.avsWriter.SendAggregatedResponse(
324336
batchIdentifierHash,
325337
batchMerkleRoot,
@@ -338,6 +350,9 @@ func (agg *Aggregator) sendAggregatedResponse(batchIdentifierHash [32]byte, batc
338350
return nil, err
339351
}
340352

353+
// We only send the latency metric if the response is successul
354+
agg.metrics.ObserveLatencyForRespondToTask(time.Since(startTime))
355+
341356
agg.walletMutex.Unlock()
342357
agg.logger.Infof("- Unlocked Wallet Resources: Sending aggregated response for batch %s", hex.EncodeToString(batchIdentifierHash[:]))
343358

@@ -383,6 +398,7 @@ func (agg *Aggregator) AddNewTask(batchMerkleRoot [32]byte, senderAddress [20]by
383398
BatchMerkleRoot: batchMerkleRoot,
384399
SenderAddress: senderAddress,
385400
}
401+
agg.batchStartTimeByIdx[batchIndex] = time.Now()
386402
agg.logger.Info(
387403
"Task Info added in aggregator:",
388404
"Task", batchIndex,
@@ -447,6 +463,7 @@ func (agg *Aggregator) ClearTasksFromMaps() {
447463
delete(agg.batchCreatedBlockByIdx, i)
448464
delete(agg.batchesIdentifierHashByIdx, i)
449465
delete(agg.batchDataByIdentifierHash, batchIdentifierHash)
466+
delete(agg.batchStartTimeByIdx, i)
450467
} else {
451468
agg.logger.Warn("Task not found in maps", "taskIndex", i)
452469
}

0 commit comments

Comments
 (0)