Lucas Saldanha
021544403b
QBFT PKI-backed Block Creation ( #2677 )
...
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
Co-authored-by: Jason Frame <jasonwframe@gmail.com>
3 years ago
matkt
82aabdef81
Update pending transaction manager ( #2656 )
...
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
3 years ago
Lucas Saldanha
68f222be5c
Updated ATs DSL to create PKI QBFT node configuration ( #2670 )
...
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
3 years ago
Usman Saleem
4a22b41c2f
QBFT - Create extradata with round information only ( #2625 )
...
* Create extradata with round information only when using contract to obtain validators and vote
* Qbft header validation rule for extradata when validators are obtained from contract
Signed-off-by: Usman Saleem <usman@usmans.info>
3 years ago
garyschulte
632312bd3a
refactor of GasLimitCalculator into protocolSchedule ( #2632 )
...
Signed-off-by: garyschulte <garyschulte@gmail.com>
3 years ago
Lucas Saldanha
60397308a1
Refactor QbftExtraDataCodec from new instance to injection ( #2645 )
...
* Removed static codec on RoundChange
* Removed static codec on ProposalPayload
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
3 years ago
Lucas Saldanha
eff15cc768
Injecting BftExtraDataCodec into SubsequentMessageValidator ( #2640 )
...
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
3 years ago
Lucas Saldanha
047b680ddc
PKI Block Creation cli configuration ( #2619 )
...
* Added CLI options for PKI Block Creation
* BesuCommand changes for PKI Block Creation
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
3 years ago
Jason Frame
47a3941467
Qbft to use validator contract ( #2574 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
3 years ago
Lucas Saldanha
e19df06c92
PKI QbftContext and QbftBesuControllerBuilder update ( #2604 )
...
* Added PkiQbftContext
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
3 years ago
Lucas Saldanha
46df46cf90
Created PkiQbftExtraData ( #2580 )
...
* Added PKI extra data and codec
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
3 years ago
Jason Frame
63468d8a9d
BFT validator RPCs to use validator providers so that they will work with qbft voting changes ( #2592 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
3 years ago
Antoine Toulme
bc697e82cb
Add unstable CLI option for max ommers depth ( #2584 )
...
* Add unstable CLI option for max ommers depth
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
* Move to a builder pattern for mining parameters
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
3 years ago
Jason Frame
bdb9c1ad85
Bft validator provider ( #2570 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
3 years ago
Jason Frame
5ab214e894
Fix bft messages having duplicate prepares in roundChange message ( #2449 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
3 years ago
Jason Frame
c047d3c791
QBFT to use fixed IBFT mixhash value for headers ( #2379 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
4 years ago
Jason Frame
b55c6b8321
Fix Ibft and Qbft creating header with invalid timestamp ( #2265 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
4 years ago
Jason Frame
18fe0e473e
Qbft vote encoding to use empty for drop for extradata to match quorum ( #2232 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
4 years ago
Jason Frame
8827603c77
Qbft to start round timer after block period expiry ( #2112 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
4 years ago
Jason Frame
1c25b825b0
qbft to not include round number in proposal block ( #2141 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
4 years ago
Usman Saleem
76a5887e00
Update qbft reference test submodule with SPDX header ( #2153 )
...
* Update qbft reference test submodule with SPDX header
* exclude submodule qbft reference-test docker_interop directory from spotless check
Signed-off-by: Usman Saleem <usman@usmans.info>
4 years ago
Jason Frame
bb1ad364a2
qbft roundchange metadata message encoding to match quorum ( #2144 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
4 years ago
Jason Frame
36ef9e724e
Use istanbul 100 subprotocol in QBFT ( #2076 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
4 years ago
Lucas Saldanha
3ce42a3731
Make BftBlockInterface#replaceRoundInBlock non-static ( #2067 )
...
* Make BftBlockInterface#replaceRoundInBlock non-static
Signed-off-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
4 years ago
Jason Frame
a030235e3a
Update qbft extra data encoding to match GoQuorum qbft encoding ( #2039 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
4 years ago
Jason Frame
a627f9d9af
Allow use of custom BFT extra data encoding in common BFT code ( #1972 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
Co-authored-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
ebefafe09f
Update Qbft payload signing to interop ( #2003 )
...
The Hash of a qbft payload is calculated by hashing the RLP'd bytes of the message-id, followed by the payload's encoded bytes.
RLP(msgCode, RLP(payload.encodedBytes()))
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
fd2d1d9c17
Use scalars for consensus round encoding ( #2002 )
...
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Ratan (Rai) Sur
2e540e5241
Retrieve In-Memory Storage Segments Instead of Creating New Ones ( #1994 )
...
We were creating new in-memory storage segments each time we were
supposed to be retrieving it which prevented me from being able to test
what keys ended up being stored in that segment.
Signed-off-by: Ratan Rai Sur <ratan.r.sur@gmail.com>
4 years ago
Daniel Lehrner
8315ba6dc6
Replacing the static references of SECP256K1 by an interface ( #1933 )
...
* Replacing the static references of SECP256K1 by an interface
Signed-off-by: Daniel Lehrner <daniel@io.builders>
4 years ago
Trent Mohay
ae63147d19
change qbft msg codes ( #1955 )
...
This was required to ensure interop with GoQuorum.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Jason Frame
c05b0999ee
qbft message RLP reference tests ( #1860 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
4 years ago
Trent Mohay
ee434f1ec3
Remove some validation from QBFT block header rules ( #1870 )
...
QBFT no longer validates all fields of the block header (eg nonce mixhash), as these have no bearing on the
safety model of the protocol.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Usman Saleem
85333cd928
QBFT jsonrpc methods ( #1865 )
...
Add QBFT rpc methods and namespace. At the moment, they are copied verbatim from IBFT namespace and may change in future once specifications are finalized.
Signed-off-by: Usman Saleem <usman@usmans.info>
4 years ago
Jason Frame
78f5203e6d
qbft rlp encoding to match interop format ( #1866 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
4 years ago
Trent Mohay
77859a9a4c
Introduce spurious integration tests for QBFT ( #1817 )
...
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
f4cb17e829
Wire qbft message validation into business logic ( #1813 )
...
All received QBFT messages are now validated with respect to protocol safety prior to be accepted to QBFT business logic.
This includes updates to the QBFT integration test framework.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
e69e1f5b36
Qbft Proposal Validator ( #1807 )
...
Adds the Qbft Proposal message validator, but does not wire into the Qbft business logic.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
ea82ca47aa
Qbft RoundChangeMessage validator creation ( #1798 )
...
This supplies the necessary validation logic for parsing received RoundChange messages.
This logic is wired into the QBFT business logic.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Jason Frame
827878fdc3
QBFT to send prepare when we receive a proposal ( #1800 )
...
Signed-off-by: Jason Frame jasonwframe@gmail.com
4 years ago
Trent Mohay
a71982fa37
Add RoundChangePayload validation for QBFT ( #1791 )
...
This only validates the RoundChangePayload, it does not perform full message validation.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
fb9dfea8ee
Simplify BFT payload decoding ( #1790 )
...
The code required to deserialise signed payloads for QBFT is verbose and can be reduced by templating.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Jason Frame
94f08475a1
Additional QBFT integration tests ( #1789 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
4 years ago
Trent Mohay
9fa99c39f3
Created QBFT commit validator ( #1788 )
...
Creates the validator for qbft commit messages, but does not wire it into business logic at this stage.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
7b2d1651a2
Add Validation for Qbft Prepare message ( #1786 )
...
Adds the Prepare validator, but does not wire it into the QBFT message validation at this stage.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
70b37c7829
Qbft rework artifacts ( #1781 )
...
Refactor how Prepared/RoundChangeArtifacts are used in QBFT business logic.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Jason Frame
e54b76a3c7
Basic QIBFT integration tests ( #1763 )
...
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
4 years ago
Trent Mohay
16cc4d8ac0
Create Qbft Statemachine ( #1761 )
...
Qbft Statemachine classes copied over from ibft, and specialised.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
1aea51fac9
Transfer more common classes ( #1758 )
...
Additional classes moved from IBFT2 into BFT common.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago
Trent Mohay
3908cc1c92
Add QBFT Propose and RoundChange messages ( #1752 )
...
This adds the proposal and roundchange messages required for QBFT.
This does not wire in the ability to transmit/receive these messages, it just defines the message structure.
Signed-off-by: Trent Mohay <trent.mohay@consensys.net>
4 years ago