mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-18 13:59:26 +00:00
core/types/bal: check correct rlp encoding size
This commit is contained in:
parent
19c51b5098
commit
24b6d44201
2 changed files with 14 additions and 1 deletions
|
|
@ -49,7 +49,7 @@ func NewBlockValidator(config *params.ChainConfig, blockchain *BlockChain) *Bloc
|
||||||
// validated at this point.
|
// validated at this point.
|
||||||
func (v *BlockValidator) ValidateBody(block *types.Block) error {
|
func (v *BlockValidator) ValidateBody(block *types.Block) error {
|
||||||
// check EIP 7934 RLP-encoded block size cap
|
// check EIP 7934 RLP-encoded block size cap
|
||||||
if v.config.IsOsaka(block.Number(), block.Time()) && block.Size() > params.MaxBlockSize {
|
if v.config.IsOsaka(block.Number(), block.Time()) && block.ConsensusSize() > params.MaxBlockSize {
|
||||||
return ErrBlockOversized
|
return ErrBlockOversized
|
||||||
}
|
}
|
||||||
// Check whether the block is already imported.
|
// Check whether the block is already imported.
|
||||||
|
|
|
||||||
|
|
@ -462,6 +462,19 @@ func (b *Block) Size() uint64 {
|
||||||
return uint64(c)
|
return uint64(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ConsensusSize returns the RLP encoded size of the block without the BAL
|
||||||
|
// (block access list), which is not part of the consensus encoding.
|
||||||
|
func (b *Block) ConsensusSize() uint64 {
|
||||||
|
c := writeCounter(0)
|
||||||
|
rlp.Encode(&c, &extblock{
|
||||||
|
Header: b.header,
|
||||||
|
Txs: b.transactions,
|
||||||
|
Uncles: b.uncles,
|
||||||
|
Withdrawals: b.withdrawals,
|
||||||
|
})
|
||||||
|
return uint64(c)
|
||||||
|
}
|
||||||
|
|
||||||
// SanityCheck can be used to prevent that unbounded fields are
|
// SanityCheck can be used to prevent that unbounded fields are
|
||||||
// stuffed with junk data to add processing overhead
|
// stuffed with junk data to add processing overhead
|
||||||
func (b *Block) SanityCheck() error {
|
func (b *Block) SanityCheck() error {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue