1 2017-10-16 01:41:54 <ginseng> hi, im trying to decide on a bitcoin python rpc library, and it seems like peter todd's python-bitcoinlib has the most features in addition to just rpc interface. however, the rpc documentation seems to be empty? i can only seem to find rpc documentation for jgarzik's python-bitcoinrpc
 2 2017-10-16 01:42:53 <ginseng> http://python-bitcoinlib.readthedocs.io/en/latest/non_consensus.html#module-bitcoin.rpc
 3 2017-10-16 01:43:01 <ginseng> am i missing something here?
 4 2017-10-16 02:20:30 <Chris_Stewart_5> ginseng: I'm not sure if either those projects are actively maintained anymore
 5 2017-10-16 02:21:59 <esotericnonsense> ginseng: bear in mind that interfacing with RPC using python is trivial; a library isn't really required for most cases (batching is about all I can think of right now)
 6 2017-10-16 02:23:26 <esotericnonsense> you need a http client but, well, tons of maintained http libraries are available, i'm using aiohttp
 7 2017-10-16 02:26:19 <ginseng> yeah true, i could just use python-jsonrpc but supposedly it is inefficient
 8 2017-10-16 02:26:30 <ginseng> whereas python-bitcoinrpc has some optimizations
 9 2017-10-16 02:26:34 <ginseng> https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)#Python
10 2017-10-16 02:27:07 <ginseng> in any case i just got python-bitcoinrpc to work
11 2017-10-16 22:13:06 <ginseng> im building a block explorer and have the following question: why does most of the related info out there suggest syncing it to a database like mysql and then querying the database from the web application? Can't i just directly query the blockchain from python-bitcoinrpc and return this info to client requests?
12 2017-10-16 22:13:19 <ginseng> im curious about the advantages/disadvantages
13 2017-10-16 22:13:44 <ginseng> suggest syncing the blockchain to a database*
14 2017-10-16 22:15:55 <Dizzle> ginseng: it probably depends on what your queries actually are, but you may find things that require multiple calls to the Core RPC daemon just to get what you want, or things that just aren't fast. Core itself is querying it's own databases, which are indexed for very specific things.
15 2017-10-16 22:17:05 <Dizzle> But you absolutely can back your app up with Core RPC daemon. You can load balance your requests to multiple Core daemons if it isn't for wallet operations.
16 2017-10-16 22:18:45 <ginseng> Dizzle: i see. why do u say "if it isn't for wallet operations"? I am also interested in building a wallet as well
17 2017-10-16 22:23:37 <Dizzle> I'm talking specifically about a Core-managed wallet. In this case, load balancing requests to multiple Core nodes would require some kind of syncing of wallet state between those nodes. Not pretty. It tends to be recommended that your app manage its own wallet, but use full nodes to interact with the blockchain and the bitcoin network. The wallet feature built into core is optimized for personal use; I'd recommend running your Core nodes
18 2017-10-16 22:23:37 <Dizzle> with -disablewallet.
19 2017-10-16 22:27:34 <Dizzle> And when I say wallet, I mean a collection of addresses intended to be used for sending, receiving or storing bitcoin by an entity represented in your app (e.g. an account on your app or your app/company itself)
20 2017-10-16 22:32:44 <phantomcircuit> ginseng, because only a limited number of things are indexed
21 2017-10-16 22:33:05 <phantomcircuit> for a block explorer you likely want several hundred gigabytes of indexes
22 2017-10-16 22:46:11 <ginseng> Ah, I didn't realize that. I assumed a static blockchain would be fine but the problem seems to be much more complex. This was helpful for anyone else curious: https://medium.com/@lopp/the-challenges-of-block-chain-indexing-30527cf4bfbd
23 2017-10-16 22:52:48 <Dizzle> That looks like a well-thought-out article. *bookmarks*