neo-go/pkg/vm
Roman Khimov a7457d08a1 vm/core: add ID support for SYSCALL, redo interop registration
This solves two problems:
 * adds support for shortened SYSCALL form that uses IDs (similar to #434, but
   for NEO 2.0, supporting both forms), which is important for compatibility
   with C# node and mainnet chain that uses it from some height
 * reworks interop plugging to use callbacks rather than appending to the map,
   these map mangling functions are clearly visible in the VM profiling
   statistics and we want spawning a VM to be fast, so it makes sense
   optimizing it. This change moves most of the work to the init() phase
   making VM setup cheaper.

Caveats:
 * InteropNameToID accepts `[]byte` because that's the thing we have in
   SYSCALL processing and that's the most often usecase for it, it leads to
   some conversions in other places but that's acceptable because those are
   either tests or init()
 * three getInterop functions are: `getDefaultVMInterop`, `getSystemInterop`
   and `getNeoInterop`

Our 100K (1.4M->1.5M) block import time improves by ~4% with this change.
2019-12-19 13:35:42 +03:00
..
cli compiler: move it up from vm 2019-12-03 18:23:46 +03:00
opcode vm: move opcodes into their own package 2019-12-03 18:22:14 +03:00
testdata vm: implement json tests from neoVM 2019-11-06 16:22:56 +03:00
tests vm/core: add ID support for SYSCALL, redo interop registration 2019-12-19 13:35:42 +03:00
context.go vm: duplicate an item in Dup 2019-12-17 20:26:30 +03:00
contract_checks.go vm: move opcodes into their own package 2019-12-03 18:22:14 +03:00
contract_checks_test.go vm: move opcodes into their own package 2019-12-03 18:22:14 +03:00
emit.go util: add LE suffix to Uint160 methods 2019-12-06 12:16:55 +03:00
emit_test.go vm: move opcodes into their own package 2019-12-03 18:22:14 +03:00
interop.go vm/core: add ID support for SYSCALL, redo interop registration 2019-12-19 13:35:42 +03:00
json_test.go vm/core: add ID support for SYSCALL, redo interop registration 2019-12-19 13:35:42 +03:00
output.go vm: add IterBack to the Stack to iterate bottom-to-top 2019-11-27 13:00:11 +03:00
serialization.go io: rename Read/WriteBytes to Read/WriteB 2019-12-12 20:19:50 +03:00
stack.go vm: duplicate an item in Dup 2019-12-17 20:26:30 +03:00
stack_item.go vm: duplicate an item in Dup 2019-12-17 20:26:30 +03:00
stack_test.go vm: optimize ROLL/ROT, refactor common code 2019-12-16 19:53:21 +03:00
state.go fix spelling and godoc comments 2019-10-22 17:56:03 +03:00
state_test.go Code refactoring (#143) 2019-02-19 14:22:33 +01:00
vm.go vm/core: add ID support for SYSCALL, redo interop registration 2019-12-19 13:35:42 +03:00
vm_test.go vm/core: add ID support for SYSCALL, redo interop registration 2019-12-19 13:35:42 +03:00