neo-go/pkg/core
Roman Khimov 23464401bc core/state: merge spent and unspent coins state, use it to store more things
This change reduces pressure on DB by doing the following things:
 * not storing additional KV pair for SpentCoin
 * storing Output right in the UnspentCoin, thus eliminating the need to get a
   full transaction from DB

At the same time it makes UnspentCoin more fat and hot, but it should probably
worth it.

Also drop `GetUnspentCoinStateOrNew` as it shouldn't ever existed, UTXOs
can't come out of nowhere.

1.5M block import time (VerifyBlocks disabled) on AMD Ryzen 5 1600/16GB/HDD,
before:
real    302m9.895s
user    96m17.200s
sys     13m37.084s

after:
real    159m16.551s
user    69m58.279s
sys     7m34.334s

So it's almost two-fold which is a great improvement.
2020-03-11 12:40:02 +03:00
..
block *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
mempool *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
state core/state: merge spent and unspent coins state, use it to store more things 2020-03-11 12:40:02 +03:00
storage core: track NEP5 transfers 2020-03-05 18:22:40 +03:00
test_data Persist blockchain with leveldb on disk (#48) 2018-03-17 12:53:21 +01:00
transaction Merge pull request #706 from nspcc-dev/feature/transfer 2020-03-05 12:28:01 +03:00
blockchain.go core/state: merge spent and unspent coins state, use it to store more things 2020-03-11 12:40:02 +03:00
blockchain_test.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
blockchainer.go core: move (un)SpentCoin structs into the state package 2020-03-11 12:22:52 +03:00
cacheddao.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
cacheddao_test.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
dao.go core/state: merge spent and unspent coins state, use it to store more things 2020-03-11 12:40:02 +03:00
dao_test.go core/state: merge spent and unspent coins state, use it to store more things 2020-03-11 12:40:02 +03:00
gas_price.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
gas_price_test.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
header_hash_list.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
helper_test.go rpc: implement submitblock RPC 2020-03-06 12:03:08 +03:00
interop_neo.go core: fix wrong endian used in interop functions 2020-03-05 19:44:09 +03:00
interop_neo_test.go core: fix wrong endian used in interop functions 2020-03-05 19:44:09 +03:00
interop_system.go core: fix wrong endian used in interop functions 2020-03-05 19:44:09 +03:00
interops.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
interops_test.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
prometheus.go core: refactor out MemPool 2020-01-16 10:16:24 +03:00
spent_coin.go core: move (un)SpentCoin structs into the state package 2020-03-11 12:22:52 +03:00
uint32.go *: goimports 2019-12-17 14:51:28 +03:00
util.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00
util_test.go *: move all packages from CityOfZion to nspcc-dev 2020-03-03 17:21:42 +03:00