(2021-02-08)
This release includes significant improvements and a much awaited feature of slashing protection import and exports, standardized with EIP-3076 and compliant with other eth2 clients. It is important to read these notes before upgrading. Updating to this release is recommended at your earliest convenience as previous release had various bugs that would often cause missed attestations, high resource use, and nodes to sometimes freeze. Additionally, important dependencies have been updated.
This PR also implements more API endpoints from the eth2 standard API, although we are not quite done yet.
Notable changes
- Slashing interchange support (EIP-3076) #8024
- Fix deadlock in runtime that would cause beacon node freeze #8321
- Implement multiple eth2 standard API endpoints #8316 #8345 #8380 #8288
- Make validator more stable when beacon node goes offline, attempting reconnection #8278
- Improve fork choice checks, and optimizations in attestation processing #8276 and #8309
- Update important dependencies
- Reduce lock time in attesting #8348
Experimental features:
- [Validator] Add
--attest-timely
flag to attest slightly earlier, when possible. This may result in a performance improvement. - [Beacon Node] Add
--enable-next-slot-state-cache
flag to enable trailing edge slot processing. This improved caching may result in a performance improvement. See: #8357
Full list of changes below.
1.2.0 (2021-02-04)
- [Feature] - Slashing Interchange Support (#8024) (92932ae), closes #8024 #8020 #8004 #8027 #8031 #8040 #7966 #8067 #7880 #8051 #8082 #8089 #8084 #8085 #8113 #7858 #8121 #8132 #8268 #8304
- Add Back Accounts Backup Validator RPC Functionality (#8367) (afc3b31), closes #8367
- Add Batch Method for Reading Validator Proposing Histories (#8378) (caac08d), closes #8378
- Add canonical flag to ListBlocks API response (#8287) (82426ab), closes #8287
- Add Custom Deadline for Slot Progression (#8388) (d4f241d), closes #8388
- Add Initial Support For Gossip Scoring Service (#8275) (20b836d), closes #8275
- Add missed feature flag usage (#8376) (2456e6f), closes #8376
- Add role based lock for validator (#8347) (0753636), closes #8347
- Add Spans for Validator DB Methods (#8390) (afa5b5e), closes #8390
- Add test TestStore_OnAttestation_Ok (#8293) (084e5bd), closes #8293
- Add verify slot target epoch function and apply all (#8273) (bc2c206), closes #8273
- Add wallet file flag to edit-config command (#8360) (e592cd7), closes #8360
- Ajust constructor names of nodes (#8362) (48ed506), closes #8362
- Allow dynamic key reloading when having inactive keys (imported & derived) (#8119) (8ffb95b), closes #8119
- Attestation aggregation: baseline benchmark (#8308) (6e643ac), closes #8308
- Attestation aggregation: optimizations and benchmarks (#7938) (c97ea76), closes #7938
- Better receiver names in beacon chain module (#8286) (f89fd67), closes #8286
- Better receiver names in validator and slasher modules (#8296) (4b14fa4), closes #8296
- Bind Discovery Using Neutral Network Version (#8359) (b74dd96), closes #8359
- Block validator buckets (#8395) (cf88afb), closes #8395
- Cancel node context after StopAll (#8289) (fc8dc21), closes #8289
- Change sszutil DeepEqual to ignore unexported (#8336) (8d986bd), closes #8336
- Deprecate enableSyncBacktracking flag (#8371) (372dc47), closes #8371
- Display URLs for tracking exited validators (#8361) (b5a82b9), closes #8361
- Fix Deadlock in Runtime (#8321) (7f5ffb7), closes #8321
- fix deposit index metrics (#8315) (50e5b1b), closes #8315
- Fix IPV6 binding for Beacon Node (#8326) (b2d6012), closes #8326
- Handle subscriber error (#8341) (91fe32a), closes #8341
- Implement GetDepositContract in the config API (#8316) (a7345c1), closes #8316
- Implement GetForkSchedule in the config API (#8345) (8d505e0), closes #8345
- Implement GetGenesis in the beacon API (#8380) (3fd8c4c), closes #8380
- Implement GetSpec in the config API (#8328) (e677b19), closes #8328
- Implement ListPeers in the node API (#8288) (1537378), closes #8288
- Introduce helper function for adding context metadata from gRPC headers (#8354) (d9c451d), closes #8354
- Make validator stable when beacon node goes offline (#8278) (4595789), closes #8278
- Max-cover: minor optimizations (#8311) (75fc3b0), closes #8311
- Max-cover: optimized implementation based on Bitlist64 (#8352) (09b1e06), closes #8352
- More blockchain pkg tests (#8343) (1cfae7e), closes #8343
- Next slot state caching (#8357) (3aaa98d), closes #8357
- Peer count node api (#8306) (9cc1438), closes #8306
- process grpc header flag for exit (#8334) (2f063d0), closes #8334
- Ran code inspect (#8387) (616081f), closes #8387
- Refactor
on_attestation
return signature (#8310) (2586be2), closes #8310 - Refactor
verifyAttestationIndices
method (#8309) (c5e9b1e), closes #8309 - Remove duplicated LMD FFG check for fork choice attestation (#8276) (578dabe), closes #8276
- Remove duplicated target root check for fork choice attestation (#8277) (befe8d8), closes #8277
- Remove go-ssz entirely from prysm (#8257) (7c59615), closes #8257
- Remove test assertion that reads a package-level variable (#8329) (d21365b), closes #8329
- Remove unnecessary state copy (#8303) (9ec4f72), closes #8303
- Remove unused channel from Powchain Service (#8368) (f20c912), closes #8368
- Remove unused feature flag config fields (#8363) (f5f1284), closes #8363
- Rename
NewService
toNew
(#8337) (d121b19), closes #8337 - Rename getter functions to be idiomatic (#8320) (d5ec248), closes #8320
- Rename non-generated files ending with '_mock' (#8317) (c827672), closes #8317
- Replace bytes.Equal with assert.DeepEqual in tests (#8318) (7842fd9), closes #8318
- Return error on
AttestingIndices
bitfield length check (#8285) (5d84187), closes #8285 - Revert "Change sszutil DeepEqual to ignore unexported fields" (#8391) (48ae497), closes #8391 #8336
- Revert "Use remote cache in CI" (#8281) (b33a8eb), closes #8281
- Revert DEPENDENCIES.md change from #8257 (#8389) (c5551eb), closes #8257 #8389
- Rm forkchoice attestation verification (#8301) (ffcadcf), closes #8301
- Safe Math for ETH1 Batch Headers Request (#8253) (241322a), closes #8253
- Simplify expressions (#8370) (d53fdcf), closes #8370
- Stamp binaries by default (#8292) (655a7e9), closes #8292
- Test for
processAttestations
(#8312) (229abed), closes #8312 - Update bitfield dependency (#8295) (ed2c0a3), closes #8295
- Update bitfield dependency (#8299) (27847ee), closes #8299
- Update bitfield dependency (#8305) (d697b0b), closes #8305
- Update bitfield dependency (#8338) (db79481), closes #8338
- Update bitfield dependency (#8356) (d254f24), closes #8356
- Update bitfield dependency (#8364) (902c30e), closes #8364
- Update bitfield dependency (#8385) (842bafb), closes #8385
- Update Ethdo Keystore Deps (#8382) (953cc97), closes #8382
- Update fastssz (#8291) (ab9d596), closes #8291
- Update Herumi BLS Library (#8377) (c6e9620), closes #8377
- Update Prombolt Collector (#8339) (9f62405), closes #8339
- Update README.md (#8366) (609418e), closes #8366
- Update seen att slashing cache to use map (#8332) (c0fda58), closes #8332
- Update the Toolchain Registration (#8322) (1c43ea9), closes #8322
- update to v1.15.7 (#8307) (cc5a847), closes #8307
- Use remote cache in CI (#8280) (8b6abcb), closes #8280
- Use strings builder for attester lock key (#8349) (2bf03d5), closes #8349
- Validator testing library should be marked as testonly (#8392) (e52a821), closes #8392
- Wait for one third before grabbing the lock (#8348) (b8037b0), closes #8348
- GetDuties: Refactor assignment status to deduplicate status computation (#8313) (33e2663), closes #8313
- verifyDepositDataWithDomain: Use helpers.ComputeSigningRoot (#8302) (d6cccc1), closes #8302