* Add missed exit checks to consolidation processing
* Use safe add
* gaz
* Pass spec tests (except single attestation)
Revert params.SetupTestConfigCleanupWithLock(t)
* Update earlist exit epoch for upgrade to electra
* Validate that each committee bitfield in an aggregate contains at least one non-zero bit
* Add single attestation
* Add single attestation to ssz static
* Fix typo
Co-authored-by: Md Amaan <114795592+Redidacove@users.noreply.github.com>
* Update UpgradeToElectra comments
* Add no lint dupword
---------
Co-authored-by: james-prysm <james@prysmaticlabs.com>
Co-authored-by: Md Amaan <114795592+Redidacove@users.noreply.github.com>
* Update bazel-lib
* Update rules_oci
* Compress pkg_tar
* Add a note about 401 download for distroless/cc-debian11
* Update CHANGELOG.md
* Re-upload distroless/cc-debian11 to prysmaticlabs/distroless/cc-debian11 such that the image is public.
Ran the following command:
gcrane cp 'gcr.io/distroless/cc-debian11@sha256:b82f113425c5b5c714151aaacd8039bc141821cdcd3c65202d42bdf9c43ae60b' gcr.io/prysmaticlabs/distroless/cc-debian11:latest
* Back out "Update rules_oci"
This backs out commit 64200fb25e.
* wip
* updating types and wip on functions
* renaming to MAX_PENDING_DEPOSITS_PER_EPOCH
* fixing linting and conversions
* adding queue deposit changes
* fixing test and cloning
* removing unneeded test based on update
* gaz
* wip apply pending deposit
* fixing replay test and adding apply pending deposit
* fixing setters test
* updating transition test
* changelog
* updating pending deposits
* fixing ProcessPendingDeposit unit tests
* gaz
* fixing cyclic dependencies
* fix visiblity
* missed adding the right signature verification
* adding point to infinity topup test
* adding apply pending deposit test
* making changes based on eip6110 changes
* fixing ineffassign
* gaz
* adding batched verifications sigs
* fixing broken type
* fixing proto
* updated consensus spec tests and fixed consensus bug tests
* testing readability improvement by avoiding ApplyPendingDeposit
* removing the boolean from apply pending deposit
* improve naming
* review comments and fixing a small bug using wrong variable
* fixing tests and skipping a test
* adding some test skips
* fixing bugs terence found
* adding test for batchProcessNewPendingDeposits
* gaz
* adding churn test
* updating spec tests to alpha.8
* adding pr to changelog
* addressing terence's comments
* Update beacon-chain/core/electra/validator.go
Co-authored-by: terence <terence@prysmaticlabs.com>
* adding tests for batch verify and rename some variables
* skipping tests , add them back in later
* skipping one more test
---------
Co-authored-by: terence <terence@prysmaticlabs.com>
* Bump go version up
* Update to go 1.22 compatible version
* Fix NoSec declarations
* Skip Gosec in GolangCi
* Avoid Bug In Analyzer
* Add in Gohashtree and Update to 1.22.4
* Fix Go Sum
* Add coreutils to docker images
* add coreutils dependencies
* Add a prysmaticlabs.com/uploads backup of the deb files
* Run gazelle and fix issues
* Remove broken tar, change http_archive deps to debian_archive, remove http mirrors in favor of snapshot
* Add comments about which deps are required by other deps
* Update staticcheck to latest
* Add static checks while ignoring for third party / external stuff
* Added a hack to keep go mod happy.
* disable SA2002
* Pin go mod tidy checker image to golang:1.20-alpine
* `TestStore_GenesisValidatorsRoot_ReadAndWrite`: Make all test cases independents.
In a test with multiple test cases, each test case should be independents.
(aka: Removing test case `A` should not impact test case `B`)
* `SaveGenesisValidatorsRoot`: Allow to overwrite the genesis validator root if the root is the same.
* `ProposalHistoryForSlot`: Add `signingRootExists`
Currently, it is not possible with `ProposalHistoryForSlot` to know if a
proposal is stored with and `0x00000....` signing root or with an empty
signing root. Both cases result to `proposalExists == true` and
`signingRoot == 0x00000`.
This commit adds a new return boolean: `signingRootExists`.
If a proposal has been saved with a `0x00000...` signing root, then:
- `proposalExists` is set to `true`, and
- `signingRootExists` is set to `true`, and
- `signingRoot` is set to `0x00000...`
If a proposal has been saved with an empty signing root, then:
- `proposalExists` is set to `true`, and
- `signingRootExists` is set to `false`, and
- (`signingRoot` is set to `0x00000...`)
* `ImportStandardProtectionJSON`: When importing EIP-3076 Slashing Protection Interchange Format, do not filter any more slashable keys.
Note: Those keys are still saved into the black-listed public keys list.
There is two reason not to do so:
- The EIP-3076 test cases do not know about Prysm's internal black-listed public keys list.
Tests will expect, without looking into this internal black-listed public keys list,
to deny a further signature. If we filter these keys from the DB (even if we keep them
into the black-listed keys list), then some tests will fail.
- If we import a interchange file containing slashable keys and we filter them, then,
if we re-export the DB, those slashing offences won't appear in the exported interchange
file.
* `transformSignedBlocks`: Store an 0-len byte slice
When importing an EIP-3076 interchange format, and when no
signing root is specified into the file, we currently store a
`0x00000.....` signing root.
In such a case, instead storing `0x00000...`, this commit stores
a 0-len byte array, so we can differentiate real `0x000.....` signing
root and no signing-root at all.
* `slashableProposalCheck`: Manage lack of sign root
Currently, `slashableProposalCheck` does not really make a difference
between a `0x0000.....` signing root and a missing signing root.
(Signing roots can be missing when importing an EIP-3076 interchange
file.)
This commit differentiate, for `slashableProposalCheck`, `0x0000....`
signing root and a missing signing root.
* `AttestationRecord.SigningRoot`: ==> `[]byte`
When importing attestations from EIP-3076 interchange format,
the signing root of an attestation may be missing.
Currently, Prysm consider any missing attestation signing root as
`0x000...`.
However, it may conflict with signing root which really are equal to
`0x000...`.
This commit transforms `AttestationRecord.SigningRoot` from `[32]byte` to
`[]byte`, and change the minimal set of functions (sic) to support this
new type.
* `CheckSlashableAttestation`: Empty signing root
Regarding slashing roots, 2 attestations are slashable, if:
- both signing roots are defined and differs, or
- one attestation exists, but without a signing root
* `filterSlashablePubKeysFromAttestations`: Err sort
Rergarding `CheckSlashableAttestation`, we consider that:
- If slashable == NotSlashable and err != nil, then CheckSlashableAttestation
failed.
- If slashable != NotSlashable, then err contains the reason why the attestation
is slashable.
* `setupEIP3076SpecTests`: Update to `v5.3.0`
This commit:
- Updates the version of EIP-3076 tests to `v.5.2.1`.
- Setups on anti-slashing DB per test case, instead per step.
* `ImportStandardProtectionJSON`: Reduce cycl cmplxt
* `AttestationHistoryForPubKey`: copy signing root
BoltDB documentation specifies:
| Byte slices returned from Bolt are only valid during a transaction.
| Once the transaction has been committed or rolled back then the memory
| they point to can be reused by a new page or can be unmapped
| from virtual memory and you'll see an unexpected fault address panic
| when accessing it.
* Add bazel-zig-cc for a hermetic cc toolchain
* gazelle
* Remove llvm
* remove wl
* Add new URLs for renamed repo
* gazelle
* Update to v2.0.0-rc1
* bump to rc2
* Proof of concept multi-arch containers for beacon-chain
* TODO and gaz
* Refactor to starlark macro. Use a version of bash that actually works
* progress
* gaz
* multirun to use multiple repositories, but doesn't work with tag stamping
* Revert "multirun to use multiple repositories, but doesn't work with tag stamping"
This reverts commit 93afa76f65.
* Add targets for all supported docker images and temporarily set the repository to prysm-dev for testing
* use a temporary fix to see if it works on buildkite
* Revert "use a temporary fix to see if it works on buildkite"
This reverts commit ddc79283ca.
* testing a cURL fix
* try fix with my fix
* Revert "try fix with my fix"
This reverts commit bb7521bf47.
* Revert "testing a cURL fix"
This reverts commit 8a4782110f.
* try tip of main branch for rules_oci
* update to 1.2.0
* Update rules_oci to v1.3.0
* Update rule_oci to 1.3.4
* Disable experimental_remote_downloader
* Remove extra zig bazelrc
* Move image deps to its own file
* PR feedback
---------
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
* Remove prysm_web_ui http_archive from WORKSPACE
* Remove go_embed_data_dependencies() from WORKSPACE
* Remove go_embed_data target from validator/web/BUILD.bazel
* Remove # gazelle:ignore site_data.go annotation from validator/web/BUILD.bazel
* Run bazel run //:gazelle
Co-authored-by: Preston Van Loon <pvanloon@offchainlabs.com>
Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
* Update rules_go to v0.40.0
* Update gazelle to v0.26.0
* Update gazelle to v0.27.0
* Update gazelle to v0.28.0
* Update gazelle to v0.29.0
* Update gazelle to v0.30.0
* Update gazelle to v0.31.0