These 73 commits are when the Protocol Buffers files have changed:
| Commit: | 0861d82 | |
|---|---|---|
| Author: | kalo | |
| Committer: | GitHub | |
*: v1.11.0 rc2 (#4630) * docs: refresh stale architecture and structure docs (#4580) * docs: refresh stale architecture and structure docs Update docs/architecture.md and docs/structure.md to match the current implementation: fix component interfaces to match core/interfaces.go, remove the nonexistent Signer/remote-signer component, correct the BFT fault tolerance formula, document the consensus controller and priority protocol, replace outdated DutyDB/ParSigDB data models, refresh the validator API endpoint list, and add a duty lifecycle table and supporting components section. Update the project structure doc with current packages and CLI commands. category: docs ticket: none Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: align CLAUDE.md architecture summary with refreshed docs Mention the pluggable consensus controller, correct the Priority and peer discovery descriptions, and add the InclusionChecker. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Small rephrases * Add per-duty workflow * Simplify Charon cluster diagram; migrate core workflow to mermaid --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: kalo <24719519+KaloyanTanev@users.noreply.github.com> * Fix exchanger deadlock during partial signature exchange (#4590) * *: opt in for incomplete validator_keys (#4591) * Opt in for incomplete validator_keys * Strict unique validator keys * Other small improvements * build(deps): Bump the go-dependencies group with 3 updates (#4593) Bumps the go-dependencies group with 3 updates: [golang.org/x/sync](https://github.com/golang/sync), [golang.org/x/term](https://github.com/golang/term) and [golang.org/x/text](https://github.com/golang/text). Updates `golang.org/x/sync` from 0.21.0 to 0.22.0 - [Commits](https://github.com/golang/sync/compare/v0.21.0...v0.22.0) Updates `golang.org/x/term` from 0.44.0 to 0.45.0 - [Commits](https://github.com/golang/term/compare/v0.44.0...v0.45.0) Updates `golang.org/x/text` from 0.39.0 to 0.40.0 - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.39.0...v0.40.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-version: 0.22.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: golang.org/x/term dependency-version: 0.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: golang.org/x/text dependency-version: 0.40.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): Bump the docker-dependencies group across 2 directories with 1 update (#4594) Bumps the docker-dependencies group with 1 update in the / directory: golang. Bumps the docker-dependencies group with 1 update in the /testutil/promrated directory: golang. Updates `golang` from 1.26.4-trixie to 1.26.5-trixie Updates `golang` from 1.26.4-trixie to 1.26.5-trixie Updates `golang` from 1.26.4-alpine to 1.26.5-alpine Updates `golang` from 1.26.4-alpine to 1.26.5-alpine --- updated-dependencies: - dependency-name: golang dependency-version: 1.26.5-trixie dependency-type: direct:production update-type: version-update:semver-patch dependency-group: docker-dependencies - dependency-name: golang dependency-version: 1.26.5-trixie dependency-type: direct:production update-type: version-update:semver-patch dependency-group: docker-dependencies - dependency-name: golang dependency-version: 1.26.5-alpine dependency-type: direct:production update-type: version-update:semver-patch dependency-group: docker-dependencies - dependency-name: golang dependency-version: 1.26.5-alpine dependency-type: direct:production update-type: version-update:semver-patch dependency-group: docker-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): Bump the go-dependencies group with 3 updates (#4595) Bumps the go-dependencies group with 3 updates: [golang.org/x/crypto](https://github.com/golang/crypto), [golang.org/x/net](https://github.com/golang/net) and [golang.org/x/tools](https://github.com/golang/tools). Updates `golang.org/x/crypto` from 0.53.0 to 0.54.0 - [Commits](https://github.com/golang/crypto/compare/v0.53.0...v0.54.0) Updates `golang.org/x/net` from 0.56.0 to 0.57.0 - [Commits](https://github.com/golang/net/compare/v0.56.0...v0.57.0) Updates `golang.org/x/tools` from 0.47.0 to 0.48.0 - [Release notes](https://github.com/golang/tools/releases) - [Commits](https://github.com/golang/tools/compare/v0.47.0...v0.48.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: golang.org/x/net dependency-version: 0.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: golang.org/x/tools dependency-version: 0.48.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix potential code injection (#4598) * *: fetch latest versions release notes (#4597) * Fetch latest versions on minor releases for compatibility matrix * Fix auth style * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: kalo <24719519+KaloyanTanev@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: kalo <24719519+KaloyanTanev@users.noreply.github.com> --------- Signed-off-by: kalo <24719519+KaloyanTanev@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * p2p: fix flaky TestWithReceiveTimeout on QUIC (#4606) The zero receive timeout makes the server close the stream almost immediately, racing the client's request write. On TCP the close is a graceful FIN, so the write always lands and the failure surfaces as an EOF on the response read. QUIC instead resets the stream, which can abort the write already in flight, failing with "write request: stream reset (remote)" before the read is ever reached. Accept either error on the QUIC iteration. The TCP iteration stays strict. category: test ticket: none * Increase sync message deadline to a slot duration (#4610) * build(deps): Bump google.golang.org/grpc from 1.81.1 to 1.82.1 (#4608) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.81.1 to 1.82.1. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.81.1...v1.82.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-version: 1.82.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): Bump github.com/google/cel-go from 0.28.1 to 0.29.0 (#4609) Bumps [github.com/google/cel-go](https://github.com/google/cel-go) from 0.28.1 to 0.29.0. - [Release notes](https://github.com/google/cel-go/releases) - [Commits](https://github.com/google/cel-go/compare/v0.28.1...v0.29.0) --- updated-dependencies: - dependency-name: github.com/google/cel-go dependency-version: 0.29.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): Bump the go-dependencies group across 1 directory with 5 updates (#4607) Bumps the go-dependencies group with 4 updates in the / directory: [github.com/attestantio/go-builder-client](https://github.com/attestantio/go-builder-client), [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum), [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) and [github.com/bufbuild/buf](https://github.com/bufbuild/buf). Updates `github.com/attestantio/go-builder-client` from 0.7.2 to 0.8.0 - [Changelog](https://github.com/attestantio/go-builder-client/blob/master/CHANGELOG.md) - [Commits](https://github.com/attestantio/go-builder-client/compare/v0.7.2...v0.8.0) Updates `github.com/ethereum/go-ethereum` from 1.17.4 to 1.17.5 - [Release notes](https://github.com/ethereum/go-ethereum/releases) - [Commits](https://github.com/ethereum/go-ethereum/compare/v1.17.4...v1.17.5) Updates `github.com/golang/snappy` from 1.0.0 to 1.0.1-0.20260716114414-9ae09f520e93 - [Release notes](https://github.com/golang/snappy/releases) - [Commits](https://github.com/golang/snappy/commits) Updates `github.com/prometheus/client_golang` from 1.23.2 to 1.24.1 - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/v1.24.1/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.23.2...v1.24.1) Updates `github.com/bufbuild/buf` from 1.71.0 to 1.72.0 - [Release notes](https://github.com/bufbuild/buf/releases) - [Changelog](https://github.com/bufbuild/buf/blob/main/CHANGELOG.md) - [Commits](https://github.com/bufbuild/buf/compare/v1.71.0...v1.72.0) --- updated-dependencies: - dependency-name: github.com/attestantio/go-builder-client dependency-version: 0.8.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/bufbuild/buf dependency-version: 1.72.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/ethereum/go-ethereum dependency-version: 1.17.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-dependencies - dependency-name: github.com/golang/snappy dependency-version: 1.0.1-0.20260716114414-9ae09f520e93 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-dependencies - dependency-name: github.com/prometheus/client_golang dependency-version: 1.24.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * *: harden partial signature exchange (#4599) Bind partial signatures received during the DKG lock-hash exchange to their authenticated sender: a peer may only contribute partial signatures under its own assigned share index. parsigex.handle now passes the authenticated sender to the verify function; the core workflow verifier ignores it, since those partial signatures are already verified cryptographically against the pubshare for the claimed share index. The DKG exchanger keys the binding on each peer's assigned share index via a peer map, so it stays correct when share indices are not contiguous with peer positions, such as after operators are removed. newExchanger validates its peer index and peer map up front and returns an error on a misconfigured map instead of silently timing out. category: bug ticket: none * core/priority: add leading slash to protocol ID (#4605) Normalise the priority protocol ID to /charon/priority/2.0.0, matching every other charon libp2p protocol. The wire format is unchanged, so the version stays at 2.0.0 and the old spelling is kept as a legacy alias so that patched and unpatched nodes interoperate. Nodes now offer both IDs when dialling, preferring the slash-prefixed one, and serve both via separate exact-match handler registrations. The two IDs share no common prefix, so registering them in a single RegisterHandler call would collapse protocolPrefix to the bare wildcard "*" and advertise that to peers via libp2p identify instead of the real protocol IDs. category: refactor ticket: none * core/priority: use stable sort for scored priorities (#4611) Replace slices.SortFunc with slices.SortStableFunc when ordering scored priorities so that equal-score priorities keep first-seen order, with messages processed in ascending peer ID order. Go's sort is unstable for slices longer than ~12 elements, so the equal-score order depended on the sort implementation and could diverge across versions and other implementations. Add a regression test with 24 priorities where tied pairs arrive out of score order. category: bug ticket: none * *: sync contributions per subcommittee (#4602) * Sync contributions per subcommittee * Gate behind info sync * Check for 0 value division * Add more tests * Optimise sync contribution fetching (#4615) * dkg: fail fast on peer restart or death during ceremonies (#4616) * harden dkg * dkg/sync: harden step tracking against invalid peers Only track sync steps of peers that passed request validation, so an invalid peer cannot influence step state or overwrite the recorded fatal error. Reword the restart error since not every step inconsistency is strictly a peer restart. * build(deps): Bump github.com/pion/stun/v3 from 3.1.2 to 3.1.5 (#4614) Bumps [github.com/pion/stun/v3](https://github.com/pion/stun) from 3.1.2 to 3.1.5. - [Release notes](https://github.com/pion/stun/releases) - [Commits](https://github.com/pion/stun/compare/v3.1.2...v3.1.5) --- updated-dependencies: - dependency-name: github.com/pion/stun/v3 dependency-version: 3.1.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): Bump github.com/quic-go/webtransport-go (#4612) Bumps [github.com/quic-go/webtransport-go](https://github.com/quic-go/webtransport-go) from 0.10.0 to 0.11.1. - [Release notes](https://github.com/quic-go/webtransport-go/releases) - [Commits](https://github.com/quic-go/webtransport-go/compare/v0.10.0...v0.11.1) --- updated-dependencies: - dependency-name: github.com/quic-go/webtransport-go dependency-version: 0.11.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Close streams on all SendReceive and Send paths (#4626) * Add 1MB limit to the peer info messages (#4625) * Fix proposer short second round (#4623) * core/qbft: prevent double PREPARE on equivocating leader (#4624) * Prevent double-PREPARE on equivocating leader PRE-PREPARE * Improve tests * Remove legacy unversioned attestations (#4621) * Reject lock with validator count mismatch with definition (#4620) * core/qbft: reject zero-value PRE-PREPARE from leader (#4619) * Reject zero-value PRE-PREPARE from leader * Avoid closing channel while QBFT goroutine is running * Fix flaky peer death DKG test (#4627) * core/consensus: fix qbft optimistic first qcommit (#4622) * Fix optimistic QBFT using qcommit[0] rather than verifying it includes the actual correct value * Use qCommitValue, rather than qcommit[0] in commit/decide * Thread decided round through Decide callback * Fix potential test flakiness * Improve qbft unit testing * Rotate PAT (#4596) * *: fix libp2p logger routing (#4629) * Fix libp2p logger routing * Avoid per-record lock in libp2p slog handler * core/qbft: preserve local value on comparison failure (#4628) * Preserve the already fetched value for comparing between the rounds * Fix clock in tests * ci: fix sonarcloud supply-chain vulnerabilities (#4631) - Add --only-binary :all: to pip install in kurtosis smoke test to prevent execution of setup.py scripts from source distributions. - Use go install tool for govulncheck so versions resolve from the go.mod/go.sum lockfile instead of fetching unpinned transitive deps. * build(deps): Bump the go-dependencies group across 1 directory with 7 updates (#4633) Bumps the go-dependencies group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [github.com/showwin/speedtest-go](https://github.com/showwin/speedtest-go) | `1.7.10` | `1.7.11` | | [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` | | [go.opentelemetry.io/otel/exporters/stdout/stdouttrace](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` | Updates `github.com/showwin/speedtest-go` from 1.7.10 to 1.7.11 - [Release notes](https://github.com/showwin/speedtest-go/releases) - [Changelog](https://github.com/showwin/speedtest-go/blob/master/docs/release.md) - [Commits](https://github.com/showwin/speedtest-go/compare/v1.7.10...v1.7.11) Updates `go.opentelemetry.io/otel` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0) Updates `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0) Updates `go.opentelemetry.io/otel/sdk` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0) Updates `go.opentelemetry.io/otel/trace` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0) --- updated-dependencies: - dependency-name: github.com/showwin/speedtest-go dependency-version: 1.7.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/stdout/stdouttrace dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * app/peerinfo: add dv_type field to peerinfo protocol (#4632) * app/peerinfo: add dv_type field to peerinfo protocol Add a dv_type field to the PeerInfo protobuf message so DV client implementations can identify themselves. Charon sets this to "charon". Non-charon peers (e.g. Pluto) skip the SemVer compatibility check since the supported version list only applies to Charon releases. Empty dv_type (from older Charon nodes) defaults to "charon" for backwards compatibility. Also adds an app_peerinfo_dv_type Prometheus metric with {peer, dv_type} labels for dashboard visibility. category: feature ticket: none * docs: regenerate metrics reference for dv_type gauge * app/peerinfo: rename dv_type to dv_client --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: kalo <24719519+KaloyanTanev@users.noreply.github.com> Co-authored-by: Andrei Smirnov <andrei@obol.tech> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
The documentation is generated from this commit.
| Commit: | aea5631 | |
|---|---|---|
| Author: | kalo | |
| Committer: | GitHub | |
app/peerinfo: add dv_type field to peerinfo protocol (#4632) * app/peerinfo: add dv_type field to peerinfo protocol Add a dv_type field to the PeerInfo protobuf message so DV client implementations can identify themselves. Charon sets this to "charon". Non-charon peers (e.g. Pluto) skip the SemVer compatibility check since the supported version list only applies to Charon releases. Empty dv_type (from older Charon nodes) defaults to "charon" for backwards compatibility. Also adds an app_peerinfo_dv_type Prometheus metric with {peer, dv_type} labels for dashboard visibility. category: feature ticket: none * docs: regenerate metrics reference for dv_type gauge * app/peerinfo: rename dv_type to dv_client
The documentation is generated from this commit.
| Commit: | e0cd5fc | |
|---|---|---|
| Author: | kalo | |
app/peerinfo: add dv_type field to peerinfo protocol Add a dv_type field to the PeerInfo protobuf message so DV client implementations can identify themselves. Charon sets this to "charon". Non-charon peers (e.g. Pluto) skip the SemVer compatibility check since the supported version list only applies to Charon releases. Empty dv_type (from older Charon nodes) defaults to "charon" for backwards compatibility. Also adds an app_peerinfo_dv_type Prometheus metric with {peer, dv_type} labels for dashboard visibility. category: feature ticket: none
| Commit: | 022f83c | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | GitHub | |
*: removed manifest pb (#4130) This PR removes the entire `cluster/manifest` package and its associated protobuf definitions (`cluster/manifestpb/v1`), eliminating over 3,200 lines of code. **Key changes:** - Deleted `cluster/manifest/` package including cluster management, mutations (add validators, node approval, legacy lock), and all helper functions - P2P client sets new HTTP header `Cluster-Uuid` that will be used in future for relays load balancing instead of Lock Hash. This is because edit commands modify lock hash. - Deprecated `--manifest-file string` CLI flag. category: refactor ticket: none
| Commit: | d33572f | |
|---|---|---|
| Author: | Diogo Santos | |
| Committer: | GitHub | |
dkg: add `nickname` flag (#4105) Add `--nickname` flag to DKG. Peers will send their nickname via `sync` protocol which will be logged upon connecting for the first time: ``` 17:38:03.733 INFO dkg Connected to peer 1 of 3 {"peer": "affectionate-kitchen", "nickname": "Alice"} 17:38:03.742 INFO dkg Connected to peer 2 of 3 {"peer": "amiable-mirror", "nickname": "Bob"} ``` category: feature ticket: #4059
| Commit: | 677c59a | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | GitHub | |
*: pedersen dkg (#3977) * Added `pedersen` DKG algorithm using kyber library. * Added `alpha edit recreate-private-keys` command. * Added `alpha edit add-operators` command. * Added `alpha edit remove-operators` command. * Moved `add-validators` to the `alpha edit` section. * Ongoing code refactoring. category: feature ticket: #3672
| Commit: | cf27d6c | |
|---|---|---|
| Author: | Andrei Smirnov | |
edit commands
| Commit: | 8d082b4 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
Reshare
| Commit: | 0162246 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
*: pedersen dkg
| Commit: | 20e2e5d | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
Reshare
| Commit: | 89f1531 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
*: pedersen dkg
| Commit: | 27acaee | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
Reshare
| Commit: | fe90a37 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
*: pedersen dkg
| Commit: | 82f5dff | |
|---|---|---|
| Author: | Andrei Smirnov | |
Reshare
| Commit: | fda48a8 | |
|---|---|---|
| Author: | Andrei Smirnov | |
*: pedersen dkg
| Commit: | 8c9f69b | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | GitHub | |
*: `add-validators` command (#3857) Introduced new command `charon alpha add-validators` that adds any number of new validators to an existing cluster. Designed usage: ``` charon alpha add-validators --num-validators=3 --src-dir=existing/node0 --dst-dir=combined/node0 --fee-recipient-addresses=0xAA.. --withdrawal-addresses=0xBB.. ``` All Node Operators must run the same command simultaneously, same as for DKG. The commands reads the existing cluster data from `--src-dir`, runs DKG protocol for `--num-validators`, appends the newly generated data to the existing cluster data and writes everything to `--dst-dir`. The `--dst-dir` gets all cluster files needed for charon and a VC to operate. The previous cluster must be stopped and `--src-dir` can be deleted after the ceremony. category: feature ticket: #3672
| Commit: | 1f98083 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
Removed configsigs
| Commit: | 877be13 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
Refactoring
| Commit: | 7dfff39 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | Andrei Smirnov | |
Updating operator signatures
| Commit: | 34a7526 | |
|---|---|---|
| Author: | Andrei Smirnov | |
Removed configsigs
| Commit: | e30ce9b | |
|---|---|---|
| Author: | Andrei Smirnov | |
Refactoring
| Commit: | b5b8fde | |
|---|---|---|
| Author: | Andrei Smirnov | |
Updating operator signatures
| Commit: | 9a914ab | |
|---|---|---|
| Author: | Kaloyan Tanev | |
| Committer: | GitHub | |
*: electra (#3558) Merge electra branch to main category: feature ticket: none
| Commit: | 6dacdd3 | |
|---|---|---|
| Author: | Kaloyan Tanev | |
| Committer: | GitHub | |
*: add custom target gas limit in cluster lock v1.10 (#3456) Up until now the gas limit was hardcoded to 30M. However, the community is pushing towards bumping those numbers and you can't really customise that in Charon. With those updates a `targetGasLimit` variable is introduced to the cluster definition and a new version of cluster definition is created, v1.10. The previous default version was v1.8, now the default is set to v1.10, including also the changes of consensus protocol introduced in v1.9. However, good to keep in mind there is only 1 consensus protocol enabled in charon, meaning the consensus protocol configuration in v1.9 isn't making much difference. Previously the gas limit was hardcoded to 30M, now this can be configured by supplying `--target-gas-limit` flag to both CreateDKG and CreateCluster commands. The variable is not compulsory and its default is set to 36M (this is the new value commonly used in the ecosystem). If a new charon version (i.e.: v1.3) uses old definition (and lock) file, its default will still be the previous one of 30M. To bump the number, unfortunately, a new cluster needs to be created with the updated definition version. category: feature ticket: #3419
| Commit: | 5145b79 | |
|---|---|---|
| Author: | Diogo Santos | |
| Committer: | GitHub | |
app/peerinfo: add nickname field to peerinfo protocol (#3428) Add nickname flag to `run` command, exchange nicknames using peerinfo protocol and create nickname metric to display on Grafana. Preview:  category: feature ticket: #1655
| Commit: | 11c9acf | |
|---|---|---|
| Author: | Andrei Smirnov | |
Revert "blacklist" This reverts commit 45e0e8b4b81bb36b5daced89c666e223fc9ba2c8.
| Commit: | 45e0e8b | |
|---|---|---|
| Author: | Andrei Smirnov | |
blacklist
| Commit: | de1bcbb | |
|---|---|---|
| Author: | Andrei Smirnov | |
distinguish by duty and test with kurtosis
| Commit: | a430b4d | |
|---|---|---|
| Author: | Andrei Smirnov | |
hotstuff component and tests
| Commit: | c40a3fe | |
|---|---|---|
| Author: | Andrei Smirnov | |
hotstuff integration wip
| Commit: | 3b7e052 | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | GitHub | |
*: consensus abstraction (#3327) Summary of changes: 1. Introduced & implemented `ConsensusController` interface. 2. Refactored the entire `consensus` package with increased test coverage. 3. Added `cluster run --consensus-protocol=xyz` flag. 4. Wired Priority protocol to change the current core consensus algorithm. 5. Support to run two consensus protocols at a time (one for Priority - QBFT and another is for Core). 6. Added `docs/consensus.md` category: feature ticket: #3304
| Commit: | b3efff8 | |
|---|---|---|
| Author: | Abhishek Kumar | |
| Committer: | GitHub | |
app: remove todos (#2903) Remove TODOs from app package. category: misc ticket: none
| Commit: | 8ac72af | |
|---|---|---|
| Author: | Andrei Smirnov | |
| Committer: | GitHub | |
app/peerinfo: added builder_api_enabled metric (#2890) Adds `app_peerinfo_builder_api_enabled` metric (gauge) indicating if the `peer` has builder API enabled. category: feature ticket: #2879
| Commit: | 8483677 | |
|---|---|---|
| Author: | Gianguido Sorà | |
| Committer: | GitHub | |
*: implement audit fixes (#2821) Cherry-picks audit fixes tagged with `qs-audit` on `main-v0.19` category: misc ticket: none
| Commit: | 77050fc | |
|---|---|---|
| Author: | Gianguido Sorà | |
| Committer: | GitHub | |
dkg/bcast: exchange full messages (#2798) Instead of passing around hashes, share the whole message with the target for them to validate. category: refactor ticket: none
| Commit: | 2593530 | |
|---|---|---|
| Author: | Abhishek Kumar | |
| Committer: | GitHub | |
core: revert core interfaces (#2682) Revert changes to core interfaces. This is done since the deneb upgrade no longer requires multiple signatures per signed object. Reverting to the original implementation makes the interfaces simple and code much easier to reason about. category: refactor ticket: #2659
| Commit: | 4f5ff72 | |
|---|---|---|
| Author: | Gianguido Sorà | |
Revert "core: update interfaces (#2635)" This reverts commit 2fe130e254febcf866b24a06b32e83041cf7b8e7.
| Commit: | 1aa0bb4 | |
|---|---|---|
| Author: | Abhishek Kumar | |
| Committer: | GitHub | |
*: convert to uint64 (#2668) Convert `Duty.Slot` from int64 to uint64. This is recommended according to ethereum consensus specs: https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#custom-types category: feature ticket: #2658
| Commit: | 2fe130e | |
|---|---|---|
| Author: | Abhishek Kumar | |
| Committer: | GitHub | |
core: update interfaces (#2635) Update `SignedData` interface to include: * `Signatures() []Signature` - Replaces `Signature()` * `SetSignatures([]Signature) (SignedData, error)` - Replaces `SetSignature()` * `MessageRoots() ([][32]byte, error)` - Replaces `MessageRoot()` * `HashRoot() ([32]byte, error)` Also, update `Eth2SignedData` interface to include: * `DomainNames() []signing.DomainName` - Replaces `DomainName()` These changes to the core interfaces are done in order to prepare for the upcoming deneb ethereum upgrade. category: feature ticket: #2597
| Commit: | 4c90ca0 | |
|---|---|---|
| Author: | Gianguido Sorà | |
| Committer: | GitHub | |
*: update v0.17 branch with latest code for release (#2528) The following PRs have been cherry-picked: - https://github.com/ObolNetwork/charon/pull/2490 - https://github.com/ObolNetwork/charon/pull/2494 - https://github.com/ObolNetwork/charon/pull/2496 - https://github.com/ObolNetwork/charon/pull/2509 - https://github.com/ObolNetwork/charon/pull/2510 - https://github.com/ObolNetwork/charon/pull/2504 - https://github.com/ObolNetwork/charon/pull/2511 - https://github.com/ObolNetwork/charon/pull/2514 - https://github.com/ObolNetwork/charon/pull/2516 - https://github.com/ObolNetwork/charon/pull/2518 category: misc ticket: none
| Commit: | 9cbb146 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
dkg/sync: introduce explicit sync steps (#2509) Introduces explicit sync steps in DKG, allowing all peers to wait for other to complete each step before continuing to next step. This prevents fast peers timing out sending stuff to slow peers. It also mitigates against shutdown races. category: bug ticket: #887
| Commit: | 8d75190 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
cluster/manifest: remove mutation timestamp (#2412) Refactors the manifest mutation by removing the timestamp field since this make deterministic mutations basically impossible. Instead, move timestamps to the data of mutations created by single entities, like `NodeApproval`. category: refactor ticket: none
| Commit: | 06d51a0 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
cluster/manifest: refactor cluster hashes (#2369) Refactor `manifestpb.Cluster` to expose `InitialMutationHash` and `LatestMutationHash` explicitly. `LatestMutationHash` is required for: - Identify manifest "iteration", allowing to comparison of different manifest iterations. - Use of parent hash when adding subsequent mutations. Also regenerate all protobufs with latest protogengo version. category: refactor ticket: none
| Commit: | 347a50a | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
p2p: check protonil for all receives (#2346) Check all libp2p protos received over the wire for nil fields. Also extend `protonil` to detect nil list eleements and nil map values. category: misc ticket: none
| Commit: | 2fb2481 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
app/protonil: implement generic nil proto checker (#2344) Implements a generic protobuf nil checker to mitigate against manual verbose or buggy protobuf nil checks. > Note this requires fields that allowed to be nil to be specified as `optional` in the proto definition. category: misc ticket: none
| Commit: | b8f1cc7 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
*: rename cluster state to cluster manifest (#2331) Renames "cluster state" to "cluster manifest". category: refactor ticket: none
| Commit: | bb233b8 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
cluster/state: refactor cluster to proto (#2322) Refactors the resulting `Cluster` state type to proto since it the a very important part of the "spec", it the thing we the cluster state protocol is building. So make it official and part of the spec. Also rename `cluster/statepb/v1` import alias from `pbv1` to `statepb` since we already using `pbv1` for `corepb/v1` alias. category: refactor ticket: none
| Commit: | d6737d4 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
cluster/state: refactor to proto serialisation (#2320) Refactors cluster state serialisation from JSON to proto and from hashing from SSZ to simple SHA256 hashing combined with anypb. Protos provide the following benefits: - This removes complexity of SSZ hashing - Removes the complexity of JSON serialisation - Schema first protobuf definitions category: refactor ticket: none
| Commit: | f3b5d3b | |
|---|---|---|
| Author: | Gianguido Sorà | |
| Committer: | GitHub | |
dkg: lock hash k1 signature in lock file (#2224) This commit ensures all node operators individually sign the agreed lock hash with their K1 private keys, and stores the resulting signature in the lock file itself. category: feature ticket: #2204
| Commit: | 6bba714 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
dkg/sync: enforce version (#1901) Enforce matching peer minor version. DKG only guarantees compatibility with patch versions. category: bug ticket: #1895
| Commit: | 3e3bfb5 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
dkg: refactor to reliable broadcast (#1896) Refactor DKG to use reliable broadcast instead of p2p broadcast. category: feature ticket: #1893
| Commit: | 0bf56a3 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
dkg/bcast: implement reliable broadcast protocol (#1893) Implementation of a reliable-broadcast protocol for use in the DKG. All peers sign the broadcasted message hash, then the message is broadcasted with those signatures as proof. category: feature ticket: #1889
| Commit: | dfabc1c | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
core/consensus: add support for pointer values on the wire (#1838) Upgrades the QBFT wire protocol (without breaking backwards compatibility) by adding the whole value to the `ConsensusMsg` envelope and hashes of those values to the `QBFTMsg` itself. This will allow us to remove the values from the QBFT messages, which will reduce network bandwidth usage by a lot (90% for large values; beacon blocks). This increases the network bandwidth for next release v0.14, but once we remove support for v0.13, it will reduce it by a lot. category: feature ticket: #1552
| Commit: | ecd0112 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
core/consensus: fix wire compatibility (#1556) Reverts "reserved" fields since they are required to calculate correct hash when verifying signatures. Instead just stop using fields. category: bug ticket: #1555
| Commit: | 22e9130 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
core/consensus: remove deprecated value fields (#1554) Removes deprecated consensus wire protocol fields. New fields were introduced in v0.11, so this removes compatibility with v0.10 and older. category: refactor ticket: #1555
| Commit: | 225032b | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
core/consensus: sniff qbft messages (#1452) Sniff recent qbft consensus instance messages and serve them as gzip protos from 2MB fifo buffer from `/debug/qbft`. category: feature ticket: #1450
| Commit: | 539d70d | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
core/peerinfo: add peer starttime (#1454) Adds peer start time to peerinfo protocol and peer panel on the overview dashboard. category: feature ticket: none
| Commit: | 32a6ae4 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
core/priority: refactor implementation (#1433) Refactor priority protocol implementation: - Align with consensus component architecture - Change instance to duty for improve compatibility and logging and simplicity. - Control priority instance with single context, including consensus timeout. category: refactor ticket: #1429
| Commit: | 29e2cf1 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
app/log: add loki client (#1337) Add simple loki client to directly sending logs to loki instead of jumping through docker-compose hoops. Still needs to be integrated. category: feature ticket: #1406
| Commit: | 836a3c3 | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
app/peerinfo: track peer git commit hash (#1297) Tracking peer version is great, but in order to debug network/wire/compatibility issues properly, you need the actual git commit hash of your peers. category: feature ticket: none
| Commit: | 29d32bd | |
|---|---|---|
| Author: | corver | |
| Committer: | GitHub | |
core/priority: refactor priority protocol (#1271) Refactors the priority protocol: - Removes metadata from proto messages since not required anymore - Makes all types generic `anypb.Any` to support arbitrary use-cases. - Refactor static msgProvider to provide when triggered. category: refactor ticket: #1257
| Commit: | 6d2236f | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
app/peerinfo: implement protocol skeleton (#1225) This adds the skeleton for the new `peerinfo` protocol. It is aimed at sharing peer information/metadata. The supported use-cases are: - Track peer clock offset - Track peer lock hash - Track peer app version Tests will be added in a separate PR. category: feature ticket: #1224
| Commit: | 305a37e | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
core/consensus: fix wire compatibility issue (#1223) A second signature wasn't the correct approach for backwards compatibility. Since we marshal the proto to bytes when calculating the hash, unknown fields are actually retained. That means that hashing the whole proto always results in the same hash (and signature) even if the wire contained unknown fields. category: bug ticket: #1222
| Commit: | 8bc41ee | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
core/consensus: generic protobuf values (#1214) Refactors consensus component to support arbitrary protobuf data types. This is backwards wire compatible with previous versions. category: feature ticket: #1205
| Commit: | 4a562fe | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
core/priority: add scores to output (#875) Adds explicit scores to resulting priorities. This solves the tie-breaker (if scores are identical) problem by allowing the user of the priority protocol to decide how to handle ties based on their use-case. - This simplifies the protocol, no fancy pseudo random shuffling. - Users can however still decide to implement fancy pseudo random shuffling themselves if scores are identical - Or users can use the priority result ordering defined by peers with lowest peer IDs. category: feature ticket: #798
| Commit: | 3b207e0 | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
core/priority: implement cluster priority calculation (#843) Implements the prioritiser's deterministic cluster wide priority function. category: feature ticket: #798
| Commit: | 62ac893 | |
|---|---|---|
| Author: | Dhruv Bodani | |
| Committer: | GitHub | |
dkg: add protobuf messages for sync (#707) Adds protobuf messages for dkg sync protocol: sync.proto and sync.pb.go category: feature ticket: #684
| Commit: | 6aeb6eb | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
core/consensus: add message signing (#517) Adds message signing and verification helper functions for qbft consensus, category: feature ticket: #445 feature_flag: qbft_consensus
| Commit: | afc71ba | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
core/consensus: implement qbft component (#514) Implements a qbft consensus component that integrates qbft into p2p and the core workflow. Note this isn't wired yet. Tests will also be added in subsequent PR. category: feature ticket: #445 feature_flag: qbft_consensus
| Commit: | a36b8cc | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
dkg: implement frost p2p transport (#479) Implement frost DKG p2p transport: - Duplicates broadcast messages and send p2p. - Assumes that all nodes are connected at time of DKG - Uses protobuf for compatibility guarantees category: feature ticket: #478 feature_set: alpha
| Commit: | ddd11c0 | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
core/parsigex: introduce protobuf wire messages (#372) Switches to use protobuf messages for `parsigex` wire protocol to ensure backwards compatability. Use `buf` tool chain: - `buf generate` generates go files. - `buf lint` lints the proto files - `buf breaking` checks for breaking changes. category: feature ticket: #321
| Commit: | e5373d7 | |
|---|---|---|
| Author: | corverroos | |
| Committer: | GitHub | |
Delete unused legacy files and folders (#78) - Moves version to runner/version package - Delete unused folders and files - Rename cluster/testdata folder (and improve API a little) - Remove protobuf stuff since not used anymore
This commit does not contain any .proto files.
| Commit: | 812588b | |
|---|---|---|
| Author: | Richard Patel | |
| Committer: | GitHub | |
Initial P2P layer (#11) - Add ENR database - Add self ENR generation - Add crude libp2p bootstrapping - Remove controller and metrics (for now) - Add PoC DV bootstrapping and manifest - Add internal API server using gRPC-Gateway