neo-go icon indicating copy to clipboard operation
neo-go copied to clipboard

Applicationlog differences with C# implementation for transactions with FAULT state

Open ixje opened this issue 2 years ago • 1 comments

Current Behavior

The Go implementation includes notifications for transactions that end in a FAULT state, while the C# implementation does not.

example MainNet transactions that differ:

  • 0x42256bfa6c40324163c749f14e00209d8cb3da5eefaa7fd95f0f80cfa0227755
  • 0x7b2c4901e3fd802144e4ea0e500d692d1cbc33ca52485fe10380611c8d504d46
  • 0x52887430203172ef273495478a172293aae6302c9ab67b858689f37b6ea743fd
  • 0x40ec1d45928efd23a0275b6098e1cd2c2de589bfb3a73b7740f1e537c604b894

Expected Behavior

From a purist standpoint I would say the logs should be identical, however I can also see the value in having notifications as a way of having some feedback on how far the transaction got in executing.

I'll leave the decision whether to solve or not to you, I at least wanted to make it known.

Steps to Reproduce

Fetch the application log for the above transactions on a go node and a Csharp node

ixje avatar Nov 07 '23 07:11 ixje

Thank you for pointing that out, it's kind of a known issue, and for RPC responses it was done intentionally to provide more details. but now it is especially important wrt https://github.com/neo-project/neo/pull/2940 and we're coming to the point when it's critical to have compatibility with NeoC# node on this question.

As you may notice, it's not only notifications that are mismatch for FAULTed transactions, it's also the stack content. I need to dive a little bit deeper to the source of the problem and NeoC# code, it may be connected with a39b7cc3 and 0cd19f550efe5265d0aaeb5f4c31d3d63c04f915. So we'll either fix this in NeoGo or create an issue in NeoC#.

AnnaShaleva avatar Nov 07 '23 09:11 AnnaShaleva