Let's suppose we have 2 chains of ethereum blockchain. When I fetching contract's log events from x block to getBlockNumber(). Will i get two or one the same log events from each block? Or getBlockNumber returns last block before forking?
You will get the events from the blocks in the canonical chain, nothing from chains that are not leading.
In case you are listening to events in real time, the same confirmation guidelines apply to log events as you would use to collect sufficient confirmations for transactions. In addition, the
status field will indicate
mined on the first confirmation, or
removed if a previously emitted event is no longer valid after a reorganization.
Hope it helps.