Skip to content
Closed

wip #20682

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
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,15 @@ pub contract Benchmarking {
macros::{functions::external, storage::storage},
messages::message_delivery::MessageDelivery,
note::note_getter_options::NoteGetterOptions,
protocol::address::AztecAddress,
oracle::random::random,
protocol::{
address::{AztecAddress, EthAddress},
constants::{
CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, MAX_L2_TO_L1_MSGS_PER_CALL,
MAX_NOTE_HASHES_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL,
PRIVATE_LOG_SIZE_IN_FIELDS,
},
},
state_vars::{Map, Owned, PrivateSet, PublicMutable},
};
use field_note::FieldNote;
Expand Down Expand Up @@ -61,4 +69,68 @@ pub contract Benchmarking {
fn sha256_hash_1024(data: [u8; 1024]) -> [u8; 32] {
sha256::sha256_var(data, data.len())
}

// Lightest possible private transaction: empty app circuit, no state changes, no public calls.
#[external("private")]
fn noop() {}

#[external("private")]
fn emit_nullifiers() {
// Safety: Benchmarking code
let random_seed = unsafe { random() };
for i in 0..MAX_NULLIFIERS_PER_CALL {
self.context.push_nullifier(random_seed + (i as Field));
}
}

#[external("private")]
fn emit_note_hashes() {
// Safety: Benchmarking code
let random_seed = unsafe { random() };

for i in 0..MAX_NOTE_HASHES_PER_CALL {
self.context.push_note_hash(random_seed + (i as Field));
}
}

#[external("private")]
fn emit_l2_to_l1_msgs() {
// Safety: Benchmarking code
let random_seed = unsafe { random() };

for i in 0..MAX_L2_TO_L1_MSGS_PER_CALL {
let recipient = EthAddress::from_field((random_seed as u128) as Field + (i as Field));
self.context.message_portal(recipient, random_seed + (i + 1) as Field);
}
}

#[external("private")]
fn emit_private_logs() {
// Safety: Benchmarking code
let random_seed = unsafe { random() };

for i in 0..MAX_PRIVATE_LOGS_PER_CALL {
let mut log = [0; PRIVATE_LOG_SIZE_IN_FIELDS];
for j in 0..PRIVATE_LOG_SIZE_IN_FIELDS {
log[i] = random_seed + (i * MAX_PRIVATE_LOGS_PER_CALL + j) as Field;
}
self.context.emit_private_log(log, PRIVATE_LOG_SIZE_IN_FIELDS);
}
}

#[external("private")]
fn emit_contract_class_log() {
// Safety: Benchmarking code
let random_seed = unsafe { random() };

let mut log = [0; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS];
for i in 0..log.len() {
log[i] = random_seed + (i as Field);
}
self.context.emit_contract_class_log(log);
}

// Lightest possible private transaction: empty app circuit, no state changes, no public calls.
#[external("public")]
fn noop_pub() {}
}
19 changes: 9 additions & 10 deletions spartan/environments/prove-n-tps-fake.env
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ NAMESPACE=${NAMESPACE:-prove-n-tps-fake}
CLUSTER=aztec-gke-private
GCP_REGION=us-west1-a

AZTEC_EPOCH_DURATION=32
AZTEC_EPOCH_DURATION=8
AZTEC_SLOT_DURATION=72
AZTEC_PROOF_SUBMISSION_EPOCHS=1
AZTEC_PROOF_SUBMISSION_EPOCHS=4
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET=1
AZTEC_LAG_IN_EPOCHS_FOR_RANDAO=1

Expand All @@ -20,8 +20,8 @@ FUNDING_PRIVATE_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf

OTEL_COLLECTOR_ENDPOINT=REPLACE_WITH_GCP_SECRET

VALIDATOR_REPLICAS=4
VALIDATORS_PER_NODE=12
VALIDATOR_REPLICAS=1
VALIDATORS_PER_NODE=48
PUBLISHERS_PER_VALIDATOR_KEY=1
VALIDATOR_PUBLISHER_MNEMONIC_START_INDEX=5000

Expand All @@ -31,20 +31,19 @@ RPC_REPLICAS=1
RPC_INGRESS_ENABLED=false

PROVER_REPLICAS=200
PROVER_RESOURCE_PROFILE="hi-tps"
PROVER_RESOURCE_PROFILE="dev"
PROVER_PUBLISHER_MNEMONIC_START_INDEX=8000
PROVER_AGENT_POLL_INTERVAL_MS=10000
PUBLISHERS_PER_PROVER=1

PROVER_TEST_DELAY_TYPE=realistic
PROVER_TEST_VERIFICATION_DELAY_MS=250
DEBUG_FORCE_TX_PROOF_VERIFICATION=true

SEQ_MAX_TX_PER_BLOCK=80
SEQ_MAX_TX_PER_BLOCK=72000 # 1000 tps
SEQ_MIN_TX_PER_BLOCK=0
SEQ_ENFORCE_TIME_TABLE=true
P2P_MAX_TX_POOL_SIZE=1000000000
DEBUG_P2P_INSTRUMENT_MESSAGES=true

# Reduce the amount of metrics produced by prover agents and full nodes
PROVER_AGENT_INCLUDE_METRICS="aztec.circuit"
LOG_LEVEL=info
LOG_LEVEL="debug; info: json-rpc, simulator"

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
validator:
nodeSelector:
local-ssd: "false"
node-type: "network"
cores: "8"
hi-mem: "true"
node:
resources:
requests:
cpu: "7.5"
memory: "55Gi"

nodeJsOptions:
- "--max-old-space-size=61440"
statefulSet:
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 16Gi
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ export abstract class BBPrivateKernelProver implements PrivateKernelProver {
this.log.info(`Generating ClientIVC proof...`);
const barretenberg = await Barretenberg.initSingleton({
...this.options,
logger: this.options.logger?.[(process.env.LOG_LEVEL as LogLevel) || 'verbose'],
logger: this.options.logger?.verbose,
});
const backend = new AztecClientBackend(
executionSteps.map(step => ungzip(step.bytecode)),
Expand Down
Loading
Loading