-
Notifications
You must be signed in to change notification settings - Fork 71
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
experimental: advance-runner does not close epochs when claims stream has events from a different dapp address #522
Milestone
Comments
8 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
🙂 Expected behavior
When using rollups-node with
CARTESI_EXPERIMENTAL_SUNODO_VALIDATOR_ENABLED = 'true'
and definingCARTESI_EXPERIMENTAL_SUNODO_VALIDATOR_REDIS_ENDPOINT
so that you can run thecartesi-rollups-authority-claimer
outside the supervision of the rollups-node go supervisor pointing to the same redis isntance..It's expected that one can start another rollups-node instance for another application with the same setup.
At the end, multiple rollups-node will feed the
{chain-XXX}:rollups-claims
and a single claimer configured to make claims for thatXXX
chain should be able to make all that claims.🫠 Actual behavior
In the setup described above, the advance-runner for a specific rollups-node application instance can't append the stream if there's already some entries for another application.
🧪 Minimal test case
I don't have an automated test, but have evidence from the logs and some dumps from redis.
The following dump, is from the rollups-claimer stream with a previous version of the bug-buster application.
When the stream had this content, the new version of the bug-buster (another contract address), the advance-runner logged the message
produced claim
but the stream never was appended with the claim.After deleting the stream, advance-runner was able to create the stream and finally produce the claim entries into the rollups-claims stream.
🌎 Environment
This was observed with
rollups-node:v1.5.0-rc1
.✔️ Possible solutions
A
We could work with a stream for each
$chain-$dapp
pair, as we do withinputs
andoutputs
streams.That would probably involve multiple components, like advance-runner and authority-claimer, at least.
{chain-xxx-app-yyy}:rollups-inputs
{chain-xxx-app-yyy}:rollups-outptus
{chain-xxx-app-yyy}:rollups-claims
B
We could make advance-runner aware of multiple applications when appending thev stream.
Probably, this would need to change only advance-runner internal logic.
A Redis Stream, is an append only data structure, and it would be necessary to navigate all the stream elements to know if we should add a claim entry or not.
Maybe we could leverage Consumer Groups, but I'm not sure if that's possible, and we'd need to investigate.
References:
The text was updated successfully, but these errors were encountered: