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>
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>