-
Notifications
You must be signed in to change notification settings - Fork 75
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
chore(sequencer): implement retry logic for connecting to the oracle sidecar #1788
Merged
Merged
Changes from all commits
Commits
Show all changes
117 commits
Select commit
Hold shift + click to select a range
7c39641
add slinky proto files and generated rust
noot a18ad26
add slinky grpc service and genesis state
noot b2cc653
impl most of slinky grpc methods
noot ff618db
add oracle option to config and connect on startup
noot 280111d
begin vote extension handler logic
noot 565ef67
remove unused protos
noot 4635f40
begin oracle component
noot 70df249
finish extend vote logic
noot f3045b3
finish vote extension validation in verify_vote_extension
noot 8276363
add native types for slinky proto types
noot bdcd41a
merge with main, genesis updates
noot 27267e2
update genesis example to incude market map
noot 536fd2c
implement prepare/process proposal vote extension logic
noot d3ba1fa
fix sequencer block construction
noot 8d031ca
no more unstable is_sorted
noot b41a719
implement finalize_block price aggregation and storing logic
noot f197a17
implement oracle module query service
noot 6b84a8a
fixes based on running w sidecar, update genesis example to have oracle
noot 25e024b
fix sequencer unit tests
noot bb1a975
clippy
noot f8dd3d6
fmt
noot b96ce64
remove unused protos
noot 5f9ea4f
attempt to fix sequencer genesis in chart
noot 078b116
lint chart
noot 0ea34d9
maybe fix genesis in chart
noot 63b6b2c
lint chart
noot 72b9fc4
cleanup
noot 5b6a99c
charts
noot 24e916f
fmt
noot 074e7a3
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot 0b6fd9b
add oracle config values to chart
noot a152b6b
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot 4192612
maybe fix chart
noot 8877caa
merge w main
noot 9d4f8dc
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot 936bf00
update protos
noot 9b28345
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot dd2b936
address comments
noot 1fdda18
merge w main
noot 3092971
bump chart version
noot 573993c
merge w main
noot fc6d945
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot eafff75
address comments
noot 18af189
address comments
noot c87d28d
address chart comments
noot cd87fd4
remove clippy too many lines
noot 08c51e4
merge w main, update genesis proto for slinky
noot b64fc41
update genesis to have SlinkyGenesis field
noot 64ad809
address comments, var name cleanup
noot c8437f1
fix(core): restructure modules to match proto (#1405)
SuperFluffy 71e3b78
merge w main
noot 65fdc28
fmt protos
noot 8c8d0eb
update buf cfg to ignore slinky lint warnings
noot 69718e9
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot fb1dbf7
address comments
noot 7fd61bf
merge w main
noot 9d71977
merge w main
noot ee820d9
recompile protos
noot c18201c
fix compiled protos
noot 7a1838e
address comments
noot faa117c
use indexmap everywhere
noot 2928513
fix chart genesis
noot 6c8f81d
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot 6170dbb
fix merge issue
noot c2c7912
maybe fix chart genesis
noot 3faeb74
maybe fix chart genesis
noot 17e91aa
fix genesis log
noot 3207ff9
maybe fix chart genesis
noot 6b1f665
maybe fix charts
noot 0db673a
maybe fix chart genesis
noot 938df30
fix merge
noot f8db715
add unit test
noot dd817a2
merge w main
noot f6d43dc
cleanup
noot 1ecfc14
cleanup
noot 0506bba
clippy
noot 1b8df49
refactor(sequencer): use streams for fetching slinky data from state …
SuperFluffy e6f34c3
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot dca2e52
rework oracle types (#1484)
SuperFluffy 7347bf3
merge wip
noot 7d58ebb
fix merge
noot 21e775a
fix tests
noot d0bfdf9
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot a2c7677
bump chart
noot 68bd014
merge w main
noot 72f0e33
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot 6306abe
address some comments
noot 0f1d47f
address remaining comments
noot 42a653b
merge w main
noot 884bfe4
merge w main
noot 168a05a
merge w main
noot c877303
fix and cleanup unit tests
noot 3edcdf0
chart and clippy
noot 2f76b78
fix smoke tests
noot 2bce117
fmt
noot bf67de6
update dev values
noot d2f8718
protos
noot 477d0ec
verify vote extensions in validate_proposal
noot 43be7e8
update verify_vote_extension to not read from state
noot 31bf59a
merge with main
noot 3510b0b
modify consensus_params in justfile, not genesis parser
noot 5d99f4d
bump slinky protos to v2 and rename to connect
noot 17cbd08
fmt proto
noot e2238b9
move connect protos to vendored, not astria_vendored
noot 2e5677c
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot 33d8dd9
revert buf.lock
noot e5bc4ce
buf.yaml cleanup
noot fd69353
make connect optional in genesis
noot fcf8f49
handle vote_extensions_enable_height and updates to it to handle numb…
noot 8baa0c3
clippy
noot fbdb015
rename ASTRIA_SEQUENCER_CONNECT_GRPC_ADDR to ASTRIA_SEQUENCER_ORACLE_…
noot d291a0b
only init MarketMap and Oracle components if vote extensions are enabled
noot 9e07cb0
Merge branch 'main' of github.com:astriaorg/astria into noot/slinky
noot 19c81f1
update CurrencyPairId::increment
noot 8b86f9d
implement retry logic for connecting to the oracle sidecar
Fraser999 704eec2
merge feat/oracle
noot 925c296
Merge branch 'feat/oracle' of github.com:astriaorg/astria into fraser…
noot File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think we should move this out of the retried function and call it after we successfully connect to the client, as if the grpc call for prices fails, it indicates a more serious error that probably isn't fixable upon retry. thoughts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is maybe a general problem with most or even all of our retry loops like this. We probably have some error cases which are permanent/unrecoverable, and others which are transient. However we always treat them as transient and keep retrying.
In this specific case, I guess we could also get a transient failure of the gRPC (e.g. timeout or dropped connection)? We should probably look to abandon the retry loop if the error indicates a permanent failure, but keep trying if not. However, that's another can of worms, since matching on error variants isn't a lot of fun when using eyre/anyhow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, maybe we can do a larger revisit of the retry functions. this is fine for now, but something to keep in mind