Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DRAFT] CCQ: Cross-Chain Query Integration #2981

Closed
wants to merge 37 commits into from
Closed

Conversation

evan-gray
Copy link
Contributor

@evan-gray evan-gray commented May 24, 2023

WARNING: This PR has been superseded by the following PRs:

Please DO NOT add any more commits to this PR!

@evan-gray evan-gray force-pushed the ccq/integration branch 3 times, most recently from f47465c to 9473511 Compare May 25, 2023 19:20
kev1n-peters
kev1n-peters previously approved these changes Jun 2, 2023
@kev1n-peters kev1n-peters self-requested a review June 2, 2023 14:39
@bruce-riley bruce-riley changed the title [DRAFT] Cross-Chain Query Integration [DRAFT] CCQ: Cross-Chain Query Integration Jun 2, 2023
bruce-riley
bruce-riley previously approved these changes Jun 2, 2023
@tbjump
Copy link
Contributor

tbjump commented Aug 2, 2023

Linking #3113 here as related.

@tbjump
Copy link
Contributor

tbjump commented Aug 2, 2023

Some feedback on the gossipsub portion of this (If you decide to proceed with gossipsub at all):

  • CCQ requests and responses should go into their own pub/sub topics ccq_requests and ccq_responses (or similar)
  • Guardians should instantiate a separate PubSub struct (pubsub.NewGossipSub(…)) for CCQ-related stuff (not join additional topics with the existing ps)
  • The CCQServers (ccq: query server #3113) should be identified and allow-listed with their libp2p identity.
  • CCQServers should have a parameter of D = 36, Dlo = 19, Dhi = 40, Dout = 18 such that they can reach all Guardians directly. There will be no other nodes forwarding messages (or at least they cannot be assumed to exist), so it’s important that all Guardians can be reached directly.
  • Guardians should implement option WithPeerFilter to only connect to allow-listed CCQServers and also implement WithDirectPeers to maintain connections to all CCQServers.

bruce-riley and others added 21 commits September 29, 2023 13:51
* CCQ: Add marshalling tests

* More marshalling changes

* Start of support for multiple calls in a batch

* Multiple responses to go with multiple requests

* Support multiple EVM queries in a batch

* Multiple queries in a batch

* Start of handler tests

* More handler tests

* More handler tests

* node: add multi batch query tests

* Added comments to tests

* Per chain query time out not getting retried

* node: chang rand package

* Tweak serialization of per call request

---------

Co-authored-by: Paul Noel <[email protected]>
* wormchain: deploy more contracts in tilt

* wormchain: change contract ordering

* wormchain: rearrange instantiation
* CCQ: Messaging changes

* Add tests for marshaling query request

* Response changes

* Rework response structs, add tests

* Code review rework

* Make block number uint64 internally
* CCQ: Reorg code into a query package

* Make requestTimeout public
* CCQ: Message tweaks

Change-Id: I5d97fa0a32b42f1a763edf572b3d08365a7f5b20

* Add comments

Change-Id: I35a9fac0fbaae7d175e2529b842c5cef4ac386f6

* Fix comment paste error

Change-Id: I4dd23ea375e481d46e24a11d70b590221548c92e

* Address review comments

Change-Id: Ia516085fdcc182a5566b31342a5aa2480d37eedc
* CCQ: Make work with node refactor

Change-Id: I416db0e01156787b6ed2420598a448d23c4581ca

* Tweak log message

Change-Id: Ibf109cfdccf01297e0755fc849b23d42cde2b772
The CCQ Query Server is an HTTP server / RESTful service that handles
query requests, publishes them to the gossip network, waits for the
responses to reach quorum, and then returns the response.
* CCQ: Gossip Split

* Fix error handling
bruce-riley and others added 6 commits October 1, 2023 11:31
* CCQ: Add enable flag and feature flag (#2986)

* CCQ: Add enable flag and feature flag

* Fix build error

* CCQ: Add ccqAllowedRequesters parameter (#2990)

* CCQ: Query demo contract

* More stuff

* More stuff

* More changes

* remove bad check

* timestamp bugfix

* Code review rework

---------

Co-authored-by: Evan Gray <[email protected]>
* CCQ: Fix tilt CI tests

* Add logging

* Try adding second guardian to bootstrap peers

* More debugging

* Another tweak

* Try again

* Undo a tweak

* Sigh

* Shrug

* Give query-server a unique p2p key
* CCQ: Eth parsing library rework

* Use BytesParsing for unchecked handling

* Add checkLength()

* Use a const instead of a magic number
@evan-gray evan-gray closed this Jan 30, 2024
@evan-gray evan-gray deleted the ccq/integration branch January 30, 2024 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants