We are excited about this new v0.14.0 release of charon. This release will be our first under a new Business Source License, which will be used to guide the gradual roll out of DVT onto mainnet over the coming year. This release also includes the first step of reducing the consensus protocol network bandwidth requirements, along with general bug fixes and performance improvements. Most importantly, this release adds provisional attestation support for Nimbus, Lodestar and Prysm validator clients, meaning every Ethereum validator client can attest as part of a distributed validator cluster. 🎉 Finishing the remainder of the duties is a work in progress, and you can view the latest client support at https://dvt.obol.tech/
⚠️⚠️⚠️ Breaking Changes.
- #1552 removed support for v0.12.0 legacy consensus wire protocol. v0.14.0 is therefore only compatible with v0.13.0. Only upgrade to v0.14.0 if all other nodes in the cluster are on v0.13.0 or newer.
--withdrawal-address
and--fee-recipient-address
have been renamed to--withdrawal-addresses
and--fee-recipient-addresses
, to allow you to specify an array of addresses if you want to have different addresses per validator in the cluster. As these flags are only used once-off to prepare a cluster, the impact of the change should be negligible.
The following flags have been removed and is no longer supported from this release:
p2p-bootnodes
: Renamed top2p-relays
p2p-bootnode-relay
: Always enabled.p2p-bootnodes-from-lockfile
: Not supported anymore.p2p-udp-address
: Discv5 not supported anymore.
The following port is no longer in use by DiscV5, and can be closed if it was opened/port forwarded previously.
- UDP/3630
Some notable features and fixes:
- #1866 fixed a data race condition in scheduler
- #1827 fixed a memory leak
- #1626 replaced the deprecated kryptology BLS crypto library in charon with Herumi BLS.
- #1503 adds support to import DKG generated keys to a keymanger-api such as Web3Signer.
- #1552 upgrade the consensus wire protocol to support reduced bandwith in the next release.
All operators are encouraged to upgrade to this release as soon as possible to ensure smooth upgrade to v0.15.0 that will greatly reduce the consensus network bandwidth requirements thereby removing support for v0.13.0.
Full Changelog: 2cddcf0...v0.14.0
Feature
- Set a constant gauge for upstream
/eth/v1/node/version
#1773 (#1825) - Make it easier to recombine keys #1311 (#1799)
- Relay to serve multiaddrs instead of ENR #1632 (#1646)
- Warn if a relay without https is specified #1637 (#1704)
- Implement
NodeVersion
for charon #1747 (#1765) - Charon cannot start if any beacon node is down #1312 (#1760)
- Use withdrawal-addresses from cluster-definition v1.5.0 #1650 (#1687)
- Support Keymanager API #1502 (#1663,#1657)
- Reduce QBFT throughput #1552 (#1838)
- Incorrect failed duty reason when deadline reached - tracker v2 #1478 (#1853,#1830,#1706,#1666)
- Create a
--publish
flag on thedkg
andcreate cluster
commands that pushes the produced lockfile to the obol api #1492 (#1781) - Add daily validator averages to promrated reported statistics #1656 (#1740)
herumi_bls
feature flag #1743 (#1856,#1745)- Prioritise block proposal strategy #1652 (#1762,#1751,#1731)
- Port geth eip-712 package #1698 (#1710,#1707)
- Instrument beacon node peer count #1603 (#1681,#1675)
- Add
--keymanager-address
as a flag tocharon dkg
#1504 (#1671) - Add vouch to compose #1403 (#1814)
- Include deposit data in the lockfile #1775 (#1815,#1813)
- Use fee-recipient addresses from cluster-definition v1.5.0 #1651 (#1679)
- Add multiple withdrawal addresses to cluster-definition #1645 (#1674)
- Support multiple addresses via CLI #1756 (#1832)
Bug
- Issue with p2p connection type metric #1790 (#1798,#1792,#1791)
- Promrated needs authentication token and is failing silently #1738 (#1746,#1739)
- Cluster definition hash incorrect for empty addresses or signatures #1689 (#1695)
Refactor
- Replace geth crypto package #1626 (#1699,#1694,#1685,#1682)
- Remove discv5 completely #1648 (#1653)
- Refactor
tbls
usage totbls/v2
package #1744 (#1789,#1784,#1774,#1768,#1766,#1754) - Add
--keymanager-address
as a flag tocreate cluster
#1503 (#1680,#1662) - Refactor VC readyz status #1612 (#1761)
- Design a BLS12-381 library abstraction #1658 (#1692)