These 51 commits are when the Protocol Buffers files have changed:
Commit: | 9a914ab | |
---|---|---|
Author: | Kaloyan Tanev | |
Committer: | GitHub |
*: electra (#3558) Merge electra branch to main category: feature ticket: none
The documentation is generated from this commit.
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