neoneo-go/pkg/core
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
..
state state: use open-coded array (de)serialization for accounts 2019-12-13 19:57:17 +03:00
storage core: refactoring blockchain state and storage 2019-12-11 13:05:31 +03:00
test_data Persist blockchain with leveldb on disk (#48) 2018-03-17 12:53:21 +01:00
transaction io: rename Read/WriteBytes to Read/WriteB 2019-12-12 20:19:50 +03:00
block.go io: rename Read/WriteBytes to Read/WriteB 2019-12-12 20:19:50 +03:00
block_base.go io: add type-specific read/write methods 2019-12-12 20:19:50 +03:00
block_test.go core/tx: remove one layer of indirection for scripts and inouts 2019-12-09 17:14:10 +03:00
blockchain.go vm/core: add ID support for SYSCALL, redo interop registration 2019-12-19 13:35:42 +03:00
blockchain_test.go core: refactoring blockchain state and storage 2019-12-11 13:05:31 +03:00
blockchainer.go *: goimports 2019-12-17 14:51:28 +03:00
cacheddao.go core: add cachedDao to cache accounts and contracts 2019-12-13 19:57:17 +03:00
cacheddao_test.go core: add cachedDao to cache accounts and contracts 2019-12-13 19:57:17 +03:00
dao.go core: do not write new dao elements into DB 2019-12-13 19:57:17 +03:00
dao_test.go core: do not write new dao elements into DB 2019-12-13 19:57:17 +03:00
feer.go Implement rpc server method: sendrawtransaction (#174) 2019-03-20 12:30:05 +00:00
header.go io: implement ReadBytes() 2019-12-09 15:00:15 +03:00
header_hash_list.go util: implement io.Serializable for Uint256 2019-11-14 14:20:38 +03:00
header_test.go core/tx: remove one layer of indirection for scripts and inouts 2019-12-09 17:14:10 +03:00
helper_test.go core/tx: remove one layer of indirection for scripts and inouts 2019-12-09 17:14:10 +03:00
interop_neo.go core: get data from dao in interops 2019-12-13 17:17:14 +03:00
interop_neo_test.go internal: moved testutil method to internal package 2019-12-11 13:14:43 +03:00
interop_system.go core: get data from dao in interops 2019-12-13 17:17:14 +03:00
interops.go vm/core: add ID support for SYSCALL, redo interop registration 2019-12-19 13:35:42 +03:00
mem_pool.go core: fix and speed up mempool Verify() 2019-12-13 23:23:33 +03:00
mem_pool_test.go core: add MemPool Verify() test 2019-12-14 00:05:45 +03:00
prometheus.go monitoring: add prometheus monitoring 2019-10-29 20:51:17 +03:00
spent_coin_state.go io: add type-specific read/write methods 2019-12-12 20:19:50 +03:00
spent_coin_state_test.go internal: moved testutil method to internal package 2019-12-11 13:14:43 +03:00
uint32.go *: goimports 2019-12-17 14:51:28 +03:00
unspent_coin_state.go io: rename Read/WriteBytes to Read/WriteB 2019-12-12 20:19:50 +03:00
unspent_coint_state_test.go core: renames entities-> state and removed State prefix 2019-12-11 13:14:18 +03:00
util.go core/tx: remove publickey indirection from assets and txes 2019-12-09 18:33:04 +03:00
util_test.go util: add LE suffix to Uint256 methods 2019-12-06 12:16:55 +03:00