From 8c60236fbe51b6d79155133cdbc54c403cd888c8 Mon Sep 17 00:00:00 2001 From: spypsy Date: Tue, 18 Feb 2025 14:34:59 +0000 Subject: [PATCH 01/10] chore: new mnemonic deployments on sepolia --- .github/workflows/network-deploy.yml | 12 +++- .github/workflows/nightly-kind-test.yml | 1 - cspell.json | 14 ++-- .../config/consolidate_sepolia_balances.sh | 43 ++++++++++++ .../files/config/deploy-l1-contracts.sh | 4 +- .../templates/consolidate-balances.yaml | 45 +++++++++++++ spartan/aztec-network/values/ci-sepolia.yaml | 4 +- .../values/ignition-testnet.yaml | 2 +- spartan/aztec-network/values/rc-2.yaml | 4 +- spartan/scripts/deploy_kind.sh | 5 +- spartan/scripts/generate_devnet_config.sh | 2 +- spartan/scripts/output.json | 21 ++++++ spartan/scripts/prepare_sepolia_accounts.sh | 67 +++++++++++++++++++ 13 files changed, 205 insertions(+), 19 deletions(-) create mode 100755 spartan/aztec-network/files/config/consolidate_sepolia_balances.sh create mode 100644 spartan/aztec-network/templates/consolidate-balances.yaml create mode 100644 spartan/scripts/output.json create mode 100755 spartan/scripts/prepare_sepolia_accounts.sh diff --git a/.github/workflows/network-deploy.yml b/.github/workflows/network-deploy.yml index 917bbb2235f4..2fc8467ff5b9 100644 --- a/.github/workflows/network-deploy.yml +++ b/.github/workflows/network-deploy.yml @@ -168,6 +168,14 @@ jobs: $REPO/spartan/scripts/generate_devnet_config.sh ${{ env.VALUES_FILE }} + - name: Generate sepolia accounts + id: generate-sepolia-accounts + if: ${{ inputs.sepolia_deployment == 'true' }} + run: | + REPO=$(git rev-parse --show-toplevel) + export MNEMONIC=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh 1117 100 1) + echo "mnemonic=$MNEMONIC" >> "$GITHUB_OUTPUT" + - name: Setup Terraform uses: hashicorp/setup-terraform@v2 with: @@ -187,7 +195,7 @@ jobs: continue-on-error: true run: | if ${{ inputs.sepolia_deployment == 'true' }}; then - export L1_DEPLOYMENT_MNEMONIC="${{ secrets.SEPOLIA_ACCOUNTS_MNEMONIC }}" + export L1_DEPLOYMENT_MNEMONIC="${{ steps.generate-sepolia-accounts.outputs.mnemonic }}" terraform destroy -auto-approve \ -var="RELEASE_NAME=${{ env.NAMESPACE }}" \ -var="VALUES_FILE=${{ env.VALUES_FILE }}" \ @@ -216,7 +224,7 @@ jobs: working-directory: ./spartan/terraform/deploy-release run: | if ${{ inputs.sepolia_deployment == 'true' }}; then - export L1_DEPLOYMENT_MNEMONIC="${{ secrets.SEPOLIA_ACCOUNTS_MNEMONIC }}" + export L1_DEPLOYMENT_MNEMONIC="${{ steps.generate-sepolia-accounts.outputs.mnemonic }}" terraform plan \ -var="RELEASE_NAME=${{ env.NAMESPACE }}" \ -var="VALUES_FILE=${{ env.VALUES_FILE }}" \ diff --git a/.github/workflows/nightly-kind-test.yml b/.github/workflows/nightly-kind-test.yml index 0d61e6f35921..25bf25e2de09 100644 --- a/.github/workflows/nightly-kind-test.yml +++ b/.github/workflows/nightly-kind-test.yml @@ -126,7 +126,6 @@ jobs: export EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY=${{ secrets.SEPOLIA_API_KEY }} export EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER=${{ env.GCP_API_KEY_HEADER }} export L1_DEPLOYMENT_PRIVATE_KEY=${{ secrets.SEPOLIA_L1_DEPLOYMENT_PRIVATE_KEY }} - export L1_ACCOUNTS_MNEMONIC="${{ secrets.SEPOLIA_ACCOUNTS_MNEMONIC }}" SEPOLIA_RUN=true INSTALL_METRICS=false ./spartan/scripts/test_kind.sh "./src/spartan/${{ matrix.config.test }}" "${{ matrix.config.values }}" ci3/cache_upload_flag "$artifact" fi diff --git a/cspell.json b/cspell.json index 40e200a3aa00..d041319098f9 100644 --- a/cspell.json +++ b/cspell.json @@ -22,7 +22,6 @@ "awsvpc", "aztecprotocol", "barretenberg", - "barretenberg", "bbfree", "bbmalloc", "benesjan", @@ -121,8 +120,6 @@ "gossipsub", "Governance", "grumpkin", - "grumpkin", - "gtest", "gtest", "gzipped", "hackmd", @@ -181,13 +178,13 @@ "multiaddr", "multiaddrs", "multiarch", + "multicall", "multiformats", "multivalue", "muxers", "nada", "namespacing", "napi", - "napi", "Nargo", "nixpkgs", "nodebuffer", @@ -223,6 +220,7 @@ "Pokeable", "preauthenticated", "precompute", + "prefunded", "preimage", "preimages", "prestat", @@ -288,18 +286,17 @@ "tldr", "tmpfs", "toplevel", - "toplevel", "tparam", "transferables", "transitioner", "trivago", "tsbuildinfo", "tsdoc", + "txes", "typechain", "typecheck", "typegen", "typeparam", - "txes", "undeployed", "undici", "unexclude", @@ -328,6 +325,7 @@ "webassembly", "WITGEN", "workdir", + "yamls", "yamux", "yarnrc", "zerocash", @@ -358,5 +356,7 @@ "lib", "*.cmake" ], - "flagWords": ["anonymous"] + "flagWords": [ + "anonymous" + ] } diff --git a/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh b/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh new file mode 100755 index 000000000000..5dec5bb497e3 --- /dev/null +++ b/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -eu + +mnemonic=$1 +# at least 2 accounts are needed for the validator and prover nodes +num_accounts=${2:-"2"} +funding_address=${3:-"0x33D525f5ac95c2BCf98b644738C7d5673480493A"} + +# Install cast if needed +if ! command -v cast &>/dev/null; then + curl -L https://foundry.paradigm.xyz | bash + $HOME/.foundry/bin/foundryup && export PATH="$PATH:$HOME/.foundry/bin" || + $XDG_CONFIG_HOME/.foundry/bin/foundryup && export PATH="$PATH:$XDG_CONFIG_HOME/.foundry/bin" +fi + +# For each index +for i in $(seq 0 $((num_accounts - 1))); do + # Get address and private key for this index + address=$(cast wallet address --mnemonic "$mnemonic" --mnemonic-index $i) + private_key=$(cast wallet private-key --mnemonic "$mnemonic" --mnemonic-index $i) + + # Get balance + balance=$(cast balance $address --rpc-url "$ETHEREUM_HOST") + + if [ "$balance" != "0" ]; then + gas_price=$(cast gas-price --rpc-url "$ETHEREUM_HOST") + gas_price=$((gas_price * 120 / 100)) # Add 20% to gas price + gas_cost=$((21000 * gas_price)) + + # Calculate amount to send (balance - gas cost) + send_amount=$((balance - gas_cost)) + + if [ "$send_amount" -gt "0" ]; then + echo "Sending $send_amount wei from $address to $funding_address" + cast send --private-key "$private_key" --rpc-url "$ETHEREUM_HOST" --legacy "$funding_address" \ + --value "$send_amount" --gas-price "$gas_price" --async + else + echo "Balance too low to cover gas costs for $address" + fi + else + echo "No balance in $address" + fi +done diff --git a/spartan/aztec-network/files/config/deploy-l1-contracts.sh b/spartan/aztec-network/files/config/deploy-l1-contracts.sh index c3a9b761c4ed..26963393832a 100755 --- a/spartan/aztec-network/files/config/deploy-l1-contracts.sh +++ b/spartan/aztec-network/files/config/deploy-l1-contracts.sh @@ -12,13 +12,13 @@ RETRY_DELAY=15 for attempt in $(seq 1 $MAX_RETRIES); do # Construct base command - base_cmd="LOG_LEVEL=debug node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js deploy-l1-contracts --test-accounts" + base_cmd="LOG_LEVEL=debug node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js deploy-l1-contracts" # Add account - use private key if set, otherwise use mnemonic if [ -n "${L1_DEPLOYMENT_PRIVATE_KEY:-}" ]; then base_cmd="$base_cmd --private-key $L1_DEPLOYMENT_PRIVATE_KEY" else - base_cmd="$base_cmd --mnemonic '$MNEMONIC'" + base_cmd="$base_cmd --mnemonic '$MNEMONIC' --test-accounts" fi # Add validators if INIT_VALIDATORS is true diff --git a/spartan/aztec-network/templates/consolidate-balances.yaml b/spartan/aztec-network/templates/consolidate-balances.yaml new file mode 100644 index 000000000000..560124735dbe --- /dev/null +++ b/spartan/aztec-network/templates/consolidate-balances.yaml @@ -0,0 +1,45 @@ +{{- if .Values.ethereum.execution.externalHost }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ .Release.Name }}-consolidate-balances + labels: + {{- include "aztec-network.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed + "helm.sh/hook-weight": "-5" +spec: + template: + metadata: + labels: + {{- include "aztec-network.selectorLabels" . | nindent 8 }} + app: consolidate-balances + spec: + restartPolicy: OnFailure + {{- if .Values.network.public }} + serviceAccountName: {{ include "aztec-network.fullname" . }}-node + {{- end }} + volumes: + - name: config + emptyDir: {} + - name: scripts + configMap: + name: {{ include "aztec-network.fullname" . }}-scripts + containers: + - name: consolidate-balances + command: ["/bin/bash"] + args: + - /bin/bash + - -c + - | + set -e + cp /scripts/consolidate_sepolia_balances.sh /tmp/consolidate_sepolia_balances.sh + chmod +x /tmp/consolidate_sepolia_balances.sh + /tmp/consolidate_sepolia_balances.sh "{{ .Values.aztec.l1DeploymentMnemonic }}" {{ add .Values.validator.replicas .Values.proverNode.replicas }} + env: + - name: ETHEREUM_HOST + value: "{{ .Values.ethereum.execution.externalHost }}" + restartPolicy: Never + backoffLimit: 1 +{{ end }} diff --git a/spartan/aztec-network/values/ci-sepolia.yaml b/spartan/aztec-network/values/ci-sepolia.yaml index 8290c4159a0a..91b5c01a6209 100644 --- a/spartan/aztec-network/values/ci-sepolia.yaml +++ b/spartan/aztec-network/values/ci-sepolia.yaml @@ -3,8 +3,8 @@ aztec: proofSubmissionWindow: 8 realProofs: false l1DeploymentMnemonic: "" - validatorKeyIndexStart: 49 - proverKeyIndexStart: 52 + validatorKeyIndexStart: 0 + proverKeyIndexStart: 3 ethereum: chainId: "11155111" diff --git a/spartan/aztec-network/values/ignition-testnet.yaml b/spartan/aztec-network/values/ignition-testnet.yaml index 4c045b88a27e..8f5638bbe613 100644 --- a/spartan/aztec-network/values/ignition-testnet.yaml +++ b/spartan/aztec-network/values/ignition-testnet.yaml @@ -5,7 +5,7 @@ aztec: realProofs: true l1DeploymentMnemonic: "" validatorKeyIndexStart: 0 - proverKeyIndexStart: 48 + proverKeyIndexStart: 3 network: setupL2Contracts: false diff --git a/spartan/aztec-network/values/rc-2.yaml b/spartan/aztec-network/values/rc-2.yaml index 6ae96570c7a7..de2cf33f7714 100644 --- a/spartan/aztec-network/values/rc-2.yaml +++ b/spartan/aztec-network/values/rc-2.yaml @@ -5,8 +5,8 @@ aztec: realProofs: true # TODO: Will need to change these as ignition will be using them l1DeploymentMnemonic: "" - validatorKeyIndexStart: 4 - proverKeyIndexStart: 52 + validatorKeyIndexStart: 0 + proverKeyIndexStart: 48 images: aztec: diff --git a/spartan/scripts/deploy_kind.sh b/spartan/scripts/deploy_kind.sh index 8e380576533a..6875eda7f094 100755 --- a/spartan/scripts/deploy_kind.sh +++ b/spartan/scripts/deploy_kind.sh @@ -65,7 +65,7 @@ function generate_overrides { local overrides="$1" if [ -n "$overrides" ]; then # Split the comma-separated string into an array and generate --set arguments - IFS=',' read -ra OVERRIDE_ARRAY <<< "$overrides" + IFS=',' read -ra OVERRIDE_ARRAY <<<"$overrides" for override in "${OVERRIDE_ARRAY[@]}"; do echo "--set $override" done @@ -79,6 +79,9 @@ function generate_overrides { if [ "$sepolia_deployment" != "true" ]; then echo "Generating devnet config..." ./generate_devnet_config.sh "$values_file" +else + echo "Generating sepolia accounts..." + L1_ACCOUNTS_MNEMONIC=$(./prepare_sepolia_accounts.sh "$values_file") fi # Install the Helm chart diff --git a/spartan/scripts/generate_devnet_config.sh b/spartan/scripts/generate_devnet_config.sh index 56f48d6f066f..f3cad3db2d30 100755 --- a/spartan/scripts/generate_devnet_config.sh +++ b/spartan/scripts/generate_devnet_config.sh @@ -26,7 +26,7 @@ export PREFUNDED_MNEMONIC_INDICES=$(echo "$VALIDATOR_KEY_INDICES $EXTRA_ACCOUNTS echo "Generating eth devnet config..." echo "PREFUNDED_MNEMONIC_INDICES: $PREFUNDED_MNEMONIC_INDICES" -echo "MNEMONIC: $MNEMONIC" +echo "MNEMONIC: $(echo $MNEMONIC | cut -d' ' -f1-2)..." echo "BLOCK_TIME: $BLOCK_TIME" echo "GAS_LIMIT: $GAS_LIMIT" echo "CHAIN_ID: $CHAIN_ID" diff --git a/spartan/scripts/output.json b/spartan/scripts/output.json new file mode 100644 index 000000000000..a1e8aaa77517 --- /dev/null +++ b/spartan/scripts/output.json @@ -0,0 +1,21 @@ +{ + "mnemonic": "pull sphere trip pill reopen accident company treat poem kidney street nominee", + "accounts": [ + { + "address": "0x773d94EFdbad41a1eD2317aCaA3E1787aC731e99", + "private_key": "0x1fd2fe8b6ac98db755acc90423e6b175dbcf8c3619c2fa494ff4ba3eb9a35d65" + }, + { + "address": "0x94be6331121d423F5f822E429D0bd2ea2C7cB3DC", + "private_key": "0x7b3772a04980447be30ad66de43a6a21b12ad1cd4a20d8815153b566c5eb84d4" + }, + { + "address": "0xcc8a04b1FE3fa0cb4450ff35cEd8F54a2790CCA5", + "private_key": "0x2e2990d7e94d140b025b4b55e03d25f2f58fac2fe3cd519865e595c625976c57" + }, + { + "address": "0x7A59404645A157368d419b3D6658464cC0695BA7", + "private_key": "0x166d00291a71815de51dd3fa2401528906fb9c64e23f42f4d163e31acc084088" + } + ] +} diff --git a/spartan/scripts/prepare_sepolia_accounts.sh b/spartan/scripts/prepare_sepolia_accounts.sh new file mode 100755 index 000000000000..723228c12da5 --- /dev/null +++ b/spartan/scripts/prepare_sepolia_accounts.sh @@ -0,0 +1,67 @@ +#!/bin/bash +set -eu + +values_file=$1 +eth_amount=${2:-"1"} +XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-"$HOME/.config"} + +value_yamls="../aztec-network/values/$values_file ../aztec-network/values.yaml" + +num_validators=$(./read_value.sh "validator.replicas" $value_yamls) +num_provers=$(./read_value.sh "proverNode.replicas" $value_yamls) +num_accounts=$((num_validators + num_provers)) + +# Install bc if needed +if ! command -v bc &>/dev/null; then + apt-get update && apt-get install -y bc +fi + +# Install cast if needed +if ! command -v cast &>/dev/null; then + curl -L https://foundry.paradigm.xyz | bash + $HOME/.foundry/bin/foundryup && export PATH="$PATH:$HOME/.foundry/bin" || + $XDG_CONFIG_HOME/.foundry/bin/foundryup && export PATH="$PATH:$XDG_CONFIG_HOME/.foundry/bin" +fi + +# Install yq if needed +if ! command -v yq &>/dev/null; then + wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq + chmod +x /usr/local/bin/yq +fi + +# Create a new mnemonic with the required number of accounts +cast wallet new-mnemonic --accounts "$num_accounts" --json >output.json +MNEMONIC=$(jq -r '.mnemonic' output.json) +ADDRESSES=$(jq -r '.accounts[].address' output.json) + +# Convert ETH to wei +wei_amount=$(cast to-wei "$eth_amount" ether) + +# Get current gas price and add 50% buffer +gas_price=$(cast gas-price --rpc-url "$ETHEREUM_HOST") +gas_price=$((gas_price * 125 / 100)) # Add 25% to gas price + +# Build 'calls' string in the format: +# [(0xADDR,false,wei_amount,0x),(0xADDR2,false,wei_amount,0x)] +calls="[" +for addr in $ADDRESSES; do + calls+="(${addr},false,${wei_amount},0x)," +done +calls=${calls%,} +calls+="]" + +# Total value = wei_amount * num_accounts +total_value=$(echo "$wei_amount * $num_accounts" | bc) + +multicall_address="0xcA11bde05977b3631167028862bE2a173976CA11" # Sepolia Multicall3 contract + +TX_HASH=$(cast send "$multicall_address" \ + "aggregate3Value((address,bool,uint256,bytes)[])" \ + "$calls" \ + --value "$total_value" \ + --private-key "$FUNDING_PRIVATE_KEY" \ + --rpc-url "$ETHEREUM_HOST" \ + --legacy --json --gas-price "$gas_price") + +echo >&2 "Sent ${wei_amount} wei to ${num_accounts} addresses in tx $TX_HASH" +echo "$MNEMONIC" From e4cd0949d9941a3b112c5348a8012e031de89939 Mon Sep 17 00:00:00 2001 From: spypsy Date: Tue, 18 Feb 2025 17:37:36 +0000 Subject: [PATCH 02/10] fixes --- .github/workflows/network-deploy.yml | 2 +- .../config/consolidate_sepolia_balances.sh | 2 +- .../templates/consolidate-balances.yaml | 28 +++++++++---------- spartan/aztec-network/values/ci-sepolia.yaml | 3 ++ spartan/scripts/deploy_kind.sh | 2 ++ spartan/scripts/output.json | 21 -------------- spartan/scripts/prepare_sepolia_accounts.sh | 6 +++- spartan/scripts/test_kind.sh | 13 +++++++-- 8 files changed, 35 insertions(+), 42 deletions(-) delete mode 100644 spartan/scripts/output.json diff --git a/.github/workflows/network-deploy.yml b/.github/workflows/network-deploy.yml index 2fc8467ff5b9..ed79be4dd19a 100644 --- a/.github/workflows/network-deploy.yml +++ b/.github/workflows/network-deploy.yml @@ -173,7 +173,7 @@ jobs: if: ${{ inputs.sepolia_deployment == 'true' }} run: | REPO=$(git rev-parse --show-toplevel) - export MNEMONIC=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh 1117 100 1) + export MNEMONIC=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh ${{ env.VALUES_FILE }} 1) echo "mnemonic=$MNEMONIC" >> "$GITHUB_OUTPUT" - name: Setup Terraform diff --git a/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh b/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh index 5dec5bb497e3..fbe51c5e4705 100755 --- a/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh +++ b/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh @@ -32,7 +32,7 @@ for i in $(seq 0 $((num_accounts - 1))); do if [ "$send_amount" -gt "0" ]; then echo "Sending $send_amount wei from $address to $funding_address" - cast send --private-key "$private_key" --rpc-url "$ETHEREUM_HOST" --legacy "$funding_address" \ + cast send --private-key "$private_key" --rpc-url "$ETHEREUM_HOST" "$funding_address" \ --value "$send_amount" --gas-price "$gas_price" --async else echo "Balance too low to cover gas costs for $address" diff --git a/spartan/aztec-network/templates/consolidate-balances.yaml b/spartan/aztec-network/templates/consolidate-balances.yaml index 560124735dbe..c106d6b91ac8 100644 --- a/spartan/aztec-network/templates/consolidate-balances.yaml +++ b/spartan/aztec-network/templates/consolidate-balances.yaml @@ -27,19 +27,17 @@ spec: configMap: name: {{ include "aztec-network.fullname" . }}-scripts containers: - - name: consolidate-balances - command: ["/bin/bash"] - args: - - /bin/bash - - -c - - | - set -e - cp /scripts/consolidate_sepolia_balances.sh /tmp/consolidate_sepolia_balances.sh - chmod +x /tmp/consolidate_sepolia_balances.sh - /tmp/consolidate_sepolia_balances.sh "{{ .Values.aztec.l1DeploymentMnemonic }}" {{ add .Values.validator.replicas .Values.proverNode.replicas }} - env: - - name: ETHEREUM_HOST - value: "{{ .Values.ethereum.execution.externalHost }}" - restartPolicy: Never - backoffLimit: 1 + - name: consolidate-balances + {{- include "aztec-network.image" . | nindent 10 }} + command: + - /bin/bash + - -c + - | + set -e + cp /scripts/consolidate_sepolia_balances.sh /tmp/consolidate_sepolia_balances.sh + chmod +x /tmp/consolidate_sepolia_balances.sh + /tmp/consolidate_sepolia_balances.sh "{{ .Values.aztec.l1DeploymentMnemonic }}" {{ add .Values.validator.replicas .Values.proverNode.replicas }} + env: + - name: ETHEREUM_HOST + value: "{{ .Values.ethereum.execution.externalHost }}" {{ end }} diff --git a/spartan/aztec-network/values/ci-sepolia.yaml b/spartan/aztec-network/values/ci-sepolia.yaml index 91b5c01a6209..4fd7421ac6e6 100644 --- a/spartan/aztec-network/values/ci-sepolia.yaml +++ b/spartan/aztec-network/values/ci-sepolia.yaml @@ -6,6 +6,9 @@ aztec: validatorKeyIndexStart: 0 proverKeyIndexStart: 3 +network: + setupL2Contracts: false + ethereum: chainId: "11155111" l1GasPriceMax: 500 diff --git a/spartan/scripts/deploy_kind.sh b/spartan/scripts/deploy_kind.sh index 6875eda7f094..79ff57d679a2 100755 --- a/spartan/scripts/deploy_kind.sh +++ b/spartan/scripts/deploy_kind.sh @@ -82,6 +82,8 @@ if [ "$sepolia_deployment" != "true" ]; then else echo "Generating sepolia accounts..." L1_ACCOUNTS_MNEMONIC=$(./prepare_sepolia_accounts.sh "$values_file") + # write the mnemonic to a file + echo "$L1_ACCOUNTS_MNEMONIC" >mnemonic.tmp fi # Install the Helm chart diff --git a/spartan/scripts/output.json b/spartan/scripts/output.json deleted file mode 100644 index a1e8aaa77517..000000000000 --- a/spartan/scripts/output.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "mnemonic": "pull sphere trip pill reopen accident company treat poem kidney street nominee", - "accounts": [ - { - "address": "0x773d94EFdbad41a1eD2317aCaA3E1787aC731e99", - "private_key": "0x1fd2fe8b6ac98db755acc90423e6b175dbcf8c3619c2fa494ff4ba3eb9a35d65" - }, - { - "address": "0x94be6331121d423F5f822E429D0bd2ea2C7cB3DC", - "private_key": "0x7b3772a04980447be30ad66de43a6a21b12ad1cd4a20d8815153b566c5eb84d4" - }, - { - "address": "0xcc8a04b1FE3fa0cb4450ff35cEd8F54a2790CCA5", - "private_key": "0x2e2990d7e94d140b025b4b55e03d25f2f58fac2fe3cd519865e595c625976c57" - }, - { - "address": "0x7A59404645A157368d419b3D6658464cC0695BA7", - "private_key": "0x166d00291a71815de51dd3fa2401528906fb9c64e23f42f4d163e31acc084088" - } - ] -} diff --git a/spartan/scripts/prepare_sepolia_accounts.sh b/spartan/scripts/prepare_sepolia_accounts.sh index 723228c12da5..f2aaa88619dd 100755 --- a/spartan/scripts/prepare_sepolia_accounts.sh +++ b/spartan/scripts/prepare_sepolia_accounts.sh @@ -61,7 +61,11 @@ TX_HASH=$(cast send "$multicall_address" \ --value "$total_value" \ --private-key "$FUNDING_PRIVATE_KEY" \ --rpc-url "$ETHEREUM_HOST" \ - --legacy --json --gas-price "$gas_price") + --json --gas-price "$gas_price") echo >&2 "Sent ${wei_amount} wei to ${num_accounts} addresses in tx $TX_HASH" + +# Remove temp file +rm output.json + echo "$MNEMONIC" diff --git a/spartan/scripts/test_kind.sh b/spartan/scripts/test_kind.sh index aeada169180c..26a00085944c 100755 --- a/spartan/scripts/test_kind.sh +++ b/spartan/scripts/test_kind.sh @@ -74,7 +74,7 @@ trap cleanup SIGINT SIGTERM EXIT stern_pid="" function copy_stern_to_log { # Start stern in a subshell, capture its PID, and pipe output to cache_log so it is uploaded - stern spartan -n "$namespace" > "logs/kind-$namespace.log" &>/dev/null & + stern spartan -n "$namespace" >"logs/kind-$namespace.log" &>/dev/null & stern_pid=$! } @@ -83,7 +83,7 @@ copy_stern_to_log # uses VALUES_FILE, CHAOS_VALUES, AZTEC_DOCKER_TAG and INSTALL_TIMEOUT optional env vars if [ "$fresh_install" != "no-deploy" ]; then - OVERRIDES="$OVERRIDES" ./deploy_kind.sh $namespace $values_file $sepolia_run + deploy_result=$(OVERRIDES="$OVERRIDES" ./deploy_kind.sh $namespace $values_file $sepolia_run) fi # Find 4 free ports between 9000 and 10000 @@ -109,7 +109,14 @@ ethereum_slot_duration=$(./read_value.sh "ethereum.blockTime" $value_yamls) aztec_slot_duration=$(./read_value.sh "aztec.slotDuration" $value_yamls) aztec_epoch_duration=$(./read_value.sh "aztec.epochDuration" $value_yamls) aztec_proof_submission_window=$(./read_value.sh "aztec.proofSubmissionWindow" $value_yamls) -l1_account_mnemonic=$(./read_value.sh "aztec.l1DeploymentMnemonic" $value_yamls) + +if [ "$sepolia_run" = "true" ]; then + # Read the mnemonic from file mnemonic.tmp + l1_account_mnemonic=$(cat mnemonic.tmp) + rm mnemonic.tmp +else + l1_account_mnemonic=$(./read_value.sh "aztec.l1DeploymentMnemonic" $value_yamls) +fi echo "RUNNING TEST: $test" # Run test locally. From 417500efba3ce200a894550b4f3596724649caa9 Mon Sep 17 00:00:00 2001 From: spypsy Date: Tue, 18 Feb 2025 18:18:44 +0000 Subject: [PATCH 03/10] fix cleanup script --- .../consolidate-sepolia-balances.sh} | 2 ++ .../templates/consolidate-balances.yaml | 12 ++++++++---- .../aztec-network/templates/scripts-configmap.yaml | 3 ++- 3 files changed, 12 insertions(+), 5 deletions(-) rename spartan/aztec-network/files/{config/consolidate_sepolia_balances.sh => cleanup/consolidate-sepolia-balances.sh} (96%) diff --git a/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh b/spartan/aztec-network/files/cleanup/consolidate-sepolia-balances.sh similarity index 96% rename from spartan/aztec-network/files/config/consolidate_sepolia_balances.sh rename to spartan/aztec-network/files/cleanup/consolidate-sepolia-balances.sh index fbe51c5e4705..491f68c01aad 100755 --- a/spartan/aztec-network/files/config/consolidate_sepolia_balances.sh +++ b/spartan/aztec-network/files/cleanup/consolidate-sepolia-balances.sh @@ -6,6 +6,8 @@ mnemonic=$1 num_accounts=${2:-"2"} funding_address=${3:-"0x33D525f5ac95c2BCf98b644738C7d5673480493A"} +XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-"$HOME/.config"} + # Install cast if needed if ! command -v cast &>/dev/null; then curl -L https://foundry.paradigm.xyz | bash diff --git a/spartan/aztec-network/templates/consolidate-balances.yaml b/spartan/aztec-network/templates/consolidate-balances.yaml index c106d6b91ac8..81ec32fc64d1 100644 --- a/spartan/aztec-network/templates/consolidate-balances.yaml +++ b/spartan/aztec-network/templates/consolidate-balances.yaml @@ -29,14 +29,18 @@ spec: containers: - name: consolidate-balances {{- include "aztec-network.image" . | nindent 10 }} + volumeMounts: + - name: scripts + mountPath: /scripts + - name: config + mountPath: /shared/config command: - /bin/bash - -c - | - set -e - cp /scripts/consolidate_sepolia_balances.sh /tmp/consolidate_sepolia_balances.sh - chmod +x /tmp/consolidate_sepolia_balances.sh - /tmp/consolidate_sepolia_balances.sh "{{ .Values.aztec.l1DeploymentMnemonic }}" {{ add .Values.validator.replicas .Values.proverNode.replicas }} + cp /scripts/consolidate-sepolia-balances.sh /tmp/consolidate-sepolia-balances.sh + chmod +x /tmp/consolidate-sepolia-balances.sh + /tmp/consolidate-sepolia-balances.sh "{{ .Values.aztec.l1DeploymentMnemonic }}" {{ add .Values.validator.replicas .Values.proverNode.replicas }} env: - name: ETHEREUM_HOST value: "{{ .Values.ethereum.execution.externalHost }}" diff --git a/spartan/aztec-network/templates/scripts-configmap.yaml b/spartan/aztec-network/templates/scripts-configmap.yaml index 556f1b6d03b5..1ed70831520d 100644 --- a/spartan/aztec-network/templates/scripts-configmap.yaml +++ b/spartan/aztec-network/templates/scripts-configmap.yaml @@ -19,4 +19,5 @@ data: {{ .Files.Get "files/config/get-private-key.sh" | nindent 4 }} get-validator-addresses.sh: | {{ .Files.Get "files/config/get-validator-addresses.sh" | nindent 4 }} - + consolidate-sepolia-balances.sh: | + {{ .Files.Get "files/cleanup/consolidate-sepolia-balances.sh" | nindent 4 }} From c450dfaf86f15b5897934f48088e95c7a688ee07 Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 19 Feb 2025 12:51:26 +0000 Subject: [PATCH 04/10] mask mnemonic --- .github/workflows/network-deploy.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/network-deploy.yml b/.github/workflows/network-deploy.yml index ed79be4dd19a..81ca48aa28a6 100644 --- a/.github/workflows/network-deploy.yml +++ b/.github/workflows/network-deploy.yml @@ -173,8 +173,9 @@ jobs: if: ${{ inputs.sepolia_deployment == 'true' }} run: | REPO=$(git rev-parse --show-toplevel) - export MNEMONIC=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh ${{ env.VALUES_FILE }} 1) - echo "mnemonic=$MNEMONIC" >> "$GITHUB_OUTPUT" + mnemonic=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh ${{ env.VALUES_FILE }} 1) + echo "::add-mask::$mnemonic" + echo "mnemonic=$mnemonic" >> "$GITHUB_OUTPUT" - name: Setup Terraform uses: hashicorp/setup-terraform@v2 From 43203a000fad0482275dcc9d1eac4610597e40b8 Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 19 Feb 2025 13:33:41 +0000 Subject: [PATCH 05/10] export necessary env vars --- .github/workflows/network-deploy.yml | 2 ++ spartan/scripts/prepare_sepolia_accounts.sh | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/network-deploy.yml b/.github/workflows/network-deploy.yml index 81ca48aa28a6..40089d2ea153 100644 --- a/.github/workflows/network-deploy.yml +++ b/.github/workflows/network-deploy.yml @@ -173,6 +173,8 @@ jobs: if: ${{ inputs.sepolia_deployment == 'true' }} run: | REPO=$(git rev-parse --show-toplevel) + export FUNDING_PRIVATE_KEY=${{ secrets.SEPOLIA_FUNDING_PRIVATE_KEY }} + export ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }} mnemonic=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh ${{ env.VALUES_FILE }} 1) echo "::add-mask::$mnemonic" echo "mnemonic=$mnemonic" >> "$GITHUB_OUTPUT" diff --git a/spartan/scripts/prepare_sepolia_accounts.sh b/spartan/scripts/prepare_sepolia_accounts.sh index f2aaa88619dd..03a81b219553 100755 --- a/spartan/scripts/prepare_sepolia_accounts.sh +++ b/spartan/scripts/prepare_sepolia_accounts.sh @@ -55,7 +55,7 @@ total_value=$(echo "$wei_amount * $num_accounts" | bc) multicall_address="0xcA11bde05977b3631167028862bE2a173976CA11" # Sepolia Multicall3 contract -TX_HASH=$(cast send "$multicall_address" \ +tx_hash=$(cast send "$multicall_address" \ "aggregate3Value((address,bool,uint256,bytes)[])" \ "$calls" \ --value "$total_value" \ @@ -63,7 +63,7 @@ TX_HASH=$(cast send "$multicall_address" \ --rpc-url "$ETHEREUM_HOST" \ --json --gas-price "$gas_price") -echo >&2 "Sent ${wei_amount} wei to ${num_accounts} addresses in tx $TX_HASH" +echo >&2 "Sent ${wei_amount} wei to ${num_accounts} addresses in tx $tx_hash" # Remove temp file rm output.json From 059b9d2d8ca8b83a6fa6198034821383ac6c2da8 Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 19 Feb 2025 15:08:16 +0000 Subject: [PATCH 06/10] don't log mnemonics in kind scripts --- spartan/scripts/deploy_kind.sh | 12 ++++++++---- spartan/scripts/test_kind.sh | 4 ++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/spartan/scripts/deploy_kind.sh b/spartan/scripts/deploy_kind.sh index 79ff57d679a2..ce1d8093bb89 100755 --- a/spartan/scripts/deploy_kind.sh +++ b/spartan/scripts/deploy_kind.sh @@ -76,14 +76,16 @@ function generate_overrides { # and are used to generate the genesis.json file. # We need to read these values and pass them into the eth devnet create.sh script # so that it can generate the genesis.json and config.yaml file with the correct values. -if [ "$sepolia_deployment" != "true" ]; then - echo "Generating devnet config..." - ./generate_devnet_config.sh "$values_file" -else +if [ "$sepolia_deployment" = "true" ]; then echo "Generating sepolia accounts..." + set +x L1_ACCOUNTS_MNEMONIC=$(./prepare_sepolia_accounts.sh "$values_file") # write the mnemonic to a file echo "$L1_ACCOUNTS_MNEMONIC" >mnemonic.tmp + set -x +else + echo "Generating devnet config..." + ./generate_devnet_config.sh "$values_file" fi # Install the Helm chart @@ -98,6 +100,7 @@ helm_set_args=( # If this is a sepolia run, we need to write some values if [ "$sepolia_deployment" = "true" ]; then + set +x helm_set_args+=( --set ethereum.execution.externalHost="$EXTERNAL_ETHEREUM_HOST" --set ethereum.beacon.externalHost="$EXTERNAL_ETHEREUM_CONSENSUS_HOST" @@ -112,6 +115,7 @@ if [ "$sepolia_deployment" = "true" ]; then if [ -n "${EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER:-}" ]; then helm_set_args+=(--set ethereum.beacon.apiKeyHeader="$EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER") fi + set -x fi helm upgrade --install spartan ../aztec-network \ diff --git a/spartan/scripts/test_kind.sh b/spartan/scripts/test_kind.sh index 26a00085944c..01f5303e0ddc 100755 --- a/spartan/scripts/test_kind.sh +++ b/spartan/scripts/test_kind.sh @@ -112,7 +112,9 @@ aztec_proof_submission_window=$(./read_value.sh "aztec.proofSubmissionWindow" $v if [ "$sepolia_run" = "true" ]; then # Read the mnemonic from file mnemonic.tmp + set +x l1_account_mnemonic=$(cat mnemonic.tmp) + set -x rm mnemonic.tmp else l1_account_mnemonic=$(./read_value.sh "aztec.l1DeploymentMnemonic" $value_yamls) @@ -142,7 +144,9 @@ export ETHEREUM_SLOT_DURATION="$ethereum_slot_duration" export AZTEC_SLOT_DURATION="$aztec_slot_duration" export AZTEC_EPOCH_DURATION="$aztec_epoch_duration" export AZTEC_PROOF_SUBMISSION_WINDOW="$aztec_proof_submission_window" +set +x export L1_ACCOUNT_MNEMONIC="$l1_account_mnemonic" export BOT_L1_MNEMONIC="$l1_account_mnemonic" +set -x yarn --cwd ../../yarn-project/end-to-end test --forceExit "$test" From b049e41bd4136445541db400c0403c5b78e9a12a Mon Sep 17 00:00:00 2001 From: spypsy Date: Thu, 20 Feb 2025 11:16:03 +0000 Subject: [PATCH 07/10] setup bot L1 private key --- .../files/config/get-private-key.sh | 5 +- .../templates/transaction-bot.yaml | 26 +++++++++ spartan/aztec-network/values.yaml | 2 + spartan/aztec-network/values/ci-sepolia.yaml | 1 + spartan/aztec-network/values/rc-2.yaml | 1 + .../sepolia-3-validators-with-metrics.yaml | 5 +- .../sepolia-48-validators-with-metrics.yaml | 55 +++---------------- ...8-validators-with-proving-and-metrics.yaml | 51 ++--------------- spartan/scripts/prepare_sepolia_accounts.sh | 3 +- 9 files changed, 50 insertions(+), 99 deletions(-) diff --git a/spartan/aztec-network/files/config/get-private-key.sh b/spartan/aztec-network/files/config/get-private-key.sh index abf352f68b50..4b42fe03767a 100755 --- a/spartan/aztec-network/files/config/get-private-key.sh +++ b/spartan/aztec-network/files/config/get-private-key.sh @@ -1,7 +1,7 @@ #!/bin/bash set -eu -# We get the index in the config map from the pod name, which will have the validator index within it +# We get the index in the config map from the pod name, which will have the service index within it KEY_INDEX=$(echo $POD_NAME | awk -F'-' '{print $NF}') # Add the index to the start index to get the private key index PRIVATE_KEY_INDEX=$((KEY_INDEX_START + KEY_INDEX)) @@ -14,12 +14,13 @@ echo "MNEMONIC: $(echo $MNEMONIC | cut -d' ' -f1-2)..." # Get the private key from the mnemonic private_key=$(cast wallet private-key "$MNEMONIC" --mnemonic-index $PRIVATE_KEY_INDEX) -# Note, currently writing both prover and sequencer keys for all nodes for convinience +# Note, currently writing keys for all services for convenience cat </shared/config/keys.env export VALIDATOR_PRIVATE_KEY=$private_key export L1_PRIVATE_KEY=$private_key export SEQ_PUBLISHER_PRIVATE_KEY=$private_key export PROVER_PUBLISHER_PRIVATE_KEY=$private_key +export BOT_L1_PRIVATE_KEY=$private_key EOF cat /shared/config/keys.env diff --git a/spartan/aztec-network/templates/transaction-bot.yaml b/spartan/aztec-network/templates/transaction-bot.yaml index 64f2b995293f..1ebee973db5c 100644 --- a/spartan/aztec-network/templates/transaction-bot.yaml +++ b/spartan/aztec-network/templates/transaction-bot.yaml @@ -45,6 +45,29 @@ spec: emptyDir: {} initContainers: {{- include "aztec-network.serviceAddressSetupContainer" . | nindent 8 }} + - name: get-private-key + image: {{ .Values.images.foundry.image }} + imagePullPolicy: {{ .Values.images.foundry.pullPolicy }} + command: + - "/bin/sh" + - "-c" + - | + source /scripts/get-private-key.sh + volumeMounts: + - name: scripts + mountPath: /scripts + - name: config + mountPath: /shared/config + env: + - name: KEY_INDEX_START + value: {{ .Values.aztec.botKeyIndexStart | quote }} + - name: MNEMONIC + value: {{ .Values.aztec.l1DeploymentMnemonic }} + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: wait-for-aztec-node image: "{{ .Values.images.curl.image }}" command: @@ -79,6 +102,9 @@ spec: - | source /shared/config/service-addresses cat /shared/config/service-addresses + {{- if .Values.aztec.botKeyIndexStart }} + source /shared/config/keys.env + {{- end }} {{- if .Values.bot.nodeUrl }} export AZTEC_NODE_URL={{ .Values.bot.nodeUrl }} {{- else if .Values.network.public }} diff --git a/spartan/aztec-network/values.yaml b/spartan/aztec-network/values.yaml index 790562bcf75b..558a2ec2bc70 100644 --- a/spartan/aztec-network/values.yaml +++ b/spartan/aztec-network/values.yaml @@ -54,6 +54,8 @@ aztec: # Starting from this index, the number of keys is equal to the number of replicas for the given service validatorKeyIndexStart: 0 proverKeyIndexStart: 1000 + # Needs to be set for sepolia deployments + botKeyIndexStart: "" ## The number of extra accounts to prefund extraAccountsStartIndex: 2000 diff --git a/spartan/aztec-network/values/ci-sepolia.yaml b/spartan/aztec-network/values/ci-sepolia.yaml index 4fd7421ac6e6..bed249dd2761 100644 --- a/spartan/aztec-network/values/ci-sepolia.yaml +++ b/spartan/aztec-network/values/ci-sepolia.yaml @@ -5,6 +5,7 @@ aztec: l1DeploymentMnemonic: "" validatorKeyIndexStart: 0 proverKeyIndexStart: 3 + botKeyIndexStart: 4 network: setupL2Contracts: false diff --git a/spartan/aztec-network/values/rc-2.yaml b/spartan/aztec-network/values/rc-2.yaml index de2cf33f7714..450a0f3b4133 100644 --- a/spartan/aztec-network/values/rc-2.yaml +++ b/spartan/aztec-network/values/rc-2.yaml @@ -7,6 +7,7 @@ aztec: l1DeploymentMnemonic: "" validatorKeyIndexStart: 0 proverKeyIndexStart: 48 + botKeyIndexStart: 49 images: aztec: diff --git a/spartan/aztec-network/values/sepolia-3-validators-with-metrics.yaml b/spartan/aztec-network/values/sepolia-3-validators-with-metrics.yaml index eaf8a23978d1..e53f849e9cc8 100644 --- a/spartan/aztec-network/values/sepolia-3-validators-with-metrics.yaml +++ b/spartan/aztec-network/values/sepolia-3-validators-with-metrics.yaml @@ -3,6 +3,9 @@ telemetry: aztec: realProofs: false + validatorKeyIndexStart: 0 + proverKeyIndexStart: 3 + botKeyIndexStart: 4 network: setupL2Contracts: false @@ -10,8 +13,6 @@ network: ethereum: l1DeploymentMnemonic: - proverKeyIndexStart: 0 - validatorKeyIndexStart: 1 chainId: "11155111" execution: externalHost: diff --git a/spartan/aztec-network/values/sepolia-48-validators-with-metrics.yaml b/spartan/aztec-network/values/sepolia-48-validators-with-metrics.yaml index 7a7728fda959..f17743a60a58 100644 --- a/spartan/aztec-network/values/sepolia-48-validators-with-metrics.yaml +++ b/spartan/aztec-network/values/sepolia-48-validators-with-metrics.yaml @@ -1,6 +1,12 @@ telemetry: enabled: true +aztec: + l1DeploymentMnemonic: "" + validatorKeyIndexStart: 0 + proverKeyIndexStart: 48 + botKeyIndexStart: 49 + network: setupL2Contracts: false public: false @@ -12,6 +18,8 @@ ethereum: externalHost: beacon: externalHost: + apiKey: "" + apiKeyHeader: "" validator: l1FixedPriorityFeePerGas: 2 @@ -19,53 +27,6 @@ validator: l1GasPriceMax: 500 replicas: 48 validatorKeys: - validatorAddresses: - - 0xcD92B30FeFbD2752fF80dD1d152347B1C0b80555 - - 0x3eb04876AEaC0ecB2095D5be5FCE965BE114f6Ea - - 0x69746Fc304C08331C5B3F0E4A8Be82Bbe9079de7 - - 0x11eCa503d1A4C89EA801B5428690844378FF8EDb - - 0x690944149F6090F8B8131d21B7C9243f44953dA3 - - 0x9991124C826d4b469544A326B8e93C7ea6291Df6 - - 0x790a1ACe055c42Ef0aDd7C94b0605e68F4F7ac32 - - 0x3bb53E1A35768B250185d9a1E3A220dfcFD21959 - - 0x1a42bfAF536DD0931AbDb6C7b5d6a2e795849111 - - 0x0b69F2c3b1DCe6974c860655C1B1A0bE209F0EEe - - 0x15dC3B5b63B2846Caf36631b4cc89EC2133484A3 - - 0xEb81BB1891ad6bDB88Bd870703e8E8ca809bF76e - - 0xe484C194039a2D1334F9f701e6AeEAdb2b1009F8 - - 0xC1f9e958888FcfB74C0f72FF4fcA8525a2FD7577 - - 0x27A99682eF70cE26CBe981B2E0BEA2f608bfD44D - - 0xb010Fb11B64Ad756721884d84E66dF0Aa96F1f5f - - 0xC5E960E795284a7AF2F1b5ED3acb17cE51143342 - - 0x44C08d1b44C5D099ecCB626297541E9214aED279 - - 0x78117dD80E4e54EFFd9546Dce1719fB5df30a0A1 - - 0x941d42B68BE5B50f32b24e39c7C48A07Cda37f34 - - 0xAbE28C0BA704111b03903BCBC92c486CE457eC3C - - 0xb0F15e42B0b234070C222B02e173b1e1263E9Bad - - 0xbEaB732a958301EF542DD465DFfcaaa7DA0D64cA - - 0x56C4277eACF43a4a19dEafa2617776f88566C9A8 - - 0xfCaEA5838C6C5a90DA0DE920a122998D7F72e049 - - 0xB204ed1f6cD2E7609421477DA004Aad34eD44aa2 - - 0x5e6a2e947b506f0E06E94b5C421097564c1bf7B1 - - 0x4f321D1922ECDAc05F137E6E9cD2b2873D02b13C - - 0x7964e6211fC121Fb4577d25729724aD97AfD6349 - - 0x3Bf8F13D4D2d218B25C91F3C5d983c3cd25c686D - - 0xb310E13232e3a85b19123adA4E0762B3dC50B4E6 - - 0x8C0B299a706beB7FCE32F820A40f558451534880 - - 0xF88c298c08A46d235d688Eb9CFEA7A1B704842bC - - 0xe2a2ff6cA23AeCD58Aa5c2E5bEA89c2142Ce20cc - - 0x47D8383296B3Db67726fFb4dbDE21a15A17f5084 - - 0xdE5e20DCB0781072341294f8bEfd3811E043f5Ca - - 0x686aC93A652194D6F7f3CF996C61B72cab1A3B4e - - 0x719b0E230E9c9F42C6485cc4DF0347318ced8daa - - 0x829CC1ad52d6c09e9F2249B69C42B99180FC8c17 - - 0xEf051f942CAE84d86c8DED6f45632547E4f6b945 - - 0x54D1aDec93f2EbA4fb90Bb140b56bd822c867e7D - - 0x879B29Bcef645E778136A2Ab727dc1691c089DE7 - - 0x88f7C34641378E6e82F3e949c067589A0B38eacd - - 0x96C668DE46451ECD4F8C8FB16D342EC679f6E87f - - 0x981f78212b18671aA5A449d482001EDC1e00303D - - 0x6BE5a2c8250A2c8342E96a365957933DEbe22ca0 validator: disabled: false diff --git a/spartan/aztec-network/values/sepolia-48-validators-with-proving-and-metrics.yaml b/spartan/aztec-network/values/sepolia-48-validators-with-proving-and-metrics.yaml index 9f28f252e8f9..a521e8ee23d9 100644 --- a/spartan/aztec-network/values/sepolia-48-validators-with-proving-and-metrics.yaml +++ b/spartan/aztec-network/values/sepolia-48-validators-with-proving-and-metrics.yaml @@ -3,6 +3,10 @@ telemetry: aztec: realProofs: true + l1DeploymentMnemonic: "" + validatorKeyIndexStart: 0 + proverKeyIndexStart: 48 + botKeyIndexStart: 49 images: aztec: @@ -32,53 +36,6 @@ validator: requests: memory: "512Mi" validatorKeys: - validatorAddresses: - - 0xcD92B30FeFbD2752fF80dD1d152347B1C0b80555 - - 0x3eb04876AEaC0ecB2095D5be5FCE965BE114f6Ea - - 0x69746Fc304C08331C5B3F0E4A8Be82Bbe9079de7 - - 0x11eCa503d1A4C89EA801B5428690844378FF8EDb - - 0x690944149F6090F8B8131d21B7C9243f44953dA3 - - 0x9991124C826d4b469544A326B8e93C7ea6291Df6 - - 0x790a1ACe055c42Ef0aDd7C94b0605e68F4F7ac32 - - 0x3bb53E1A35768B250185d9a1E3A220dfcFD21959 - - 0x1a42bfAF536DD0931AbDb6C7b5d6a2e795849111 - - 0x0b69F2c3b1DCe6974c860655C1B1A0bE209F0EEe - - 0x15dC3B5b63B2846Caf36631b4cc89EC2133484A3 - - 0xEb81BB1891ad6bDB88Bd870703e8E8ca809bF76e - - 0xe484C194039a2D1334F9f701e6AeEAdb2b1009F8 - - 0xC1f9e958888FcfB74C0f72FF4fcA8525a2FD7577 - - 0x27A99682eF70cE26CBe981B2E0BEA2f608bfD44D - - 0xb010Fb11B64Ad756721884d84E66dF0Aa96F1f5f - - 0xC5E960E795284a7AF2F1b5ED3acb17cE51143342 - - 0x44C08d1b44C5D099ecCB626297541E9214aED279 - - 0x78117dD80E4e54EFFd9546Dce1719fB5df30a0A1 - - 0x941d42B68BE5B50f32b24e39c7C48A07Cda37f34 - - 0xAbE28C0BA704111b03903BCBC92c486CE457eC3C - - 0xb0F15e42B0b234070C222B02e173b1e1263E9Bad - - 0xbEaB732a958301EF542DD465DFfcaaa7DA0D64cA - - 0x56C4277eACF43a4a19dEafa2617776f88566C9A8 - - 0xfCaEA5838C6C5a90DA0DE920a122998D7F72e049 - - 0xB204ed1f6cD2E7609421477DA004Aad34eD44aa2 - - 0x5e6a2e947b506f0E06E94b5C421097564c1bf7B1 - - 0x4f321D1922ECDAc05F137E6E9cD2b2873D02b13C - - 0x7964e6211fC121Fb4577d25729724aD97AfD6349 - - 0x3Bf8F13D4D2d218B25C91F3C5d983c3cd25c686D - - 0xb310E13232e3a85b19123adA4E0762B3dC50B4E6 - - 0x8C0B299a706beB7FCE32F820A40f558451534880 - - 0xF88c298c08A46d235d688Eb9CFEA7A1B704842bC - - 0xe2a2ff6cA23AeCD58Aa5c2E5bEA89c2142Ce20cc - - 0x47D8383296B3Db67726fFb4dbDE21a15A17f5084 - - 0xdE5e20DCB0781072341294f8bEfd3811E043f5Ca - - 0x686aC93A652194D6F7f3CF996C61B72cab1A3B4e - - 0x719b0E230E9c9F42C6485cc4DF0347318ced8daa - - 0x829CC1ad52d6c09e9F2249B69C42B99180FC8c17 - - 0xEf051f942CAE84d86c8DED6f45632547E4f6b945 - - 0x54D1aDec93f2EbA4fb90Bb140b56bd822c867e7D - - 0x879B29Bcef645E778136A2Ab727dc1691c089DE7 - - 0x88f7C34641378E6e82F3e949c067589A0B38eacd - - 0x96C668DE46451ECD4F8C8FB16D342EC679f6E87f - - 0x981f78212b18671aA5A449d482001EDC1e00303D - - 0x6BE5a2c8250A2c8342E96a365957933DEbe22ca0 validator: disabled: false diff --git a/spartan/scripts/prepare_sepolia_accounts.sh b/spartan/scripts/prepare_sepolia_accounts.sh index 03a81b219553..80ffc80ff173 100755 --- a/spartan/scripts/prepare_sepolia_accounts.sh +++ b/spartan/scripts/prepare_sepolia_accounts.sh @@ -9,7 +9,8 @@ value_yamls="../aztec-network/values/$values_file ../aztec-network/values.yaml" num_validators=$(./read_value.sh "validator.replicas" $value_yamls) num_provers=$(./read_value.sh "proverNode.replicas" $value_yamls) -num_accounts=$((num_validators + num_provers)) +num_bots=$(./read_value.sh "bot.replicas" $value_yamls) +num_accounts=$((num_validators + num_provers + num_bots)) # Install bc if needed if ! command -v bc &>/dev/null; then From 3bb6d03ed86604f6fa03cfd4a72b41ab3950c602 Mon Sep 17 00:00:00 2001 From: spypsy Date: Mon, 24 Feb 2025 13:28:02 +0000 Subject: [PATCH 08/10] use 3000 as default botKeyIndexStart --- spartan/aztec-network/values.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/spartan/aztec-network/values.yaml b/spartan/aztec-network/values.yaml index 410599227b99..08d718a57061 100644 --- a/spartan/aztec-network/values.yaml +++ b/spartan/aztec-network/values.yaml @@ -54,8 +54,6 @@ aztec: # Starting from this index, the number of keys is equal to the number of replicas for the given service validatorKeyIndexStart: 0 proverKeyIndexStart: 1000 - # Needs to be set for sepolia deployments - botKeyIndexStart: "" ## The number of extra accounts to prefund extraAccountsStartIndex: 2000 From 07fa90b007d28fda318474267ddf1914687d6924 Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 26 Feb 2025 12:24:40 +0000 Subject: [PATCH 09/10] inc sepoliaETH amount for network-deploy --- .github/workflows/network-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/network-deploy.yml b/.github/workflows/network-deploy.yml index cfa8cbf80124..c52947e0567b 100644 --- a/.github/workflows/network-deploy.yml +++ b/.github/workflows/network-deploy.yml @@ -175,7 +175,7 @@ jobs: REPO=$(git rev-parse --show-toplevel) export FUNDING_PRIVATE_KEY=${{ secrets.SEPOLIA_FUNDING_PRIVATE_KEY }} export ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }} - mnemonic=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh ${{ env.VALUES_FILE }} 1) + mnemonic=$(bash $REPO/spartan/scripts/prepare_sepolia_accounts.sh ${{ env.VALUES_FILE }} 5) echo "::add-mask::$mnemonic" echo "mnemonic=$mnemonic" >> "$GITHUB_OUTPUT" From f8519c518a1c448dffd9403da6a4cbdd01df8aa3 Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 26 Feb 2025 19:08:12 +0000 Subject: [PATCH 10/10] PR fixes --- spartan/aztec-network/files/config/deploy-l1-contracts.sh | 4 ++-- spartan/aztec-network/templates/consolidate-balances.yaml | 2 +- spartan/scripts/prepare_sepolia_accounts.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spartan/aztec-network/files/config/deploy-l1-contracts.sh b/spartan/aztec-network/files/config/deploy-l1-contracts.sh index 26963393832a..c3a9b761c4ed 100755 --- a/spartan/aztec-network/files/config/deploy-l1-contracts.sh +++ b/spartan/aztec-network/files/config/deploy-l1-contracts.sh @@ -12,13 +12,13 @@ RETRY_DELAY=15 for attempt in $(seq 1 $MAX_RETRIES); do # Construct base command - base_cmd="LOG_LEVEL=debug node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js deploy-l1-contracts" + base_cmd="LOG_LEVEL=debug node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js deploy-l1-contracts --test-accounts" # Add account - use private key if set, otherwise use mnemonic if [ -n "${L1_DEPLOYMENT_PRIVATE_KEY:-}" ]; then base_cmd="$base_cmd --private-key $L1_DEPLOYMENT_PRIVATE_KEY" else - base_cmd="$base_cmd --mnemonic '$MNEMONIC' --test-accounts" + base_cmd="$base_cmd --mnemonic '$MNEMONIC'" fi # Add validators if INIT_VALIDATORS is true diff --git a/spartan/aztec-network/templates/consolidate-balances.yaml b/spartan/aztec-network/templates/consolidate-balances.yaml index 81ec32fc64d1..2718967a71f1 100644 --- a/spartan/aztec-network/templates/consolidate-balances.yaml +++ b/spartan/aztec-network/templates/consolidate-balances.yaml @@ -6,7 +6,7 @@ metadata: labels: {{- include "aztec-network.labels" . | nindent 4 }} annotations: - "helm.sh/hook": pre-delete + "helm.sh/hook": post-delete "helm.sh/hook-delete-policy": hook-succeeded,hook-failed "helm.sh/hook-weight": "-5" spec: diff --git a/spartan/scripts/prepare_sepolia_accounts.sh b/spartan/scripts/prepare_sepolia_accounts.sh index 80ffc80ff173..923b451ed350 100755 --- a/spartan/scripts/prepare_sepolia_accounts.sh +++ b/spartan/scripts/prepare_sepolia_accounts.sh @@ -38,7 +38,7 @@ ADDRESSES=$(jq -r '.accounts[].address' output.json) # Convert ETH to wei wei_amount=$(cast to-wei "$eth_amount" ether) -# Get current gas price and add 50% buffer +# Get current gas price and add 25% buffer gas_price=$(cast gas-price --rpc-url "$ETHEREUM_HOST") gas_price=$((gas_price * 125 / 100)) # Add 25% to gas price