Previously, IBFT only validated the header of the block on reception
of a proposal. However in order to minimise the risk of a "bad block"
being detected after a PreparedCertificate being created, it has been
decided to validate the whole block (i.e. exercise the transactions,
process the block and ensure hashes etc line up with the header).
There is still some (minor) risk of a failed block import, however
it is substantially reduced.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Testing indicated that if quorum-1 commit messages is received prior
to the proposal, the proposed block will be imported twice.
Theoretically this is handled safely by the BlockImporter, however
is clearly an error in the IbftRound code.
This commit updates IbftRound such that the import can only occur
once.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Removing code identified by the 'unused declaration' analysis in IntelliJ
* Undoing removal of injectNewRound as that's actually used
* Removing wrapper class from Clique UT
* Spotless
* Adding back code
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* fix doc site footer colors
colours were parameterised but this doesn't seem to work in css files
* removed colour config extras
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
In order to validate a block separate to its commit seals, the commit
seals must be validated separately to the validator content of the
block.
At this stage, the commit rule is _not_ light, however this change
is to be conducted in subsequent PRs.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Constructor of the RoundChangeManager now accepts a
RoundChangeMessageValidator rather than creating it from inputs.
This removes complexity from this class, pushes creation back to the
validator factory, and simplifies the IbftBlockHeightManagerFactory.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Ibft is required to validate a block upon reception, but not import
it until a later time.
As such, IBFT will require validation and importing to be separated.
The validator has been exposed as part of the ProtocolSpecification.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Implement a new endpoint for privacy (#PRIV-5)
Create new package for implement privacy isolate, add new EeaSendSawTransaction.java and EeaSendSawTransactionTest.java
Create a new RpcApis category: EEA
Make changes to expose the endpoint in JsonRpcMethodsFactory.java, RpcApis.java and PatheonCommand.java
Create basic unit tests to call and get the response of the endpoint and call manualy and get the response
* Fix tests build failure and run gradlew spotlessApply
Also resolve merge duplication
* Remove the EEA from default APIs
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
node-priveate-key is a path and not a key. The everything_config.toml
should blatently look like a valid path
The old value was a valid path, but gave the wrong impression.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Quick typo fix on Private-Network-Quickstart.md
* Seeded azure quickstart ready to be improved by technical writers
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Gradle 5.1.1
Artemis went to Gradle 5.1 and it seems to be doing fine.
This upgrades to Gradle 5.1.1 and removes the two deprecation warnings in the build script.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Integration tests have been added to determine the IBFT components
response to the reception of RoundChange messages.
Through the course of creating these tests the following changes were
made to the RoundChangeManager:
* Stores RoundChangeMessages in the order of arrival
* Discards subsequent RoundChange messages from the same node,
targeting a specific round.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>