Go to file
Mohamed Zahoor c6bd7a2f83
Efficient Historical State Representation (#9155)
* added migration in to new schema

* gazel fix

* goimports fix

* construct state with validator entries from a seperate bucket

* save state with validator entry indirection

* fixed save and retreieve issues

* fixed more test cases related to DeepEqual

* added save benchmark

* gazel fix

* organize benchmarks

* add cache and improve state construction  performance

* gazel fix

* check type

* remove cache checking from Has

* fix decoding when cache is off

* fix slice bugs

* add migration testcases

* linter fix

* fix few review comments

* fix review feedback

* gazel fix

* satisfy deepsource

* added the feature flag

* lint fix

* fix usage of featureconfig Inti in testcases

* call resetConfig method

* add feature flag in  migration testcases

* fix formatting

* change bucket name from blockRootValidatorKeysIndexBucket to blockRootValidatorHashesBucket

* remove from cache when state deleted

* fixed few more comments

* added to devModeFlags

* added cache delete under the feature flag

* fix lint

* change cache sizes and improve documentation

* fiexed few more review coments

* not using hash anymore and using a new SaveStates function

* satisfu deepsource

* run gazel

* fix feature flag related stuff

* fixing merge conflict fix

* few goodies

* improve UX and dont swallow error

* merge fix

* import format fix

* fix migrationion when flag not given issue

Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: Nishant Das <nishdas93@gmail.com>
2021-07-27 20:02:53 +00:00
.github Add goimports check (#9075) 2021-06-22 19:57:26 +00:00
.well-known Update security.txt (#7956) 2020-11-25 17:38:35 +00:00
beacon-chain Efficient Historical State Representation (#9155) 2021-07-27 20:02:53 +00:00
cmd Fix //... for darwin (#9273) 2021-07-23 18:26:49 +00:00
contracts Update Go-Ethereum (#9157) 2021-07-09 07:58:43 -05:00
endtoend Add Doppelganger E2E (#9239) 2021-07-21 23:00:12 -05:00
fuzz Move proto/interfaces -> proto/prysm/v2 (#9270) 2021-07-23 20:10:15 +00:00
proto Generate SSZ Bindings for Latest Protos (#9285) 2021-07-27 17:57:11 +00:00
scripts Move RPC Protos Into V2 Namespace (#9254) 2021-07-22 21:00:28 +00:00
shared Efficient Historical State Representation (#9155) 2021-07-27 20:02:53 +00:00
slasher Move Slashing Protos to V2 (#9256) 2021-07-23 18:01:01 +00:00
spectest Move proto/interfaces -> proto/prysm/v2 (#9270) 2021-07-23 20:10:15 +00:00
third_party Bazel: minimal test build transitions (#9122) 2021-06-30 19:22:09 +00:00
tools Fix //... for darwin (#9273) 2021-07-23 18:26:49 +00:00
validator Move proto/interfaces -> proto/prysm/v2 (#9270) 2021-07-23 20:10:15 +00:00
.bazelrc Invert BLST Go Tag (#8725) 2021-04-11 11:11:15 +00:00
.bazelversion Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
.buildkite-bazelrc Double java heap size for buildkite (#9073) 2021-06-22 18:28:34 +00:00
.codecov.yml Codecov: ignore testing directories (#8777) 2021-04-16 08:44:36 -05:00
.deepsource.toml Add generated file to DeepSource exclude_patterns (#8765) 2021-04-14 14:06:25 +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 Fix All Deep Source Shell Issues and Go Issues (#8661) 2021-03-24 19:57:27 +00:00
BUILD.bazel Bazel: minimal test build transitions (#9122) 2021-06-30 19:22:09 +00:00
CONTRIBUTING.md Reduce Usage of Eth2 Terminology in Prysm (#9104) 2021-06-26 19:00:33 +00:00
DEPENDENCIES.md Revert DEPENDENCIES.md change from #8257 (#8389) 2021-02-03 18:46:46 +00:00
deps.bzl Update Libp2p to v0.14.4 (#9108) 2021-07-20 23:50:47 +00:00
fuzzbuzz.yaml Set up Prysm for fuzz testing on Fuzzbuzz (#8789) 2021-04-19 19:00:46 +00:00
go.mod Remove Faucet Protos (#9252) 2021-07-22 18:27:31 +00:00
go.sum Remove Faucet Protos (#9252) 2021-07-22 18:27:31 +00:00
interop.Dockerfile Add tool and script for interop testing (#3417) 2019-09-09 17:31:19 -04:00
INTEROP.md Reduce Usage of Eth2 Terminology in Prysm (#9104) 2021-06-26 19:00:33 +00:00
LICENSE.md update to GPLv3 (#297) 2018-07-20 10:23:48 -05:00
nogo_config.json Interface Analyzer (#8923) 2021-05-23 21:55:42 -07:00
prysm.bat prysm scripts should not save 404 pages (#9072) 2021-07-06 23:34:42 +00:00
prysm.ps1 Update prysm scripts to support client-stats, deprecate slasher (#8971) 2021-06-02 14:06:59 -05:00
prysm.sh prysm scripts should not save 404 pages (#9072) 2021-07-06 23:34:42 +00:00
README.md Reduce Usage of Eth2 Terminology in Prysm (#9104) 2021-06-26 19:00:33 +00:00
service-account.json.enc Bazel cache for travis (#236) 2018-07-07 16:01:58 -04:00
TERMS_OF_SERVICE.md Reduce Usage of Eth2 Terminology in Prysm (#9104) 2021-06-26 19:00:33 +00:00
WORKSPACE Bazel: minimal test build transitions (#9122) 2021-06-30 19:22:09 +00:00

Prysm: An Ethereum Consensus 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 Consensus 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