* [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>
Forces subclasses have to implement it so they specify minimum requirements for the peer to use.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
The P2P and discovery ports are now always dynamically assigned (set to port 0 when starting pantheon) to guarantee they always select an available port.
This however means you can't determine the ports that will be used or the enode URL for a node before it has started. The main effect of this is that nodes have to use the peer discovery process to discover each other rather than having every node in the network in the boot nodes list. A single node is started first with no bootnodes, then other nodes are started with that node as their bootnode and use peer discovery to find the other nodes as they start.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Create a new PrivateContractAddress generation
* Remove resolveAccountFromPublicState
* Change method sign to BytesValue
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Start P2P network synchronously so the ports are guaranteed to be known before we write the ports file
Include the P2P TCP port in ports file even when peer discovery is disabled.
Load information from the advertised peer rather than the discovery listening socket.
Fix admin_nodeInfo to include the ?discport param in the enode URI when the discovery port differs from the P2P port.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
rpc_module enumerates the modules exposed to RPC. This allows the
`geth attach` geth javascript console to attach to Pantheon and use the
json-rpc APIs that pantheon and geth share.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
As previously configured reference tests were not included in jacaoco
results, implying vast swaths of the EVM were not tested. By adding
jacoco to the reference tests and including them in the report a more
accurate picture of line level testing results.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Implement admin_nodeInfo RPC call. This involved bringing data from the
ethNetworkConfig and genesis json into the rpc call, so it had a lot of
testing side effects.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* [PAN-2341] Created mechanism to publish sync status
* Refactoring WebSockets syncing subscription to respond to SyncStatus events
* Removing rpc-ws-refresh-delay option
* Removing ws-refresh-delay option from ATs
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Wait for IBFT network to start generating blocks.
* Ignore CliqueGetSignersRpcTest until it gets reworked to not hard code the block numbers
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
[PAN-2369] RunnerTest fail on Windows due to network startup timing issue
* Forces RunnerTest to wait for the P2PNetwork to start and actually configure it's ports before asking for them.
* Re-Enables RunnerTest.fullSyncFromGenesis()
* Re-Enables RunnerTest.fastSyncFromGenesis()
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Set system property correctly so acceptance tests actually use the process runner.
* Update ProcessPantheonNodeRunner to use the new CLI options and support additional features now required.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>