Skip to content
Merged
Show file tree
Hide file tree
Changes from 14 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
16 changes: 7 additions & 9 deletions .github/workflows/network-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ jobs:
TF_STATE_BUCKET: aztec-terraform
GKE_CLUSTER_CONTEXT: "gke_testnet-440309_us-west1-a_${{ inputs.cluster }}"
GCP_API_KEY_HEADER: "X-goog-api-key"
EXTERNAL_ETHEREUM_HOST: "https://json-rpc.${{ secrets.SEPOLIA_EXTERNAL_HOST }}"
EXTERNAL_ETHEREUM_HOST: "https://json-rpc.${{ secrets.SEPOLIA_EXTERNAL_HOST }}?key=${{ secrets.SEPOLIA_API_KEY }}"
EXTERNAL_ETHEREUM_CONSENSUS_HOST: "https://beacon.${{ secrets.SEPOLIA_EXTERNAL_HOST }}"

steps:
Expand Down Expand Up @@ -187,16 +187,15 @@ jobs:
continue-on-error: true
run: |
if ${{ inputs.sepolia_deployment == 'true' }}; then
export L1_DEPLOYMENT_MNEMONIC="${{ secrets.SEPOLIA_ACCOUNTS_MNEMONIC }}"
terraform destroy -auto-approve \
-var="RELEASE_NAME=${{ env.NAMESPACE }}" \
-var="VALUES_FILE=${{ env.VALUES_FILE }}" \
-var="GKE_CLUSTER_CONTEXT=${{ env.GKE_CLUSTER_CONTEXT }}" \
-var="AZTEC_DOCKER_IMAGE=${{ env.AZTEC_DOCKER_IMAGE }}" \
-var="L1_DEPLOYMENT_PRIVATE_KEY=${{ secrets.SEPOLIA_L1_DEPLOYMENT_PRIVATE_KEY }}" \
-var="VALIDATOR_KEYS=${{ secrets.SEPOLIA_VALIDATOR_KEYS }}" \
-var="BOOT_NODE_SEQ_PUBLISHER_PRIVATE_KEY=${{ secrets.SEPOLIA_BOOT_NODE_SEQ_PUBLISHER_PRIVATE_KEY }}" \
-var="PROVER_PUBLISHER_PRIVATE_KEY=${{ secrets.SEPOLIA_PROVER_PUBLISHER_PRIVATE_KEY }}" \
-var="EXTERNAL_ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }}?key=${{ secrets.SEPOLIA_API_KEY }}" \
-var="L1_DEPLOYMENT_MNEMONIC=$L1_DEPLOYMENT_MNEMONIC" \
-var="EXTERNAL_ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }}" \
-var="EXTERNAL_ETHEREUM_CONSENSUS_HOST=${{ env.EXTERNAL_ETHEREUM_CONSENSUS_HOST }}" \
-var="EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY=${{ secrets.SEPOLIA_API_KEY }}" \
-var="EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER=${{ env.GCP_API_KEY_HEADER }}" \
Expand All @@ -215,17 +214,16 @@ jobs:
working-directory: ./spartan/terraform/deploy-release
run: |
if ${{ inputs.sepolia_deployment == 'true' }}; then
export L1_DEPLOYMENT_MNEMONIC="${{ secrets.SEPOLIA_ACCOUNTS_MNEMONIC }}"
terraform plan \
-var="RELEASE_NAME=${{ env.NAMESPACE }}" \
-var="VALUES_FILE=${{ env.VALUES_FILE }}" \
-var="GKE_CLUSTER_CONTEXT=${{ env.GKE_CLUSTER_CONTEXT }}" \
-var="AZTEC_DOCKER_IMAGE=${{ env.AZTEC_DOCKER_IMAGE }}" \
-var="L1_DEPLOYMENT_PRIVATE_KEY=${{ secrets.SEPOLIA_L1_DEPLOYMENT_PRIVATE_KEY }}" \
-var="L1_DEPLOYMENT_MNEMONIC=$L1_DEPLOYMENT_MNEMONIC" \
-var="L1_DEPLOYMENT_SALT=${DEPLOYMENT_SALT:-$RANDOM}" \
-var="VALIDATOR_KEYS=${{ secrets.SEPOLIA_VALIDATOR_KEYS }}" \
-var="BOOT_NODE_SEQ_PUBLISHER_PRIVATE_KEY=${{ secrets.SEPOLIA_BOOT_NODE_SEQ_PUBLISHER_PRIVATE_KEY }}" \
-var="PROVER_PUBLISHER_PRIVATE_KEY=${{ secrets.SEPOLIA_PROVER_PUBLISHER_PRIVATE_KEY }}" \
-var="EXTERNAL_ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }}?key=${{ secrets.SEPOLIA_API_KEY }}" \
-var="EXTERNAL_ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }}" \
-var="EXTERNAL_ETHEREUM_CONSENSUS_HOST=${{ env.EXTERNAL_ETHEREUM_CONSENSUS_HOST }}" \
-var="EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY=${{ secrets.SEPOLIA_API_KEY }}" \
-var="EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER=${{ env.GCP_API_KEY_HEADER }}" \
Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/nightly-kind-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ env:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
BUILD_INSTANCE_SSH_KEY: ${{ secrets.BUILD_INSTANCE_SSH_KEY }}
GIT_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }}
EXTERNAL_ETHEREUM_HOST: "https://json-rpc.${{ secrets.SEPOLIA_EXTERNAL_HOST }}?key=${{ secrets.SEPOLIA_API_KEY }}"
EXTERNAL_ETHEREUM_CONSENSUS_HOST: "https://beacon.${{ secrets.SEPOLIA_EXTERNAL_HOST }}"
GCP_API_KEY_HEADER: "X-goog-api-key"
jobs:
setup:
uses: ./.github/workflows/setup-runner.yml
Expand Down Expand Up @@ -88,6 +91,56 @@ jobs:
INSTALL_TIMEOUT=45m FORCE_COLOR=1 INSTALL_METRICS=false \
./spartan/scripts/test_kind.sh ./src/spartan/proving.test.ts 1-validator-with-proving || true

