diff --git a/consensus/parlia/parlia.go b/consensus/parlia/parlia.go
index e6ec98ab3e540497ffce446e4caab54a23fe5b1a..390da4d52480eec76e41da2c47f2680bfc8dd13a 100644
--- a/consensus/parlia/parlia.go
+++ b/consensus/parlia/parlia.go
@@ -502,7 +502,7 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash
 		// If an on-disk checkpoint snapshot can be found, use that
 		if number%checkpointInterval == 0 {
 			if s, err := loadSnapshot(p.config, p.signatures, p.db, number, hash); err == nil {
-				log.Trace("Loaded snapshot from disk", "number", number, "hash", hash)
+				//log.Trace("Loaded snapshot from disk", "number", number, "hash", hash)
 				snap = s
 				if !verify || snap != nil {
 					break
@@ -567,7 +567,7 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash
 		if err = snap.store(p.db); err != nil {
 			return nil, err
 		}
-		log.Trace("Stored snapshot to disk", "number", snap.Number, "hash", snap.Hash)
+		//log.Trace("Stored snapshot to disk", "number", snap.Number, "hash", snap.Hash)
 	}
 	return snap, err
 }
@@ -688,8 +688,9 @@ func (p *Parlia) finalize(header *types.Header, state *state.IntraBlockState, tx
 		return nil, nil, err
 	}
 	nextForkHash := forkid.NextForkHashFromForks(p.forks, p.genesisHash, number)
-	if !snap.isMajorityFork(hex.EncodeToString(nextForkHash[:])) {
-		log.Debug("there is a possible fork, and your client is not the majority. Please check...", "nextForkHash", hex.EncodeToString(nextForkHash[:]))
+	nextForkHashStr := hex.EncodeToString(nextForkHash[:])
+	if !snap.isMajorityFork(nextForkHashStr) {
+		log.Debug("[parlia] there is a possible fork, and your client is not the majority. Please check...", "nextForkHash", nextForkHashStr)
 	}
 	// If the block is an epoch end block, verify the validator list
 	// The verification can only be done when the state is ready, it can't be done in VerifyHeader.
@@ -715,7 +716,7 @@ func (p *Parlia) finalize(header *types.Header, state *state.IntraBlockState, tx
 	if number == 1 {
 		var err error
 		if txs, systemTxs, receipts, err = p.initContract(state, header, txs, receipts, systemTxs, &header.GasUsed, mining); err != nil {
-			log.Error("init contract failed: %+v", err)
+			log.Error("[parlia] init contract failed: %+v", err)
 			os.Exit(1)
 		}
 	}
@@ -729,7 +730,7 @@ func (p *Parlia) finalize(header *types.Header, state *state.IntraBlockState, tx
 			}
 		}
 		if !signedRecently {
-			log.Trace("slash validator", "block hash", header.Hash(), "address", spoiledVal)
+			//log.Trace("slash validator", "block hash", header.Hash(), "address", spoiledVal)
 			var tx types.Transaction
 			var receipt *types.Receipt
 			if systemTxs, tx, receipt, err = p.slash(spoiledVal, state, header, len(txs), systemTxs, &header.GasUsed, mining); err != nil {
@@ -795,7 +796,7 @@ func (p *Parlia) Seal(chain consensus.ChainHeaderReader, block *types.Block, res
 	}
 	// For 0-period chains, refuse to seal empty blocks (no reward but would spin sealing)
 	if p.config.Period == 0 && len(block.Transactions()) == 0 {
-		log.Info("Sealing paused, waiting for transactions")
+		log.Info("[parlia] Sealing paused, waiting for transactions")
 		return nil
 	}
 	// Don't hold the val fields for the entire sealing procedure
@@ -818,7 +819,7 @@ func (p *Parlia) Seal(chain consensus.ChainHeaderReader, block *types.Block, res
 		if recent == val {
 			// Signer is among recent, only wait if the current block doesn't shift it out
 			if limit := uint64(len(snap.Validators)/2 + 1); number < limit || seen > number-limit {
-				log.Info("Signed recently, must wait for others")
+				log.Info("[parlia] Signed recently, must wait for others")
 				return nil
 			}
 		}
@@ -837,7 +838,7 @@ func (p *Parlia) Seal(chain consensus.ChainHeaderReader, block *types.Block, res
 	copy(header.Extra[len(header.Extra)-extraSeal:], sig)
 
 	// Wait until sealing is terminated or delay timeout.
-	log.Trace("Waiting for slot to sign and propagate", "delay", common.PrettyDuration(delay))
+	//log.Trace("Waiting for slot to sign and propagate", "delay", common.PrettyDuration(delay))
 	go func() {
 		select {
 		case <-stop:
@@ -845,20 +846,20 @@ func (p *Parlia) Seal(chain consensus.ChainHeaderReader, block *types.Block, res
 		case <-time.After(delay):
 		}
 		if p.shouldWaitForCurrentBlockProcess(chain, header, snap) {
-			log.Info("Waiting for received in turn block to process")
+			log.Info("[parlia] Waiting for received in turn block to process")
 			select {
 			case <-stop:
-				log.Info("Received block process finished, abort block seal")
+				log.Info("[parlia] Received block process finished, abort block seal")
 				return
 			case <-time.After(time.Duration(processBackOffTime) * time.Second):
-				log.Info("Process backoff time exhausted, start to seal block")
+				log.Info("[parlia] Process backoff time exhausted, start to seal block")
 			}
 		}
 
 		select {
 		case results <- block.WithSeal(header):
 		default:
-			log.Warn("Sealing result is not read by miner", "sealhash", SealHash(header, p.chainConfig.ChainID))
+			log.Warn("[parlia] Sealing result is not read by miner", "sealhash", SealHash(header, p.chainConfig.ChainID))
 		}
 	}()
 
@@ -1031,11 +1032,11 @@ func (p *Parlia) distributeIncoming(val common.Address, state *state.IntraBlockS
 			}
 			txs = append(txs, tx)
 			receipts = append(receipts, receipt)
-			log.Debug("distribute to system reward pool", "block hash", header.Hash(), "amount", rewards)
+			//log.Debug("[parlia] distribute to system reward pool", "block hash", header.Hash(), "amount", rewards)
 			balance = balance.Sub(balance, rewards)
 		}
 	}
-	log.Debug("distribute to validator contract", "block hash", header.Hash(), "amount", balance)
+	//log.Debug("[parlia] distribute to validator contract", "block hash", header.Hash(), "amount", balance)
 	var err error
 	var tx types.Transaction
 	var receipt *types.Receipt
@@ -1059,7 +1060,7 @@ func (p *Parlia) slash(spoiledVal common.Address, state *state.IntraBlockState,
 		spoiledVal,
 	)
 	if err != nil {
-		log.Error("Unable to pack tx for slash", "err", err)
+		log.Error("[parlia] Unable to pack tx for slash", "err", err)
 		return nil, nil, nil, err
 	}
 	// apply message
@@ -1086,11 +1087,11 @@ func (p *Parlia) initContract(state *state.IntraBlockState, header *types.Header
 	// get packed data
 	data, err := p.validatorSetABI.Pack(method)
 	if err != nil {
-		log.Error("Unable to pack tx for init validator set", "err", err)
+		log.Error("[parlia] Unable to pack tx for init validator set", "err", err)
 		return nil, nil, nil, err
 	}
 	for _, c := range contracts {
-		log.Info("init contract", "block hash", header.Hash(), "contract", c)
+		log.Info("[parlia] init contract", "block hash", header.Hash(), "contract", c)
 		var tx types.Transaction
 		var receipt *types.Receipt
 		if systemTxs, tx, receipt, err = p.applyTransaction(header.Coinbase, c, u256.Num0, data, state, header, len(txs), systemTxs, usedGas, mining); err != nil {
@@ -1123,7 +1124,7 @@ func (p *Parlia) distributeToValidator(amount *uint256.Int, validator common.Add
 		validator,
 	)
 	if err != nil {
-		log.Error("Unable to pack tx for deposit", "err", err)
+		log.Error("[parlia] Unable to pack tx for deposit", "err", err)
 		return nil, nil, nil, err
 	}
 	// apply message
diff --git a/core/state/plain_state_reader.go b/core/state/plain_state_reader.go
index 864dcc2dd90f79e4198ad0baa3a7e4d50a25a526..44976e5f2575483ae8491f1d1c9dd905700aa161 100644
--- a/core/state/plain_state_reader.go
+++ b/core/state/plain_state_reader.go
@@ -6,7 +6,6 @@ import (
 
 	"github.com/ledgerwatch/erigon-lib/kv"
 	"github.com/ledgerwatch/erigon/common"
-	"github.com/ledgerwatch/erigon/common/dbutils"
 	"github.com/ledgerwatch/erigon/core/types/accounts"
 )
 
@@ -17,6 +16,8 @@ var _ StateReader = (*PlainStateReader)(nil)
 // as opposed to the "normal" state that uses hashes of merkle paths to store items.
 type PlainStateReader struct {
 	db kv.Getter
+
+	buf [common.AddressLength + common.IncarnationLength + common.HashLength]byte
 }
 
 func NewPlainStateReader(db kv.Getter) *PlainStateReader {
@@ -41,8 +42,11 @@ func (r *PlainStateReader) ReadAccountData(address common.Address) (*accounts.Ac
 }
 
 func (r *PlainStateReader) ReadAccountStorage(address common.Address, incarnation uint64, key *common.Hash) ([]byte, error) {
-	compositeKey := dbutils.PlainGenerateCompositeStorageKey(address.Bytes(), incarnation, key.Bytes())
-	enc, err := r.db.GetOne(kv.PlainState, compositeKey)
+	copy(r.buf[:], address[:])
+	binary.BigEndian.PutUint64(r.buf[common.AddressLength:], incarnation)
+	copy(r.buf[common.AddressLength+common.IncarnationLength:], key[:])
+
+	enc, err := r.db.GetOne(kv.PlainState, r.buf[:])
 	if err != nil {
 		return nil, err
 	}