Skip to content

Releases: ObolNetwork/charon

v0.10.1 - 2022-09-30

03 Oct 14:59
8280846
Compare
Choose a tag to compare

This is a non-urgent release primarily aimed at improving Obol's central monitoring by adding cluster labels to all prometheus metrics.

Operators with a configured monitoring token are encouraged to upgrade.

Note that since we follow trunk based development, it also includes all other changes to the main branch since the previous release.

Full Changelog: v0.10.0..v0.10.1

Feature

  • Add support for DutyPrepareAggregator in parsigex #1065 (#1087)
  • Add v2 attestation aggregation interface #1061 (#1073)
  • Add support for attestation aggregation endpoints to validatorapi #1094 (#1116,#1121,#1120)
  • Add support for DutyAggregator to fetcher #1088 (#1118)
  • Add CalculateCommitteeSubscriptionResponse function to eth2exp #1091 (#1098)
  • Verify charon-enr-private-key matches lock file before p2p setup #937 (#1181,#1157)
  • Add support for DutyPrepareAggregator to bcast #1068 (#1085)
  • Add support for DutyAggregator to parsigex #1095 (#1122)
  • Add support for v1.BeaconCommitteeSubscriptionsSubmitter to bcast #1093 (#1112)
  • Refactor cluster definition hash spec #1082 (#1101)
  • Wire DutyPrepareAggregator #1069 (#1150,#1144)
  • Add support for DutyAggregator to bcast #1096 (#1123)
  • Update tracker failure reasons for DutyPrepareAggregator and DutyAggregator #1154 (#1164)
  • Add support for DutyAggregator to DutyDB #1115 (#1139)
  • Add core.SignedData implementation for sync committee types #1177 (#1202)
  • Add eth2-client interfaces for sync committee duties #1199 (#1200)
  • Add support for DutyAggregator to Scheduler #1075 (#1113,#1114)
  • Add new duty types for sync committee duties #1174 (#1198)
  • Fetcher to query DutyDB for attestation data for DutyAggregator #1146 (#1148)
  • charon dkg can take a remote URI for a DKG cluster-definition #1045 (#1070)
  • Add DutyPrepareAggregator to DutyDB #1064 (#1080,#1076)
  • Refactor participation metrics to counters #1109 (#1175)
  • Add support for DutyPrepareAggregator to validatorapi #1067 (#1110,#1079)

Bug

  • Invalid lock hash for legacy config with checksummed addresses #1153 (#1156)
  • Add "cluster_id" label to charon metrics #1142 (#1165,#1160)
  • Charon create dkg overwrites the cluster-definition file #1062 (#1111)
  • Fix EIP712 signatures #1149 (#1147)

Refactor

  • Drop data-dir in favour of explicit paths #994 (#1083)
  • Bypass definition hash verification with --no-verify flag #1084 (#1099)

Misc

  • Fix errorlint linter issues #65 (#1063)
  • Tracker often detects failed duties on startup #983 (#1158)
  • add metric for validator balance #981 (#1051)
  • Create CodeQL analysis pipeline #1195 (#1196)
  • Add no-issue PRs to project board #987 (#1038)

v0.10.0 - 2022-08-25

25 Aug 12:37
dec7d3e
Compare
Choose a tag to compare

Obol Logo

We are excited to release v0.10.0 of Charon, it is jam-packed with lots of features and improvements! This release is our largest to date, and it couldn't have been completed without the help of our dedicated community and the Athena testnet participants. Over the last month over 100 distributed validator clusters have been created between community members around the world. This release incorporates all of the bug fixes and resilience improvements highlighted by our dedicated testers, and it should be much more fault-tolerant and self healing than our v0.9 release.

⚠️⚠️⚠️
Note this release introduces breaking changes to block proposal and the default bootnode flag. All nodes in an existing cluster should therefore upgrade at roughly the same time.

Partially upgraded clusters without a quorum of nodes on either v0.9.0 or v0.10.0 will fail to attest. E.g., if half the cluster is on v.0.9.0 and the other half is on v0.10.0 then there isn't a quorum on either version and they will not be able to connect via the same default bootnode or propose blocks. Once a threshold of operators have upgraded your validator should come back online. In future, upgrades aim to be completely asynchronous between cluster operators.