kind-sepolia-test:
needs: [build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- test: 4epochs.test.ts
values: ci-sepolia.yaml
runner_type: 16core-tester-x86
timeout: 40
steps:
- uses: actions/checkout@v4
with: { ref: "${{ env.GIT_COMMIT }}" }
- name: Setup and KIND Network Test against Sepolia
timeout-minutes: ${{ matrix.config.timeout }}
uses: ./.github/ensure-tester
with:
runner_type: ${{ matrix.config.runner_type }}
spot_strategy: None # use on-demand machines
ttl: ${{ matrix.config.timeout }}
run: |
until docker info &>/dev/null; do sleep 1; done
export CI=1 USE_CACHE=1
artifact="kind-network-${{matrix.config.test}}-$(./spartan/bootstrap.sh hash)"
if ci3/test_should_run "$artifact"; then
docker pull aztecprotocol/aztec:${{ env.GIT_COMMIT }}
docker pull aztecprotocol/end-to-end:${{ env.GIT_COMMIT }}

# Set the sepolia run variables
export EXTERNAL_ETHEREUM_HOST=${{ env.EXTERNAL_ETHEREUM_HOST }}
export EXTERNAL_ETHEREUM_CONSENSUS_HOST=${{ env.EXTERNAL_ETHEREUM_CONSENSUS_HOST }}
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
- name: Copy Network Logs
if: always()
run: scripts/copy_from_tester spartan/scripts/logs/test_kind.log test_kind.log || true

- name: Upload Network Logs
if: always()
uses: actions/upload-artifact@v4
with:
name: kind-network-test-${{ matrix.config.values }}-${{ matrix.config.test }}.log
path: test_kind.log

success-check:
runs-on: ubuntu-20.04
needs:
Expand Down
1 change: 1 addition & 0 deletions playground/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2606,6 +2606,7 @@ __metadata:
checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5
languageName: node
linkType: hard
version: 0.0.0-use.local

"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6":
version: 1.2.7
Expand Down
5 changes: 5 additions & 0 deletions spartan/aztec-network/files/config/get-private-key.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ 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))

echo "KEY_INDEX: $KEY_INDEX"
echo "KEY_INDEX_START: $KEY_INDEX_START"
echo "PRIVATE_KEY_INDEX: $PRIVATE_KEY_INDEX"
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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,16 @@ set -eu
# - NUMBER_OF_VALIDATORS
# source /scripts/get-validator-addresses.sh

echo "Getting validator addresses for $NUMBER_OF_VALIDATORS validators starting at index $KEY_INDEX_START"
# Echo first 2 words of mnemonic
first_two=$(echo "$MNEMONIC" | cut -d' ' -f1-2)
echo "First two words of mnemonic: $first_two"

# Initialize empty string for validator addresses
VALIDATOR_ADDRESSES_LIST=""

