neo-go/pkg/core
Roman Khimov 5d68f88196 core: fix and speed up mempool Verify()
First of all, it was wrong, it was not checking for inputs really, it compared
tx hashes for some reason, second, when it did compare inputs it compared only
the PrevIndex part of them which is also wrong.

Also, there is absolutely no reason to go through GetVerifiedTransactions()
here, we don't need this copy of pointers and it can also be outdated by the
time we're to finish our check.

Before:
BenchmarkTXPerformanceTest-4
    5000            485506 ns/op           65886 B/op        409 allocs/op
ok      github.com/CityOfZion/neo-go/integration        3.212s

After:
enchmarkTXPerformanceTest-4
    5000            371104 ns/op           44367 B/op        408 allocs/op
ok      github.com/CityOfZion/neo-go/integration        2.712s
2019-12-13 23:23:33 +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 core: add cachedDao to cache accounts and contracts 2019-12-13 19:57:17 +03:00
blockchain_test.go core: refactoring blockchain state and storage 2019-12-11 13:05:31 +03:00
blockchainer.go core: renames entities-> state and removed State prefix 2019-12-11 13:14:18 +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 core: add cachedDao to cache accounts and contracts 2019-12-13 19:57:17 +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: remove transactions from MemPool when they're stored in block 2019-10-24 13:12:02 +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 core: refactoring blockchain state and storage 2019-12-11 13:05:31 +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