Can someone please explain what the --force-sealing option is for? From the description I don't understand exactly what it's doing. I want to understand why it must be set if I want to get a pending block using the rpc method eth_getBlockByNumber. If it's not set, the method instead of the pending block will return the last block from the blockchain and I want to figure out why.
By default you don't "seal", aka actually execute transactions in, a prospective block (in order to prepare to mine on top of it) unless you are mining or it is your turn being an authority in a PoA network.
--force-sealing forces your node to execute transactions and build a block even if you aren't mining or an authority. If you don't actually calculate and verify its potential contents, you can't query the pending block.