v1.4.1
(2021-07-20)
Welcome to another Prysm release! This release has many changes, fixes, and features!
This is a required release for supporting the upcoming London hardfork on Ethereum mainnet. Prysm releases prior to this version may experience warnings or errors when fetching block data from an eth1 endpoint after London is activated. These errors can lead to missed block proposals if your block requires deposits that Prysm was unable to fetch due to new changes in the London hardfork.
Where is v1.4.0?
In the last release, we accidentally pushed the git tag for v1.4.0 when creating v1.3.11. The tag was quickly removed from github and the release was successfully tagged as v1.3.11. Unfortunately, go.mod / godocs has cached the v1.4.0 tag already to point to the same commit as v1.3.11. There really isn't much of an issue here, except that pushing another v1.4.0 may cause some confusion or issues with using go.mod and go get
. So, we are simply skipping 1.4.0 and jumping to 1.4.1.
Notable changes in v1.4
- Ethereum APIs endpoints, except validator endpoints, are ready to use! See #7510 for more details of the implementation statuses.
- Go-ethereum dependency update to support London hardfork. #9157
- Validator Doppelganger verification
--enable-doppelganger
#9120 - Tooling for boltdb bucket analysis #9116
- Strict argument validation when starting Prysm processes #9129
- Improvements to prysm.sh #9072
- Improvements to client-stats #9039 (Docs link)
- Database backup permissions fix #8888
Experimental/new features to test
These features have passed our own internal testing but we'd still like to see some users feedback before we roll them out as default in a stable release.
Validator features
--attest-timely
validator can attest timely after current block processes. See #8185 for more details--enable-doppelganger
Enables the validator to perform a doppelganger check on startup
Beacon node features
--update-head-timely
Improves update head time by updating head right after state transition. Note: This feature is going to flip to "opt-out" in next release.
Prysm slasher binary deprecation
We have been communicating that the slasher is going to be deprecated in the v1.4 release. This effort has been pushed back while we work on various storage optimizations in parallel to Altair development. Expect the Prysm slasher binary will be deprecated and removed in the upcoming Prysm v2 release with Altair support. Follow the v2 tracking issue for more info #9166.
Full list of changes below.
1.4.1 (2021-07-09)
- [Feature] - API Middleware (#8926) (12403d2), closes #8926 #8904 #8922 #8924 #8925 #8942 #8944 #8937 #8938 #8925 #8942 #8944 #8937 #8938 #8960 #8963 #8966 #8984 #8998 #8970 #9007
- Add
Eth2FastAggregateVerify
(#9144) (2ae6452), closes #9144 - Add a test for e2e validator to run against prior release (#9042) (1f6a031), closes #9042
- Add Altair Protobuf Changes to Prysm (#9087) (8607166), closes #9087
- Add Better Zero Key Checks (#9022) (fb08014), closes #9022
- Add Events Streaming Endpoint for Eth2 Standard API (#9001) (4551bb4), closes #9001
- Add goimports check (#9075) (942472f), closes #9075
- add lock (#9068) (6e42f1b), closes #9068
- Add priority queue from
hf1
(#9138) (877cb9f), closes #9138 - Add priority queue tests (#9142) (1ff4605), closes #9142
- Add proposer sync contribution type (#9106) (ea34af4), closes #9106
- Add search for most profitable sync contribution (#9121) (4fb3e05), closes #9121
- Add sync committee
aggregation_bits
tags for minimal and mainnet (#9147) (466546b), closes #9147 - Adding ability to override directory permissions for db backup (#8888) (ae7e276), closes #8888
- Beacon State V2 Interface Definition With Semantic Version Paths (#9125) (b23f63a), closes #9125
- Better comments for aggregator functions (#9053) (4d1b5f4), closes #9053
- Better import alias names (#9149) (6c8fd74), closes #9149
- Block Stream V2 Protos (#9096) (8f5c083), closes #9096
- Create
ValidatorIndexOutOfRangeError
(#9035) (77bf4bd), closes #9035 - Disable No Freelist Sync In Backups (#9069) (9ee086f), closes #9069
- Do not register API Middleware with validator gateway (#9055) (fbed11b), closes #9055
- Double java heap size for buildkite (#9073) (228369e), closes #9073
- exploredb tool to display bucket contents (#9116) (cca4a8c), closes #9116
- Fix a few bugs in the API (#9099) (9eb3ff6), closes #9099
- Fix Small Type Assertion Bug in Slasher (#9061) (a747d15), closes #9061
- fixes 9029 + a few related client-stats fixes/improvements (#9039) (19ff25f)
- Go imports (#9045) (7d4418e), closes #9045
- Handle comma-separated query parameters in API requests (#9102) (43623e1), closes #9102
- Implement Doppelganger Check (#9120) (5d65ace), closes #9120
- Make Eth APIs flag name implementation agnostic (#9112) (940ce0c), closes #9112
- Make the
shared/gateway
package unaware of consuming services (#9050) (4f3c17c), closes #9050 - Move API param handling to separate file (#9101) (dd0ae1b), closes #9101
- Move block interface next to generated pb (#9146) (1d3a998), closes #9146
- Move common gateway registration code to new package (#9092) (b114247), closes #9092
- Naive aggregation for
SyncCommitteeContribution
(#9114) (cd3a2e8), closes #9114 - No length check in AggregatePublicKeys (#9105) (349f832), closes #9105
- Prevent Exporting False Positive Slashing Event Due to Old Prysm DB Schema Bug (#9060) (4ec0d60), closes #9060
- Process future Blocks and Attestations (#8975) (e953804), closes #8975
- Protect Against Unsafe Coefficients (#9109) (f75548a), closes #9109
- Proto mirror script fix (#9020) (71fd747), closes #9020
- prysm scripts should not save 404 pages (#9072) (7288698), closes #9072
- Reduce Usage of Eth2 Terminology in Prysm (#9104) (a860648), closes #9104
- Refactor helpers for Altair (#9026) (dfd2cc7), closes #9026
- Remove cluster-pk-manager tool (#9165) (7c23d02), closes #9165
- Remove noisy / unneeded log.Error() calls (#9066) (2583dc1), closes #9066
- Remove old protos (#9107) (442f8d1), closes #9107
- Remove verbatim strings with flag names on startup (#9093) (43655e6), closes #9093
- Rename field ops service to att service (#9046) (3c0a945), closes #9046
- Reorder WORKSPACE go dependency registration (#9113) (0cfc16e), closes #9113
- Restructure RPC packages to be future compatible (#9136) (1edf1f4), closes #9136
- Retrieve validators through v1 API in e2e (#9117) (0347b4b), closes #9117
- Return an error on unrecognized arguments when running default commands in Prysm (#9129) (24d17a5), closes #9129
- Return pubkey with AttestationHistoryForPubKey AttestationRecord response (#9135) (2df024a), closes #9135
- Revert "Improve performance during CheckAttesterDoubleVotes" (#9085) (1e99ec3), closes #9085
- Revert "Invert
attest-timely
flag" (#9044) (6971245), closes #9044 - Run
text/event-stream
values returned from grpc-gateway through API Middleware (#9080) (ff99a2e), closes #9080 - Small API Middleware improvements (#9111) (71f1f19), closes #9111
- Tool for Exploring BoltDB in Human-Readable Formats (#9063) (0f2e6fb), closes #9063
- Update go-bitfield (#9162) (9dc3dd0), closes #9162
- Update Go-Ethereum (#9157) (a9ee3ee), closes #9157
- Update log test and
ChainInfoFetcher
interface (#9143) (00907fd), closes #9143 - Update web-ui to beta.4 (#9047) (9dc4c49), closes #9047
- Bazel: minimal test build transitions (#9122) (d6bd619), closes #9122
- Bazel: set alias targets to manual only (#9134) (ca7b312), closes #9134
- Testutil: Reset deposit cache internally (#9059) (a4be7c4), closes #9059
- RPC: Surface underlying error when failing to return a state. (#9024) (6981b16), closes #9024