I'm currently developing a Java application which communicates with Geth using JSON-RPC.
I managed to implement something like @rustyx suggested on this thread using an HTTP connection, but it's too slow.
On my machine, the time to retrieve all the transactions for an account in a 1000 blocks range is approximately 100 seconds.
I know Etherscan's API is able to return the last 10'000 transactions made by an account, but you will need a API key and you have limited requests per day. Using an indexer could do the trick, but it's heavy and quite complex to implement.
So, i was wondering, is there any efficient way to retrieve all the transactions for a given account through a series of JSON-RPC requests? Is it possible to implement by myself a eth_listTransactions method? Could using a lower level programming language (like C) reduce the processing time?
Note: With 'addresses' I'm referring to wallet addresses, not contracts addresses.