Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* qlight: introduce the qlight protocol, the corresponding server/client handlers and the configuration/initialization logic * qlight: register server peers to the peer set to allow for graceful protocol manager shutdown * qlight poc - add support for privacy marker transaction * qlight: add rpc proxying * qlight: sort out contract extension * qlight: eliminate tx receipt checks and replace with RPC calls for private transactions which are not referenced in public chain data * qlight: transfer private block data over the RPC connection (only private data notifications remain on the P2P connection) * qlight: force max peers to 1 and disable the local P2P listener for the qlight clients * qlight: add private state root checks, restructure client cache logic * qlight: apply updates from handler.go * qlight: refactor client-side handler use pointer embedding, error on unexpected msg types, no-op tx broadcast loop * qlight: refactor server-side handler error on unexpected msg types, remove tx fetcher * qlight: refactor server-side handler remove un-initialised and unstarted downloader, add TODOs to note additional testing/checking * qlight: refactor client & server-side handlers remove unused handlers * qlight: allow qlight client to start in "raft mode" and remove raft P2P checks which ensure that the P2P node is in the raft cluster * qlight: refactor client handler remove unnecessary start/stop code for a qlight client * qlight: add NewBlockHashesMsg to the QLightServerProtocolManager to handle the end of sync block broadcast from the client * qlight: separate qlight into it's own P2P server (QP2P) on the server side, reintroduce raft peer checks * qlight: add basic tls configuration for qlight P2P * qlight: add file based permissioning to the qserver (qlight P2P server) * qlight: add client token cli parameter, one way tls for the RPC client, token validation on qlight server (if multitenancy is enabled) * qlight: transfer private block info over P2P protocol, remove RPC private block transfer code * qlight: remove server-side cache this is no longer needed as we are now pushing private block data directly to clients using the qlite p2p protocol instead of the client requesting private block data using the RPC API * qlight: cleanup & remove eth_getQuorumPayloadsForBlock API * qlight: remove unnecessary intermediary type for private data Fields were converted to strings, transported, and then converted back to byte slices etc. * qlight: add transaction notifications as empty txs in the client cache (they are overwritten when private block data arrives) * Fix error message formatting which was breaking unit test. * qlight: move qlight initialization logic to private.InitializeConection * qlight: remove RegisterIdlePeer and disconnect when a qlight server connects to another qlight server * qlight: move tls.Config construction to the qlight package * qlight: decouple private block data retrieval and authorisation from qlight_server_handler * qlight: introduce the qlight protocol, the corresponding server/client handlers and the configuration/initialization logic * qlight: add rpc proxying * qlight: register server peers to the peer set to allow for graceful protocol manager shutdown * qlight: sort out contract extension * qlight: eliminate tx receipt checks and replace with RPC calls for private transactions which are not referenced in public chain data * qlight: transfer private block data over the RPC connection (only private data notifications remain on the P2P connection) * qlight: add private state root checks, restructure client cache logic * qlight: allow qlight client to start in "raft mode" and remove raft P2P checks which ensure that the P2P node is in the raft cluster * qlight: separate qlight into it's own P2P server (QP2P) on the server side, reintroduce raft peer checks * qlight: add file based permissioning to the qserver (qlight P2P server) * qlight: transfer private block info over P2P protocol, remove RPC private block transfer code * qlight: remove server-side cache this is no longer needed as we are now pushing private block data directly to clients using the qlite p2p protocol instead of the client requesting private block data using the RPC API * qlight: cleanup & remove eth_getQuorumPayloadsForBlock API * qlight: remove unnecessary intermediary type for private data Fields were converted to strings, transported, and then converted back to byte slices etc. * qlight: unit tests for clientCache and PrivateBlockDataResolver * qlight: fix lint issues * qlight: add auth provider tests * qlight: move qlight p2p config properties under the qlight.server.p2p prefix * qlight: add caching proxy tests * qlight: rebase and handler rewrite * qlight: add extra tls config params * Separate qlight client options for clarity * Correction to description of qlight maxpeers option. * qlight: allow qlight to cope with un-retrievable private state roots caused by enabling the private state cache on the qlight server * qlight: cleanup * qlight: introduce periodic checks for the qlight client token (on the qlight server) * qlight: fix config unit tests * qlight: refactor qlight config logic * qlight: fix rpc tls client config * use only 1 cacert config * qlight: error handling and constants * qlight: allow the client token to be updated in a running process * use disallowed wording * structure qlight client config * qlight: fix ExtraMetadata rlp decoding (initialize ACHashes map) * qlight: add auth token config params * qlight: merge fixes * qlight: remove unnecessary break stmts * Update eth/protocols/qlight/broadcast.go Co-authored-by: baptiste-b-pegasys <[email protected]> * qlight: use inclusive terms (black listed -> disallowed) * qlight: fix case statements * Update cmd/geth/config.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update cmd/geth/config.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update cmd/geth/config.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update internal/ethapi/proxy_api.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update eth/handler_qlight_client.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update internal/ethapi/proxy_api.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update internal/ethapi/proxy_api.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update internal/ethapi/proxy_api.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update node/config.go Co-authored-by: baptiste-b-pegasys <[email protected]> * Update node/node.go Co-authored-by: baptiste-b-pegasys <[email protected]> * qlight: review feedback * qlight: add pmt unit test * qlight: add pmt unit test (check returned err) Co-authored-by: SatpalSandhu61 <[email protected]> Co-authored-by: chris <[email protected]> Co-authored-by: Nam Truong <[email protected]> Co-authored-by: baptiste-b-pegasys <[email protected]> Co-authored-by: Antony Denyer <[email protected]> Co-authored-by: Krish Swaminathan <[email protected]>
- Loading branch information