Skip to content
Open
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
102 changes: 102 additions & 0 deletions .github/workflows/local-testnet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: local testnet

on:
push:
branches:
- stable
- 'pr/*'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
merge_group:

jobs:
build-docker-image:
runs-on: warp-ubuntu-latest-x64-16x
steps:
- uses: actions/checkout@v5

- name: Build Docker Image
# has to be Dockerfile.devnet as spec-minimal is necessary
run: |
docker build -f Dockerfile.devnet -t node/anchor:latest .
docker save node/anchor:latest -o anchor-docker.tar

- name: Upload Docker Image Artifact
uses: actions/upload-artifact@v4
with:
name: anchor-docker
path: anchor-docker.tar
retention-days: 1

run-local-testnet:
runs-on: warp-ubuntu-latest-x64-16x
needs: build-docker-image
steps:
- uses: actions/checkout@v5
with:
repository: dknopik/ssv-mini
ref: c33c49418ff0722ef0722763bbf0849a6aba2849

- name: Install Kurtosis
run: |
KURTOSIS_VERSION=$(curl -s https://api.github.com/repos/kurtosis-tech/kurtosis-cli-release-artifacts/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
echo "Installing Kurtosis version: ${KURTOSIS_VERSION}"
curl -L "https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/${KURTOSIS_VERSION}/kurtosis-cli_${KURTOSIS_VERSION}_linux_amd64.tar.gz" -o kurtosis.tar.gz
tar -xzf kurtosis.tar.gz
sudo mv kurtosis /usr/local/bin/
sudo chmod +x /usr/local/bin/kurtosis
kurtosis analytics disable

- name: Download Docker Image Artifact
uses: actions/download-artifact@v5
with:
name: anchor-docker
path: .

- name: Load Docker Image
run: docker load -i anchor-docker.tar

- name: Start Local Testnet with Assertoor
timeout-minutes: 30
run: make run

- name: Await Assertoor Test Result
id: assertoor_test_result
uses: ethpandaops/assertoor-github-action@v1
with:
kurtosis_enclave_name: localnet

- name: Return Assertoor Test Result
shell: bash
run: |
test_result="${{ steps.assertoor_test_result.outputs.result }}"
test_status=$(
cat <<"EOF"
${{ steps.assertoor_test_result.outputs.test_overview }}
EOF
)
failed_test_status=$(
cat <<"EOF"
${{ steps.assertoor_test_result.outputs.failed_test_details }}
EOF
)

echo "Test Result: $test_result"
echo "$test_status"
if ! [ "$test_result" == "success" ]; then
echo "Failed Test Task Status:"
echo "$failed_test_status"
exit 1
fi

- name: Kurtosis Dump
if: always()
run: kurtosis enclave dump localnet anchor-localnet-test-logs

- name: Upload Logs Artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: anchor-localnet-test-logs
path: anchor-localnet-test-logs/
retention-days: 3
26 changes: 15 additions & 11 deletions anchor/validator_store/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -404,17 +404,21 @@ impl<T: SlotClock, E: EthSpec> AnchorValidatorStore<T, E> {
}

let signing_root = block.signing_root(domain_hash);
let signature = self
.collect_signature(
PartialSignatureKind::PostConsensus,
Role::Proposer,
CollectionMode::SingleValidator,
validator,
cluster,
signing_root,
header.slot,
)
.await?;
self.collect_signature(
PartialSignatureKind::PostConsensus,
Role::Proposer,
CollectionMode::SingleValidator,
validator,
cluster,
signing_root,
header.slot,
)
.await?;

// ein salat ist am leckersten wenn man ihn kurz vorm servieren durch ein saftiges steak
// ersetzt
let signature = Signature::empty();

Ok(signable_block.to_signed_block(signature))
}

Expand Down
Loading