Go to file
Victor Farazdagi c97ea766ca
Attestation aggregation: optimizations and benchmarks (#7938)
* profitablity tests

* cleanup benchmark

* fix deduplication function

* dedup: move method to atts list

* proper substring handling

* refactor validate method

* update benchmarks

* prepare proposer test

* remove redundant code

* reset test

* remove dedup from maxcover - moved to proposer

* remove redundant test

* remove lower level check for bit length

* optimize candidate validation on att aggregation

* restore test

* fix test

* fix test

* remove dedup functionality

* add benchmark

* optimize list usage

* Attestation aggregration: remove redundant dedup routine

* fix func call

* experiment with bitset based cover

* add benchmark

* samplem implementation using Bilist64

* add tests

* remove redundant code

* remove tmp comments

* unskip test

* update benchmarks

* gazelle

* process err

* optimized max-cover

* Max-cover: optimized implementation based on Bitlist64

* gazelle

* re-arrange overlaps check

* minor comments

* add Bitlists64WithMultipleBitSet

* update benchmarks

* gazelle

* add TestAggregateAttestations_rearrangeProcessedAttestations

* minor updates to rearrange method

* add link to design doc

* remove redundant methods

* simplify test

* add TestAggregateAttestations_aggregateAttestations

* fix issues

* fix assignment

* use ToBitlist(), ToBitlist64()

* fixes test

* benchmarks

* fix typo

* allow opt_max_cover opt-int flag

* update benchmarks

* reset e2e

* fix test

* enable opt_max_cover in e2e tests

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2021-02-04 00:58:33 +00:00
.github Fix Pull Request Template Language (#7738) 2020-11-05 20:46:28 +00:00
.well-known Update security.txt (#7956) 2020-11-25 17:38:35 +00:00
beacon-chain Add Custom Deadline for Slot Progression (#8388) 2021-02-03 21:39:54 +00:00
contracts Fix Up READMEs for Mainnet (#7910) 2020-11-23 18:47:55 +00:00
endtoend Rename getter functions to be idiomatic (#8320) 2021-01-25 21:27:30 +00:00
fuzz Ran code inspect (#8387) 2021-02-03 10:59:17 -06:00
proto Add Back Accounts Backup Validator RPC Functionality (#8367) 2021-01-29 18:30:44 -06:00
scripts Coverage results upload fix for CI (#8255) 2021-01-12 20:12:09 +00:00
shared Attestation aggregation: optimizations and benchmarks (#7938) 2021-02-04 00:58:33 +00:00
slasher Ajust constructor names of nodes (#8362) 2021-02-01 17:12:52 +00:00
third_party Update Herumi BLS Library (#8377) 2021-02-01 18:31:48 +00:00
tools Ran code inspect (#8387) 2021-02-03 10:59:17 -06:00
validator Validator testing library should be marked as testonly (#8392) 2021-02-03 23:16:41 +00:00
.bazelrc Stamp binaries by default (#8292) 2021-01-19 20:43:30 +00:00
.bazelversion Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
.buildkite-bazelrc Revert "Use remote cache in CI" (#8281) 2021-01-19 01:55:00 +00:00
.codecov.yml Update codecov to ignore generated code (#2794) 2019-06-12 10:45:17 -04:00
.deepsource.toml Add DeepSource for Bash Files (#7741) 2020-11-06 17:04:48 +00:00
.dockerignore Add tool and script for interop testing (#3417) 2019-09-09 17:31:19 -04:00
.gitattributes linguist-generated=true for mock and pb go files (#1465) 2019-02-02 17:25:28 -05:00
.gitignore Coverage results upload fix for CI (#8255) 2021-01-12 20:12:09 +00:00
.golangci.yml upgrading linter from gometalinter to golangci-lint (#2100) 2019-04-26 14:24:01 +08:00
.policy.yml Include Policy Bot Application (#7523) 2020-10-14 04:14:38 +00:00
.travis.yml Resolve Proto Lint Issues (#3044) 2019-07-22 14:10:17 -05:00
bazel.sh Update bazel.sh (#5028) 2020-03-06 17:43:06 +00:00
BUILD.bazel Prevent Usage of Stdlib File/Dir Writing With Static Analysis (#7685) 2020-11-09 14:27:03 -06:00
CONTRIBUTING.md Fix Up READMEs for Mainnet (#7910) 2020-11-23 18:47:55 +00:00
DEPENDENCIES.md Revert DEPENDENCIES.md change from #8257 (#8389) 2021-02-03 18:46:46 +00:00
deps.bzl Update bitfield dependency (#8385) 2021-02-02 21:33:48 +00:00
go.mod Update bitfield dependency (#8385) 2021-02-02 21:33:48 +00:00
go.sum Update bitfield dependency (#8385) 2021-02-02 21:33:48 +00:00
interop.Dockerfile Add tool and script for interop testing (#3417) 2019-09-09 17:31:19 -04:00
INTEROP.md Update docs for keymanager (#4651) 2020-01-25 06:25:58 -08:00
LICENSE.md update to GPLv3 (#297) 2018-07-20 10:23:48 -05:00
nogo_config.json Prevent Usage of Stdlib File/Dir Writing With Static Analysis (#7685) 2020-11-09 14:27:03 -06:00
prysm.bat Fix for prysm.bat issue 'Validator' is not recognized as an internal or external command (#8097) 2021-01-04 23:27:38 +00:00
prysm.ps1 Various Powershell Fixes (#7854) 2020-11-20 17:17:38 +00:00
prysm.sh Do Not Recommend --ssl-no-revoke When Downloading Prysm Scripts (#7618) 2020-10-22 22:25:22 +00:00
README.md Update README.md (#8366) 2021-01-30 14:28:27 +00:00
service-account.json.enc Bazel cache for travis (#236) 2018-07-07 16:01:58 -04:00
TERMS_OF_SERVICE.md Update TERMS_OF_SERVICE.md (#7590) 2020-10-21 20:34:40 +00:00
WORKSPACE Update the Toolchain Registration (#8322) 2021-01-25 16:46:27 +00:00

Prysm: An Ethereum 2.0 Implementation Written in Go

Build status Go Report Card ETH2.0_Spec_Version 1.0.0 Discord

This is the core repository for Prysm, a Golang implementation of the Ethereum 2.0 specification, developed by Prysmatic Labs. See the Changelog for details of the latest releases and upcoming breaking changes.

Getting Started

A detailed set of installation and usage instructions as well as breakdowns of each individual component are available in the official documentation portal. If you still have questions, feel free to stop by our Discord.

Staking on Mainnet

To participate in staking, you can join the official eth2 launchpad. The launchpad is the only recommended way to become a validator on mainnet. You can explore validator rewards/penalties via Bitfly's block explorer: beaconcha.in, and follow the latest blocks added to the chain on beaconscan.

Contributing

Branches

Prysm maintains two permanent branches:

  • master: This points to the latest stable release. It is ideal for most users.
  • develop: This is used for development, it contains the latest PRs. Developers should base their PRs on this branch.

Guide

Want to get involved? Check out our Contribution Guide to learn more!

License

GNU General Public License v3.0

Terms of Use