Some notable features:

  • #809 and #849 adds support for the builder API's blinded beacon blocks. This makes charon MEV-boost compatible, though work is still ongoing to support blinded beacon blocks with every validator client.
  • #891 and #848 introduces a new version v1.2.0 of the cluster definition and lock files refactoring all base64 fields to hex and removing the operator nonce field. All previous definition and lock versions are however still compatible.
  • #768 and #821 adds tracking of duties adding metrics and improved logging of failed duties and peer participation.
  • #952 removes the need to restart charon nodes if a bootnode ENR changes when resolved via HTTP. Adding support for stateless bootnodes.
  • #960 improves support for multiple beacon nodes by calling them parallel instead of sequentially.
  • #1029 updates the default bootnode flag to http://bootnode.lb.gcp.obol.tech:3640/enr which is Obol's new horizontally scaleable bootnode solution.

Full Changelog: v0.9.0..v0.10.0

Feature

Bug

Refactor

  • p2p: invert peer discovery integration #989 (#991)
  • Refactor randao core signed data implementation #919 (#1019)
  • Improve failed duty message #866 (#972)
  • Add --num-validators, --name and --fee-recipient flags to create cluster #879 (#878)
  • Update prater to goerli in deposit data and CLI #935 (#943)
  • Set threshold automatically in charon create dkg #894 (#917)
  • Improve libp2p connection logs #986 (#1001)
  • charon create enr overwrites an existing one on disk #893 (#913)
  • Invert libp2p peer discovery #985 (#989)

Test

  • Flapy integration test #910 (#932)
  • Flapy test in monitoringapi_internal_test #886 (#934)
  • Add timestamp to cluster definition file #710 (#833)

Misc

  • Update default bootnode to HA one #895 (#1029)

v0.9.0 - 2022-07-21

21 Jul 15:49
7756145
Compare
Choose a tag to compare

Obol Logo

This is a non-urgent release introducing general fixes and improvements.

  • #710 adds a Timestamp field to the cluster definition file making it easier to identify for humans. The new definition version is v1.1.0, the previous v1.0.0 definition version is however still supported.
  • #552 adds support for multiple beacon nodes leveraging go-eth2-client's multiclient feature. The --beacon-node-endpoint flag is deprecated in favour of --beacon-node-endpoints that support a comma separated list of beacon nodes.
  • #764 introduces an experimental alpha feature that attempts to sync slot scheduling with the beacon node clock using event stream head events. It can be enabled with --feature-set=alpha or feature-set-enable=beacon_clock_sync flags. Note even if not enabled, the clock offset can be monitored via the prometheus metric core_scheduler_beacon_node_offset_seconds.
  • #781 pushes docker images to Dockerhub, so docker pull obolnetwork/charon:v0.9.0 also works now. Note previous versions have not been backfilled though. Dockerhub provides slightly better UX than Github Container Registry since no login is required.

Full Changelog: v0.8.1..v0.9.0

Feature

  • Multiple Beacon Nodes #552 (#830)
  • Add timestamp to cluster definition file #710 (#831,#818)
  • Load balance resolved bootnodes #786 (#816)
  • scheduler: sync with beacon node clock to mitigate slot timing issues #764 (#779)

Bug

Refactor

Misc

  • Publish docker image to dockerhub #781 (#812,#782)
  • ci: update to checkout v3 #544 (#815)
  • Add warning to charon create enr command #785 (#801)

v0.8.1

09 Jul 12:32
798cba9
Compare
Choose a tag to compare

v0.8.1 - 2022-07-09

This release introduces general fixes and improvements including progress on great new features.

Full Changelog: v0.8.0..v0.8.1

v0.8.0 - 2022-07-08

07 Jul 18:37
6a1fe3b
Compare
Choose a tag to compare

Obol Logo

This release introduces general fixes and improvements including progress on great new features.

Full Changelog: v0.7.0..v0.8.0

Feature

Bug

  • DKG sync: Move connected logs to server #762 (#771)
  • DKG Sync Protocol: Fail server side if client sends wrong definition hash #761 (#772)

Refactor

  • create dkg doensn't verify ENRs #752 (#757)
  • dkg: integrate sync service to dkg #751 (#758)
  • Definition hash log is in hex but in the file it is in b64 #753 (#756)

v0.7.0 - 2022-06-22

22 Jun 15:59
2bc98cb
Compare
Choose a tag to compare

This release introduces general fixes, UX improvements, refactor work, and the addition of some new features such as QBFT consensus being enabled by default.

Breaking Changes

This release updates the cluster-lock.json structure ahead of the introduction of the DV Launchpad based authentication of Node Operators. Lock files generated with earlier versions of charon will not work with this latest version. Future versions of the client will maintain backwards compatibility as far back as this new file format. If you are running a distributed validator with files generated with an earlier alpha version of charon, reach out to the team for specific upgrade instructions on how to regenerate your cluster-lock file with this new format.

Full Changelog: v0.6.0..v0.7.0

Feature

