Return world states as an optional to allow code to handle world states not be available cleanly.
A world state is considered available if it's root node is available.
Delay storing the root hash when fast syncing a world state until the download completes so it isn't considered available and skip downloading world states that are already available.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* register sub tasks in ParalellImportChainSegmentTask
* rememger and shutdown eth services in EthScheduler
Fixes#768
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* make sure we don't put the password in the jwt payload
* Made sure password doesn't appear in jwt payload
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Add Message Frame to Pre compiled contracts
* Wire up Private Transaction Processor
* Add Privacy Precompiled contract Test
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Exceptions that serve more as flow control than error reporting should not log stack traces.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
ParallelImportChainSegmentTask, an explicitly parallel re-implementation
of PipelinedImportChainSegmentTask. Data is passed between stages
via BlockingQueues.
Pipeline stages are implemented in AbstractPipelinePeerTask and the
parent task assembles and initiates the pipeline execution.
Other changes to support this:
* Move ethTaskTimer to abstract root
* Don't use deterministic scheduler for downloader tests, this depends on explicit parallelism
* Change download segment size = 200
* Increase timeout in recoversFromSyncTargetDisconnect, the chain downloader
may stall for 10 seconds looking for an alternative target.
* Use a blocking queue instead of fixed wait period for the test peers
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Introduce GetReceiptsForHeadersTask to retry requests for receipts until they have all been received.
* Avoid requesting empty receipts from the network. (#802)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Two changes:
* Stream chains now take up less vertical lines, only breaking on
stream operations.
* Long annotations that span multiple lines no longer have a dangling
parentesis and indent 4 spaces.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Add the services thread pool and a computation thread pool to the
EthScheduler.
* Services are long running, sequential, and infrequently start tasks
such as Full Sync and Fast Sync.
* Computations are short and high CPU intensity tasks such as ECDSA
signature extractions and POW validation. The intent is that each
runnable represents one such extraction and the extractions from a
block are saturated across available processing power. These
computations should have zero dependencies outside their object and
thread.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Log the milestone blocks in use at startup.
* Remove duplicate word "key" in log message when new key is generated.
* Don't log that mining is paused while behind chain head when mining is not enabled.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* added CLI for permissioning config file path
* added test for --permissions-config-file without param value
* merged changes from NC-1968 and set the config path on the PermissioningConfiguration object when it's created
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Add PrivateTransactionHandler
* Implementing PrivateTransactionHandler
* Send Privacy Marker Transaction to Privacy Precompile Smart Contract
* Tests Handler
* Fix up Private Transaction Handler Test
* Remove wildcard import
* Remove Orion tests from PrivateTransactionHandler
* Fix test exception
* Return error if orion call fails
* Fix PrivateTransactionHandler implementation
- The whole base64 rlp encoded private transaction should be sent to Orion rather than the base64 encoded input of the private transaction.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Download receipts
* store blocks without processing transactions
* Only apply light validation during fast sync.
* Mark fast sync chain download as complete when pivot block has been reached.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>