Transaction propagation tool

4 views
Skip to first unread message

Brooks Boyd

unread,
Jan 18, 2014, 9:40:05 PM1/18/14
to Bitcoin...@googlegroups.com

Sidney, you've talked a few times about wanting a tool that would check network propagation of transactions; I think I'm at a point where that can be built on top of the btc-network module, but I'm curious what you're exactly asking for:

Are you thinking of a tool where you launch it with one transaction hash as argument, and it goes out and finds all the nodes it can and sees how many know of that transaction at that moment (and returns a percentage to you and quits)? Or are you thinking of re-creating blockchain.info's functionality and so you'd need an application that stays connected to the network at all times, and just records timestamps for the first time it sees a transaction, and which peer(s) it came from, and then starts polling other peers to tell if they've seen it yet either? It would then write to some separate database of transaction hash/peer IP/timestamp entries for the results to be tabulated? In that setup, there would probably be a few instance working in tandem, each of them connecting to a different cloud of peers from different machines, to not saturate the network connection of any one box. 

Are either of those the infrastructure you were thinking of, or if not, what exactly are you hoping that tool to do?

Brooks

Sidney Zhang

unread,
Jan 19, 2014, 4:20:58 PM1/19/14
to Bitcoin...@googlegroups.com
Hey Brooks.

I am thinking the former, Where there is a couple of nodes that we run that are connected to the network and will records information on when it first saw the transaction and also track propagation by polling other peers to see if they have seen it.

It will then write into a separate database for tracking these kind of info.

I already have some thoughts on what I would write for these although it would be dependent on the cryptocoin nodes

Brooks Boyd

unread,
Jan 20, 2014, 5:52:14 PM1/20/14
to Bitcoin...@googlegroups.com
Here's something I wrote out over lunch today (who needs to eat?!?) that's my general idea of how this could be accomplished with the existing library pieces: https://github.com/MidnightLightning/btc-poolwatch

Run "app.js" to collect data into a levelDB database, and then "parseDB.js" to analyze it.

It connects to peers and immediately sends them a "mempool" command to get them to dump all the transactions they know, and then sits there waiting for them to send more "inv" messages with new mempool transactions.

How's that look to you?
Brooks

Sidney Zhang

unread,
Jan 22, 2014, 2:29:47 AM1/22/14
to Bitcoin...@googlegroups.com
Haha that looks pretty good.

:P love it.

I am going to start building out this feature in the next week or so definitely going to build on top of your module!
Reply all
Reply to author
Forward
0 new messages