Bug

  • clashing read only cluster definition and lock files. #584 (#676)
  • Proxy event stream from beacon node #688 (#696)

Refactor

Test

  • compose: migrate alerts from pushed-grafana to pulled-prometheus #631 (#722,#720,#719)

Misc

  • core: add log when duty missing for some validator indices #664 (#685)
  • Auto-generate dynamic changelog in github actions #320 (#679,#678,#677)

v0.6.0 - 2022-06-07

07 Jun 11:41
6c11659
Compare
Choose a tag to compare

This release introduces general fixes and improvements including progress on validator exits and DKG hardening.

Full Changelog: v0.5.0..v0.6.0

Feature

  • Create a charon create exit command, to prepare exit data for an activated DV in a cluster #553 (#669,#667,#648)
  • Human friendly node/peer names #585 (#629,#624)

Bug

  • dkg: command hangs if one peer drops out #586 (#671,#662)
  • bootnode: circuit reservation resource issues #580 (#640)
  • Implement compose to debug local docker-compose clusters #568 (#621)

Refactor

  • Decrease complexity of scheduler resolveDuties #347 (#663)
  • dkg: improve logging #587 (#633)
  • p2p: remove --p2p-peerdb flag #644 (#657)
  • p2p: add explanation of enr types in --p2p-bootnodes flag #643 (#658)
  • p2p: rename --p2p-bootmanifest flag #642 (#660)
  • keystore: path is a mandatory field in keystore files #567 (#622)

Test

Misc

  • add peer names to context and log it #645 (#652)

v0.5.0 - 2022-05-26

26 May 11:37
8fa8a02
Compare
Choose a tag to compare

Obol Logo

This release introduces general fixes and improvements including progress on great new features.

Full Changelog: v0.4.0..v0.5.0

Feature

Bug

  • cmd: ensure valid withdrawal address during create dkg command #582 (#599)
  • cmd: ensure valid network during create dkg #583 (#598)

Refactor

  • aligned cluster definition and lock filenames to dashes #588 (#594)
  • app: refactor charon run to use cluster lock instead of manifest #527 (#562)
  • QBFT: Do not buffer unjust messages #525 (#535)
  • cmd: remove deprecated command charon create-cluster #550 (#551)
  • QBFT: Mitigate OOM attack by spamming future messages #524 (#539)
  • QBFT: Only trigger each upon rule once per round #523 (#536)
  • refactor: replace verifiers with pubshares #596 (#604)
  • cmd: remove config run scripts from create cluster #546 (#563)
  • dkg: generate deposit_data #481 (#521)

v0.4.0 - 2022-05-13

13 May 14:38
27e7832
Compare
Choose a tag to compare

Obol Logo

This release introduces general fixes and improvements including Frost DKG and QBFT consensus core algorithms.

Full Changelog: v0.3.0..v0.4.0

Feature

Bug

  • Error: mkdir ./charon: not a directory #427 (#467)
  • charon docker compose not working with latest charon #449 (#448)

Refactor

  • Help users figure out their ENR #490 (#493)

Test

Misc

  • Feature flag design proposal #381 (#447)
  • Add more opencontainer metadata #462 (#480)

v0.3.0 - 2022-04-12

12 Apr 08:28
39c2aa8
Compare
Choose a tag to compare

Obol Logo

This release introduces general fixes and improvements including progress on great new devops features like external p2p addresses and charon bootnode and charon create-cluster commands as well as progress on DutyProposer .

Full Changelog: v0.2.0..v0.3.0

Feature

  • Use protobufs for parsigex transport #321 (#372)
  • Add explicit gen-p2p command #315 (#316)
  • Support DutyProposer in validatorapi (query phase) #224 (#382)
  • Deploy and Integrate bulldozer bot #325 (#361,#357,#356)
  • Add bootnode command #317 (#350,#318)
  • Support DutyProposer in validatorapi (submit phase) #225 (#409)
  • Add prometheus metrics for beacon node requests #362 (#377,#359)
  • Log git commit hash on startup #367 (#378,#368)
  • Add generic error handling and retry for temporary network failures #354 (#346)
  • Support DutyProposer in DutyDB #223 (#326)
  • Support resolving bootnode ENR by http query #329 (#330)
  • Add support for external/advertised p2p addresses #332 (#333)

Bug

  • Docker image not supporting multiple platforms #339 (#375,#348)

Refactor

  • Change license to GPL V3 #190 (#391,#360)
  • Align cli flags and defaults #369 (#370)
  • Switch from scrypt to pbkdf2 ciphers for generated keystores #343 (#344)
  • Add .golden extension to golden test files #353 (#358)

Docs