forked from TrueCloudLab/neoneo-go
ce09c82b25
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. |
||
---|---|---|
.. | ||
client | ||
request | ||
response | ||
server | ||
rpc_config.go |