i=$KEY_INDEX_START
while [ $i -lt $NUMBER_OF_VALIDATORS ]; do
while [ $i -lt $((KEY_INDEX_START + NUMBER_OF_VALIDATORS)) ]; do
# Get the private key from the mnemonic
private_key=$(cast wallet private-key "$MNEMONIC" --mnemonic-index $i)
address=$(cast wallet address "$private_key")
Expand Down
4 changes: 4 additions & 0 deletions spartan/aztec-network/templates/boot-node.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ spec:
value: "{{ .Values.aztec.epochDuration }}"
- name: AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS
value: "{{ .Values.aztec.epochProofClaimWindow }}"
- name: L1_GAS_PRICE_MAX
value: "{{ .Values.ethereum.l1GasPriceMax }}"
- name: L1_FIXED_PRIORITY_FEE_PER_GAS
value: "{{ .Values.ethereum.l1FixedPriorityFeePerGas }}"
- name: K8S_POD_UID
valueFrom:
fieldRef:
Expand Down
6 changes: 6 additions & 0 deletions spartan/aztec-network/templates/prover-node.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,12 @@ spec:
value: service.name={{ .Release.Name }},service.namespace={{ .Release.Namespace }},service.version={{ .Chart.AppVersion }},environment={{ .Values.environment | default "production" }}
- name: L1_CHAIN_ID
value: "{{ .Values.ethereum.chainId }}"
- name: L1_FIXED_PRIORITY_FEE_PER_GAS
value: {{ .Values.proverNode.l1FixedPriorityFeePerGas | quote }}
- name: L1_GAS_LIMIT_BUFFER_PERCENTAGE
value: {{ .Values.proverNode.l1GasLimitBufferPercentage | quote }}
- name: L1_GAS_PRICE_MAX
value: {{ .Values.proverNode.l1GasPriceMax | quote }}
- name: P2P_ENABLED
value: "{{ .Values.proverNode.p2pEnabled }}"
- name: P2P_TCP_LISTEN_ADDR
Expand Down
3 changes: 3 additions & 0 deletions spartan/aztec-network/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,9 @@ proverNode:
intervalMs: 1000
maxParallelRequests: 100
failedProofStore: "gs://aztec-develop/spartan/failed-proofs"
l1GasPriceMax: 100
l1FixedPriorityFeePerGas: ""
l1GasLimitBufferPercentage: ""

pxe:
enabled: true
Expand Down
65 changes: 65 additions & 0 deletions spartan/aztec-network/values/ci-sepolia.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
aztec:
slotDuration: 36
epochDuration: 4
realProofs: false
l1DeploymentMnemonic: ""
validatorKeyIndexStart: 49
proverKeyIndexStart: 52

ethereum:
chainId: "11155111"
externalHost: ""
l1GasPriceMax: 500
l1FixedPriorityFeePerGas: 3
beacon:
externalHost: ""
apiKey: ""
apiKeyHeader: ""

telemetry:
enabled: false

validator:
l1FixedPriorityFeePerGas: 3
l1GasLimitBufferPercentage: 15
replicas: 3
validatorKeys:
resources:
requests:
memory: "512Mi"
cpu: "200m"
validator:
disabled: false
sequencer:
enforceTimeTable: false

bot:
followChain: "PENDING"
enabled: true
txIntervalSeconds: 1

bootNode:
validator:
disabled: true
resources:
requests:
memory: "2Gi"
cpu: "200m"

proverAgent:
resources:
requests:
memory: "2Gi"
cpu: "200m"

proverBroker:
resources:
requests:
memory: "2Gi"
cpu: "200m"

proverNode:
resources:
requests:
memory: "2Gi"
cpu: "200m"
8 changes: 4 additions & 4 deletions spartan/aztec-network/values/rc-2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ aztec:
slotDuration: 36
epochDuration: 32
realProofs: true
# TODO: Will need to change these as ignition will be using them
l1DeploymentMnemonic: ""
validatorKeyIndexStart: 4
proverKeyIndexStart: 52

images:
aztec:
Expand Down Expand Up @@ -36,14 +40,10 @@ validator:
disabled: false

bootNode:
seqPublisherPrivateKey:
validator:
disabled: true
storageSize: "100Gi"

proverNode:
proverPublisherPrivateKey:

proverAgent:
replicas: 60
bb:
Expand Down
27 changes: 15 additions & 12 deletions spartan/aztec-network/values/sepolia-3-validators-with-metrics.yaml
Original file line number Diff line number Diff line change
@@ -1,34 +1,37 @@
telemetry:
enabled: true

aztec:
slotDuration: 36
epochDuration: 32
realProofs: false

network:
setupL2Contracts: false
public: false

ethereum:
execution:
externalHost:
l1DeploymentMnemonic:
proverKeyIndexStart: 0
validatorKeyIndexStart: 1
chainId: "11155111"
externalHost:
beacon:
externalHost:
chainId: "11155111"
apiKey:
apiKeyHeader:

validator:
l1FixedPriorityFeePerGas: 2
l1GasLimitBufferPercentage: 15
l1GasPriceMax: 500
replicas: 3
validatorKeys:
validatorAddresses:
- 0xB5221f3FA03acDEA5A68e355CcDed3f76847F375
- 0x226E9D4c69525884b0A52C1E9E4C11054729223e
- 0xA33Fa6E2890C37C42CFC0875B86462E73885e02b
validator:
disabled: false

bootNode:
seqPublisherPrivateKey:
validator:
disabled: true

proverNode:
proverPublisherPrivateKey:

bot:
txIntervalSeconds: 20
Loading