You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When attempting to register a finality provider with indexing disabled on the Babylon node, the registration process encounters an issue. While the transaction is successfully submitted to the chain, the finality provider instance fails to start properly.
Current Behavior
When executing fpd create-finality-provider ... with indexer disabled:
Initial registration attempt fails with error:
error: Failed to wait for block inclusion: cannot determine success/failure of tx because transaction indexing is disabled on rpc url
The transaction is actually successful on-chain
Local database is not updated with the finality provider information
Finality provider instance does not start (--eots-pk <pk_address>)
Re-running the same command:
System detects the finality provider is already registered on chain
Local database is updated
Finality provider instance starts successfully
Expected Behavior
The registration should succeed on the first attempt, even with indexing disabled:
Transaction should be submitted
System should verify registration by querying the chain directly
Local database should be updated
Finality provider instance should start automatically
Technical Details
It seems the issue occurs in the CreateFinalityProvider function:
The current implementation relies on transaction indexing to verify registration success. However, the system already has functionality to query finality provider status directly from the chain, which could be used as a fallback mechanism when indexing is disabled.
Impact
poor UX requiring repeat command execution
confusion about registration status
Unnecessary delay in finality provider activation
Suggested Solution
Implement retry mechanism with direct gRPC queries when transaction indexing is disabled:
Submit registration transaction
If indexer error occurs, implement retry logic to query the chain directly
Once confirmed on chain, update local database and start the instance
The text was updated successfully, but these errors were encountered:
Hey @Errorist79, this is a valid issue which is rooted in cosmos/relayer implementation for babylon client with the issue. For fp to work properly, the babylon rpc node has to enable tx indexing. There are some other functions like AddFinalitySig and CommitPubRand that rely on tx indexing. I think your proposal works but it will (1) increase complexity due to addition retry logic, and (2) introduce many extra rpc calls.
Description
When attempting to register a finality provider with indexing disabled on the Babylon node, the registration process encounters an issue. While the transaction is successfully submitted to the chain, the finality provider instance fails to start properly.
Current Behavior
When executing
fpd create-finality-provider ...
with indexer disabled:--eots-pk <pk_address>
)Re-running the same command:
Expected Behavior
The registration should succeed on the first attempt, even with indexing disabled:
Technical Details
It seems the issue occurs in the CreateFinalityProvider function:
https://github.com/babylonlabs-io/finality-provider/blob/main/finality-provider/service/app.go#L396-L436
The current implementation relies on transaction indexing to verify registration success. However, the system already has functionality to query finality provider status directly from the chain, which could be used as a fallback mechanism when indexing is disabled.
Impact
Suggested Solution
Implement retry mechanism with direct gRPC queries when transaction indexing is disabled:
The text was updated successfully, but these errors were encountered: