As others have pointed out, this largely depends on what kind of transaction you're verifying. More inputs and more signatures means longer verification, and for pre-SegWit inputs the computational effort actually grows quadratically (see this answer).
However, we can get a helpful estimate by measuring how long it takes to verify the entire Bitcoin blockchain, and divide the total number of transactions by that. The first part has already been done for us by Jameson Lopp in his article Bitcoin Core Performance Evolution.
For his testing, Lopp changes a few configuration parameters:
assumevalid=0
: This removes the performance optimization of skipping verifications of old signatures.
disablewallet=1
: This avoids any wallet related data processing.
- He also uses the
connect
parameter to connect to a single local peer, which removes the unpredictability of public nodes.
As a result, his node is essentially bottlenecked by how fast it can verify transactions, so that should make it a good estimate on transaction verification speed.
These are the hardware specifications of his benchmark PC from 2018:
- Core i7 8700 3.2GHz 6 core CPU
- 32 GB DDR4-2666
- Samsung 960 EVO 1TB M.2 SSD
Bitcoin Core 23.0, the latest version as of now, took 387 minutes to reach block 720,000. The total number of transactions up to that block is 704,935,293. On average, then, it verified about 30,359 transactions per second.
tx/sec
because it would depend on the transaction a lot. One tx could be verified in nanoseconds while another could take a couple of minutes to verify.