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

authorityResponsibleForRelay issue #266

Closed
LiorRabin opened this issue Jan 14, 2020 · 4 comments
Closed

authorityResponsibleForRelay issue #266

LiorRabin opened this issue Jan 14, 2020 · 4 comments

Comments

@LiorRabin
Copy link

Hello,
I have an issue with authorityResponsibleForRelay check in the processCollectedSignatures event watcher.
What happens if that specific validator is down indefinitely?
How can the exectureSignatures function be called?
Is there an option to make some kind of queue there - give the authorityResponsibleForRelay some time to process and if not processed, move over to the next validator?

@akolotov
Copy link
Collaborator

@LiorRabin as you can see in the Foreign Bridge contract: https://github.com/poanetwork/tokenbridge-contracts/blob/e2d3cdabee6d4579dd6a5e1949ee98c79cd1cbe6/contracts/upgradeable_contracts/BasicForeignBridge.sol#L18-L34, there are no limitations to call the executeSignatures method by anyone. It was intentionally designed as so if an oracle responsible for relaying signatures fails by some reason any account could collect signatures from the Home bridge contract and send them to the Foreign side. This action does not require any consensus since the signatures are very hard to forge.

We even have an issue against the TokenBridge UI functionality to allow the end user to submit signatures instead of the validator's oracle.

@LiorRabin
Copy link
Author

Thanks @akolotov. I know there are no limitations to call executeSignatures just thought to ask if there's any intention to build a fallback on the oracle itself for this specific case.

@akolotov
Copy link
Collaborator

@LiorRabin so far we had no such intention the reasons are:

  • we could detect that the signatures relay operation is stuck in the monitor and re-send signatures from any account
  • we have the open issue to implement functionality allowing the user to re-send collected signatures if they need to speed up the process

Otherwise we need to invent a way to build communication channels between oracles that will be used to identify oracles that out-of-service and duplicate the actions. But it was assumed that every oracle does not require any information about other bridge participants: neither the validators number nor their addresses.

@LiorRabin
Copy link
Author

Got it, thanks for the info

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

No branches or pull requests

2 participants