1
The main purpose is to have "payment done" confirmation as fast as possible, within some seconds.
First option is to implement it myself. Now I have the following implementation based on querying Bitoin-qt from .NET API: I receive all new transaction IDs using getrawmempool and then iterate through each of them to get details using getrawtransaction to find transactions with addresses I want to monitor.
2 years ago it used to work well, but now I see it performs slower and slower. So, I think bitcoin-qt + .NET API is not the approach which can increase monitor time.
Another option is to use third-party services, like blockchain.info, which can be used in my (commercial) application.
1Remember that zero-confirmation is dangerous and it does NOT mean "payment done". Checking transactions using your own node is better than using third parties, as you don't need to trust anyone. ( Using bitcoind running in the background instead of bitcoin-qt GUI might make more sense.) On the other hand, you might want to ALSO use third parties to try to make use of their multiple nodes located in different places around the world and hope that you can detect any double spends that way. But even then: zero-confirmation IS dangerous! – Jannes – 2015-12-04T16:52:45.300
Yes be very carful with zero-confirmations. I'd recommend a third-party service for this, I've personally used both https://www.blockchainwebhooks.com/ and https://www.blockcypher.com/ - Blockcypher has more detail, but BlockchainWebHooks is much more affordable (although both have free plans)
– sizzlecookie – 2018-08-04T14:22:57.677