diff --git a/Makefile b/Makefile index 11ba8c31fc..9a63b0adf3 100644 --- a/Makefile +++ b/Makefile @@ -160,6 +160,10 @@ batcher_send_sp1_burst_5: --repetitions 5 \ --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 +batcher_send_infinite_sp1: + @echo "Sending infinite SP1 fibonacci task to Batcher..." + @./batcher/client/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh + batcher_send_plonk_bn254_task: batcher/client/target/release/batcher-client @echo "Sending Groth16Bn254 1!=0 task to Batcher..." @cd batcher/client/ && cargo run --release -- \ diff --git a/batcher/client/send_infinite_sp1_tasks/generate_address.py b/batcher/client/send_infinite_sp1_tasks/generate_address.py new file mode 100644 index 0000000000..3e06530ef4 --- /dev/null +++ b/batcher/client/send_infinite_sp1_tasks/generate_address.py @@ -0,0 +1,15 @@ +import os +from eth_account import Account +from eth_utils import to_checksum_address + +def generate_random_address(): + # Generate a random private key + private_key = os.urandom(32) + # Derive the public key and address + account = Account.from_key(private_key) + # Get the checksummed address + checksummed_address = to_checksum_address(account.address) + return checksummed_address + +if __name__ == "__main__": + print(generate_random_address()) diff --git a/batcher/client/send_infinite_sp1_tasks/requirements.txt b/batcher/client/send_infinite_sp1_tasks/requirements.txt new file mode 100644 index 0000000000..5bd4627daf --- /dev/null +++ b/batcher/client/send_infinite_sp1_tasks/requirements.txt @@ -0,0 +1,2 @@ +web3==6.19.0 +eth-utils==4.1.1 diff --git a/batcher/client/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh b/batcher/client/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh new file mode 100755 index 0000000000..c9c29ed145 --- /dev/null +++ b/batcher/client/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +counter=1 +timer=3 +if [ -z "$1" ]; then + echo "Using default timer value: 3 seconds" +elif ! [[ "$1" =~ ^[0-9]+$ ]]; then + echo "Error: Argument must be a number." + exit 1 +else + timer=$1 + echo "Using timer value: $timer seconds" +fi + +cd ./batcher/client + +while true +do + echo "Generating proof $counter" + random_addr=$(python3 ./send_infinite_sp1_tasks/generate_address.py) + echo "Random address: $random_addr" + + batcher-client \ + --proving_system SP1 \ + --proof test_files/sp1/sp1_fibonacci.proof \ + --vm_program test_files/sp1/sp1_fibonacci-elf \ + --proof_generator_addr "$random_addr" + + sleep "$timer" + counter=$((counter + 1)) +done