-
Notifications
You must be signed in to change notification settings - Fork 100
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
Test ethrelay catchup and test challenge invalid block #254
Conversation
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.
This looks great, thank you!
@nearmax got this error in e2e test chanllenge, this's also always happens locally (Seems there's either a problem with watchdog, or contract)
Underlying code is https://github.com/near/rainbow-bridge/blob/master/environment/commands/transfer-eth-erc20-from-near.js#L148 Do you have idea why a light_client_proof respond "does not exist" on requested receiptId? The receiptId is responded by rpc of the successful burn txn so it should exist. Also @bowenwang1996 |
Is it 100% reproducible? Or does it happen randomly? There might be a race condition issue when ViewClient hasn't learnt yet that this receipt exists. I've seen similar issue with light client header -- RPC would tell me that this header exists, but if I try to immediately grab it with light client endpoint it would tell me it is not know, but then if I wait it becomes known. |
You need to wait for the next block for the outcome root. |
The next block you mean "near block" right? I waited for a few minutes and retry the rpc manually and it still "does not exist". No near node configuration was changed, and it pass without wait in the e2e test without challenge step |
Seems always reproducible locally, and wait doesn't help (tried print the params and retry rpc a few minutes later and just now (10+ hours later), still not exist. |
What does the set up look like? How many near nodes are there and what is the epoch length? |
It's default near init setup, one node, epoch length is 60 |
I wonder whether it is because block production is too fast and garbage collection kicks in very quickly. Does it help if you change epoch length to 600 or make the node archival? |
Good point! |
I've seen this issue before with bridge e2e tests, too bad it did not occur to me that this is the case. Thank you @bowenwang1996 ! |
* e2e to test ethrelay catchup * refactor and run on ci * workaround buildkite * manually test challenge works * fix nonce by a robust callcontract wrapper * improve nonce handling, reduce lock time to 60s to speed up on ci * fix collect log on ci * robustness fix: near query retry and retry eth lock when fail of nonce * fix event parse of sendTransaction by steal from web3
Implement #238