I need some advice. What's the best way for a Windows/.NET developer like me to access blockchain information via a REST/RPC API ?
The server app I'm building does the following on a fairly regular basis:
(1) Looks up all transactions involving a specified Bitcoin address and takes action based on the results, and...
(2) Executes outbound transactions, where the transaction bytes are supplied as a preconfigured hex-formatted byte stream.
Here's what I'm doing now:
There's a web API called Insight. It's used by Block Explorer and documented here at https://blockexplorer.com/api-ref. This is where I'm currently pointing my app. It works really well and seems to handle everything I throw at it but I'm concerned that as my load increases (e.g. peaking at 100 queries/minute or more), at some point the site operator will cut me off.
I've tried to mitigate the problem by finding other sites that support the same API. https://insight.bitpay.com is one. https://chain.localbitcoins.com is another. I put these sites in a text file and my app calls into the API on each site in a round robin fashion.
This works. Still though, I'm now encountering errors from the sites' respective CDNs that sit in front of some of the sites -- presumably because I'm running too many queries.
What's a more scalable solution for me?
I have no problem paying a few hundred bucks per month for an AWS server to run a service on my own -- one that only I would use. I'm not exactly sure how to do this though. The Insight API I'm using now, like much of the Bitcoin world, seems geared toward the Linux/Python crowd -- not old farts like me in the Windows/.NET world. I wouldn't even know how to install it.
I also ran across the RPC API located here at https://en.bitcoin.it/wiki/API_reference_(JSON-RPC). Does anyone have any feedback on it's viability? Would I basically be running my own "node" at that point? I wouldn't mind doing that if it runs on Windows 2016. My needs are simple. I'm not mining or anything like that; Just running tons of queries (max 100/min) and executing transactions (max 10/hr).
Any advice is appreciated.