chainlink icon indicating copy to clipboard operation
chainlink copied to clipboard

Use Seth EVM client in E2E VRF tests

Open lukaszcl opened this issue 1 year ago • 8 comments

  • [x] Docker tests are passing
  • [x] K8s tests are passing https://smartcontract-it.atlassian.net/browse/VRF-1036
  • [x] Fix vrf* wasp guns https://github.com/smartcontractkit/chainlink/pull/12964#issuecomment-2107139224

lukaszcl avatar Apr 25 '24 10:04 lukaszcl

remark - I see that nonce issue was not resolved when rps is set to high value (e.g. 10) in WASP tests

iljapavlovs avatar May 12 '24 17:05 iljapavlovs

remark - I see that nonce issue was not resolved when rps is set to high value (e.g. 10) in WASP tests

@iljapavlovs is this something that worked fine with the old EVM Client? If yes, that should be fixed in this PR. If not, I suggest not to create a follow up ticket for it. cc @Tofel @skudasov

lukaszcl avatar May 13 '24 09:05 lukaszcl

@iljapavlovs is this something that worked fine with the old EVM Client? If yes, that should be fixed in this PR. If not, I suggest not to create a follow up ticket for it. cc @Tofel @skudasov

EVM Client had the same issue. I still need to dig deep into Sergey's newly added readme, but tbh im not using high rps in my tests

iljapavlovs avatar May 13 '24 09:05 iljapavlovs

additionally vrf* wasp guns need to rewritten, currently they just call request randomness function from geth wrapper, which uses root address. But this is not thread-safe, so if wasp is spawning goroutines to generate expected RPS some of these transactions will fail.

probably best approach here would be to use AnySyncedKey() and to pass that to (a new function) called RequestRandomnessFromKey()

@iljapavlovs how about this one that @Tofel mentioned? Is it needed in this PR? If no, I can create a follow up ticket for it,

lukaszcl avatar May 13 '24 09:05 lukaszcl

additionally vrf* wasp guns need to rewritten, currently they just call request randomness function from geth wrapper, which uses root address. But this is not thread-safe, so if wasp is spawning goroutines to generate expected RPS some of these transactions will fail. probably best approach here would be to use AnySyncedKey() and to pass that to (a new function) called RequestRandomnessFromKey()

@iljapavlovs how about this one that @Tofel mentioned? Is it needed in this PR?

Yes, that would make sense to be updated in this PR. so this should help with nonce issues

iljapavlovs avatar May 13 '24 09:05 iljapavlovs

additionally vrf* wasp guns need to rewritten, currently they just call request randomness function from geth wrapper, which uses root address. But this is not thread-safe, so if wasp is spawning goroutines to generate expected RPS some of these transactions will fail. probably best approach here would be to use AnySyncedKey() and to pass that to (a new function) called RequestRandomnessFromKey()

@iljapavlovs how about this one that @Tofel mentioned? Is it needed in this PR?

Yes, that would make sense to be updated in this PR. so this should help with nonce issues

@iljapavlovs @Tofel ok, let me add a todo to this PR and fix it

lukaszcl avatar May 13 '24 09:05 lukaszcl

@iljapavlovs I updated the wasp/load tests to use AnySyncedKey() from Seth. Please have a look

lukaszcl avatar May 13 '24 13:05 lukaszcl