neo-go/pkg/core/block
Roman Khimov ce09c82b25 block: remove Verify()
It's used in two places now:
 * Blockchain.AddBlock()
   This one does transaction duplication check of its own, doing it in
   Verify() is just a waste of time. Merkle tree root hash value check is
   still relevant though
 * Block.DecodeBinary()
   We're decoding blocks for the following purposes:
     - on restore from dump
       The block will be added to the chain via AddBlock() and that will do a
       full check of it (if configured to do so)
     - on retrieving the block from the DB (DAO)
       We trust the DB, if it's gone wild, this check won't really help
     - on receiving the block via P2P
       It's gonna be put into block queue and then end up in AddBlock() which
       will check it
     - on receiving the block via RPC (submitblock)
       It is to be passed into AddBlock()
     - on receiving the block via RPC in a client
       That's the only problematic case probably, but RPC client has to trust
       the server and it can check for the signature if it really
       cares. Or a separate in-client check might be added.

As we can see nothing really requires this verification to be done the way it
is now, AddBlock can just have a Merkle check and DecodeBinary can do fine
without it at all.
2020-09-16 12:50:13 +03:00
..
block.go block: remove Verify() 2020-09-16 12:50:13 +03:00
block_base.go block: remove Base.Verify() 2020-09-16 12:50:13 +03:00
block_test.go block: remove Verify() 2020-09-16 12:50:13 +03:00
consensus_data.go block: fix ConsensusData hashing 2020-06-18 12:22:49 +03:00
header.go block: drop paddings from structures 2020-06-18 12:11:41 +03:00
header_test.go core: change block.ConsensusData to neo3 format 2020-04-27 17:57:37 +03:00
helper_test.go block: update binary test data 2020-08-18 14:52:30 +03:00