I see geth code skips the validation of the local transactions https://github.com/ethereum/go-ethereum/blob/master/core/tx_pool.go#L528

// Drop non-local transactions under our own minimal accepted gas price
    local = local || pool.locals.contains(from) // account may be local even if the transaction arrived from the network
    if !local && pool.gasPrice.Cmp(tx.GasPrice()) > 0 {
        return ErrUnderpriced

Geth has txpool.nolocals which is optional and false unless specify. This flag is used to send variable flag 'local' as true

  --txpool.nolocals            Disables price exemptions for locally submitted transactions

Need to understand its fully. In our local nodes setup, we don't use txpool.nolocals flag and hence, a transaction with gasPrice = 0 (or very low number) is getting mined without any error. As per the expected behavior, the transaction should fail with "transaction underpriced" error. This is not the case.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.