Biggest change is that UnusedVariable and UnusedMethod went to WARN by
default. Since our build is a no warning build this means we either need
to turn them off or fix them. I mostly opted for the latter. Test code
was mostly fixed, unused loggers were deleted, and other shipped code
was mostly suppressed.
Two less noisy fixes to not use `SortedSet` and to use zero based
comparable results instead of -1, 0, and 1. Also a compiler nit in
errorprone was suppressed, per the description it won't affect us.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Capture input and output metrics for each pipe rather than out input.
* Replace the batching processor with a BatchingReadPipe that wraps a normal pipe and creates batching on the fly.
Avoids needing an extra thread and synchronization overhead to create batches.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
version upgrades, except for
* ErrorProne (requires more than number changes, separate PR)
* net.research.release (known build breaks)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
change --bootnodes option to a method to be able to handle the check and error
fixes PAN-2387 and PAN-2015
Handling this as a method enables to keep the parameter as a string and not a
strongly typed value. It then is always accepted by the command line so it's
always considered as a param and doesn't raise an unknown param error but also
immediately checked against the enode pattern and intelligible matching error
is displayed.
Converter is removed and only a simple lambda is used in a try block
leaving the handling of the error message close to the option thus making code
easier to understand. Anyway, as we use a Collection of Strings as input no
converter is needed anymore.
Update and add tests to check non regression and handle the new behaviour.
Also this change can change the order in which options are handled in the spec.
So tests are updated to check for the presence of options but not specifying a
static order. verifyOptionsConstraintLoggerCall now loops through the options
to check they are contained in the error string but not in a specific order.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* refactor NodeWhitelistController -> NodeLocalConfigPermissioningController
* added smart contract permissioning config
* only use SyncStatusProvider if Smart Contract Permissioning enabled
* check we are not adding self enode
* local permissioning controller isPermitted() should return true if either source OR destination is permitted
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2343] some stubs in progress
* [PAN-2343] getting close to what could be a working contract controller
* [PAN-2343] added the permissioning provider interface to the smart contract controller
* [PAN-2343] smart permissioning queryer works
* [PAN-2343] docs for the smart contract permissioning controller
* [PAN-2343] removed some bad debugging
* [PAN-2343] docs
* [PAN-2343] final
* [PAN-2343] charsets
* [PAN-2343] dependencies that are missing
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2348] Changes in chain head (new blocks or chain reorgs) should trigger new permissioning check
* [PAN-2348] Changes in chain head (new blocks or chain reorgs) should trigger new permissioning check
* Errorprone
* Fix changes
* Spotless
* PR comments
* Spotless
* Fix test
* Fix javadoc
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Improve the import log line to include relevant metrics like number
of transactions, ommers, and gas usage.
Also, this fixes a bug in that we get task times when metrics are not
turned on.
Sample line:
2019-03-11 21:03:50.245+00:00 | EthScheduler-Workers-3 | INFO | BlockPropagationManager | Imported #36 / 20 tx / 0 om / 420,000 (4.0%) gas / (0xecb366469d88d9d75b20721581797c1eb1118557b93db9a460dc0e000b9ec7fe) in 0.143s.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Testing has shown that RocksDB and BigQueue metrics has a negative
impact on performance under load. Disable them by default.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
changed from md python highlight extension to codehilite to enable copy button in code blocks
updated doc for highlight change and fixed line number doc
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
RTD is still working on making MkDocs fully integrated. Some changes will be done during Google Summer of Code but this is a workaround to have 404 and sitemaps working before we have these fixes.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
start() guarantees ports are open before it returns but doesn't block until shutdown. Then awaitStop can be used by callers who want to block until Pantheon exits.
Fixes intermittency regression in RunnerTest with thanks to @usmansaleem for reporting via #1067.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Store the instant that a pending transaction is added to the txpool, and expose this out through the api.
* Clock.systemUTC only used once.
* TestClock class added with a factory method for a fixed clock.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
With re-enabling IBFT 1.0, an error was introduced whereby the Eth/62
and ETH/63 protocols did not have a mapped ProtocolManager (resulting
in an eror at runtime).
This change ensures all protocols are handled by the Istanbul64
ProtocolManager.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* PAN-2057: Accept transactions in the pool with nonce above account sender nonce
* Simplifying if statement
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
fixes PAN-2259 prevent public key export subcommands to create the database
Creation of the database is useless at this stage, so don't create it as it's
usually necessary to remove it if created as we want to use the output of
this subcommand to change the genesis that makes the created database useless.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2342] Created SyncStatusNodePermissioningProvider and NodePermissioningController
* Fix block height comparison logic
* Unit test for SyncStatusNodePermissioningProvider
* Add comment about permissioning while not in sync
* PR comments
* Fix missing final
* Fixing unit test
* Unsubscribing from Synchronizer SyncStatus updates after reaching sync
* Fix race condition
* Simplifying synchronization between callbacks
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
With the removal of the ottoman command line option, Pantheon lost the
ability to synchronise with Quorum.
This change allows Pantheon to synchronise with quorum via the
IbftLegacyPantheonController, which uses an Instanbul64 protocol
manager in place of the EthProtocolManager.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>