

Show HN: Live Bitcoin Transactions from around the globe in WebGL - ionwake
http://www.earthbit.net
I built this over the weekend.  Any feedback is appreciated.  Please note you will need a WebGL enabled browser.  Thank you for checking it out.<p>--UPDATE-- HN Traffic is strangling earthbit.
There is sporadic downtime due to the web services I am using, if no transactions appear after a few seconds, then please try again in an hour.
======
Terk
There's no way to geolocate bitcoin transactions. Blockchain itself doesn't
store IP addressees. Well-connected nodes like blockchain.info can only detect
the IP address of a node that was first to relay a transaction to their
(blockchain.info's) node. That might be IP of the original sender, but most
likely it's not. Most of the time it's either another well-connected node or
some online wallet.

Explaination: [http://millybitcoin.com/is-ip-address-associated-with-
transa...](http://millybitcoin.com/is-ip-address-associated-with-transaction-
data/)

~~~
ionwake
It is an approximation. The IP addresses are taken from the nearest relays of
each of the transactions. See : [https://blockchain.info/unconfirmed-
transactions](https://blockchain.info/unconfirmed-transactions).

~~~
Terk
This is a P2P network. “Nearest” relay has nothing to do with geographic
neighborhood.

I made IP whois stats of nodes I am currently connected to and they are: 8x
USA (3x NY, 2x Texas, 1x California, 1x Virginia, 1x Georgia), 2x France, 2x
China, 2x Russia, 2x Poland, 2x Switzerland, 1x Czech Republic, 1x Germany, 1x
Portugal, 1x Sweden, 1x New Zealand, 1x Netherlands.

My transaction will be relayed to these nodes and then one of them will be
first to relay it further to blockchain.info - and it's the IP of this lucky
relay node what you'll show. Which one will be the first depends most likely
on [temporary speed of connection between me and relay nodes + processing
speed of relay nodes + temporary speed of connection between relay nodes and
blockchain.info nodes] and such combination will make it semi-random. You will
detect my transaction as being located in NYC or in Beijing or in Paris or
wherever, but it has totally nothing to do with my actual location and calling
it approximation is a misunderstanding.

Or I'll use online wallet in which case it will be even less related to my
geographic location (it will be semi-random based of nodes connected to my
online wallet's server).

What you show is a nice visualization, but it's rather a map of the best-
connected nodes and it has nothing to do with geographic location of senders
of bitcoin transactions.

~~~
ionwake
Thank you for your feedback but it is my understanding that the nearest nodes
will generally be the ones with the least latency Hence the clients node
choice is not "semi-random" \- and thus quite a good indicator of the area in
which the transaction took place. However , as the nearest node is used, the
zoom level is capped, as is the resolution of the map. The visual is meant to
be a relatively "general indicator".

You are right about online wallets. If you use your blockchain wallet, I do
believe the IP of the relay will register as 127.0.0.1, and for this reason I
have them omitted from the presentation.

 __EDIT - everything is going down. I also just uploaded an incorrect older
version which _is_ sending GETs with 127.... _sigh_ give it a few days. Ignore
my last paragraph Thanks again for your feedback and explanation regarding
nodes.

~~~
Terk
> Thank you for your feedback but it is my understanding that the nearest
> nodes will generally be the ones with the least latency

The latency you mention is actually [my latency to relay node] + [relay node
latency to blockchain.info]. I have 20 ms to node A and it has 100 ms to
blockchain.info for a total latency of 120 ms. I have 100 ms to node B and it
has 10 ms to blockchain.info for a total latency of 110 ms. Node B will most
likely relay my transaction to blockchain.info before node A, even if it's
five times “farther” from me (100 ms) than node A (20 ms). The combination of
latencies makes the relaying IP reported by blockchain.info semi-random.

I don't mean to bring you down or criticize. This is a really cool
visualization! It simply visualizes different thing that most people think it
does.

------
spenvo
A curious thing just happened. I enabled WebGL in Safari and visited the site,
after which I saw this -> (screenshot):
[http://imgur.com/yY1vEC8](http://imgur.com/yY1vEC8)

What you're seeing there (behind the globe) is _pieces of my desktop, code in
a text editor, even snippets of another tab open in safari_! How is this even
_remotely_ secure? Would this be possible in other implementations of WebGL or
just Safari's implementation? I understand that it allows for greater access
to your computer's resources, but either way, after this user-experience I'm
far less inclined to include it in future projects.

Original comment: Cool idea, although I kept waiting for additional/contextual
info to load on the globe [a geographic or node-based map; weighted lines
between points (or, wait, that doesn't make sense); a click-to-learn-more on
the transactions themselves, etc.], just something to delve-into that would
make it one-iota more interesting. Either way it's a soothing visualization.

Are the sounds' frequencies tied to the size of the transactions? If so,
that's a great idea -- random-but-informative background noise! Kudos - keep
refining it! (A bunch of 'texture unit not renderable' messages in console.
Tried in Chrome Canary 33.0.1720.0 for Mac version 10.9.)

Tried your other link
[http://www.craftfortress.com/earthbit/index2.html](http://www.craftfortress.com/earthbit/index2.html)
and the textures loaded no problem (I see the map of countries projected on
the globe) -- but transactions aren't loading in now.

~~~
ionwake
I have never had someone be able to load textures but not get transactions
.... perhaps if you had lots of windows open - your IP got temporarily banned
from the geolocation web service? If this is the case it should start working
after an hour timeout.

Sound, Color and Size of the column depend on the transaction size.

I will be adding further information such as wallet address and other
variables in the future. Thanks for your feedback = )

~~~
ionwake
\--Regarding your screenshot--

That is awesome! I do _believe_ that is a video driver malfunction and it
doesn't pose a security risk

~~~
joezydeco
Yeah I'd submit that to /r/glitch_art

~~~
spenvo
I have, and they love it! :)

~~~
joezydeco
Hah! Awesome!

------
lectrick
Latest Chrome on Windows here.

I see the globe and hear the music but I don't see transactions.

I'd recommend disabling the music load for now while HN hits it. It will save
on some unnecessary traffic. You can always re-enable it again in a few days.

~~~
ionwake
Ok the server got flooded with requests and came down - I am just reuploading
a version which uses a different web service.

The PROXY I use for the JSONP request got taken down by the traffic - can
anyone offer a suitable replacement JSONP proxy URL for me ot use? Help would
be greatly appreciated!

------
wereHamster
Textures don't show up on the globe, warnings in the developer console:
[https://gist.github.com/wereHamster/58eb96d184dffd096e3f](https://gist.github.com/wereHamster/58eb96d184dffd096e3f).

~~~
karanbhangui
seems to be broken in chrome on osx, works in safari 7 with webgl enabled.

~~~
ionwake
Problems in Firefox? Try:

URL > about:config , search for WebGL, make sure webgl_enabled parameter is
set to "True".

Still now working? Try this link:
[http://www.craftfortress.com/earthbit/index2.html](http://www.craftfortress.com/earthbit/index2.html)

~~~
mwilcox
I was getting the same issue, just a black globe with no activity. Your second
version here loads the textures but I'm still not seeing any activity. Chrome
33 dev on W8.

Edit: just refreshed, it's working now. Awesome project!

------
m12k
There's a surprisingly large number of bitcoin transactions coming from the
Australian outback, around the area of the Gibbon Desert and Great Sandy
Desert. I'm pretty sure that's a very, very sparsely populated area, so either
there's something wrong with the data, or there's some equipment out there
which is somehow getting geolocated. A secret bitcoin mining operation in the
desert?

------
knowaveragejoe
Is there any definitive way to tell if a transaction is someone exchanging USD
<-> bitcoin on an exchange versus actual trade? I remain unconvinced that
actual _trade_ with bitcoin is growing at an appreciable rate with the current
volatility and deflation.

~~~
ionwake
You want to know which transactions occur that involve merchants? (leaving out
exchanges?)

~~~
knowaveragejoe
Late, but yes. AFAIK there's no way to distinguish such a thing unless the
exchanges use the same wallets for escrow.

------
qt_scientist
Default url doesn't function properly here as well, but I did find a cat. Can
you find it too?

craftfortress link works fine

------
ionwake
I just finished building this "weekend project" yesterday. Please let me know
what you think.

Thank you

~~~
fuj
There is a problem with the Access-Control-Allow-Origin

~~~
ionwake
Yep - my CORS proxy went down - I need another! :(

------
simondlr
This is beautiful. Earth is just black though. Not seeing any countries. Is
this intentional?

~~~
ionwake
Please try the fix I just posted above - thank you.

~~~
simondlr
Thanks. Link 2 works. What's the legend? What's the difference between green,
black and blue stripes?

------
eterm
In firefox I'm getting a globe with the map showing but no transactions
displayed.

~~~
ionwake
The transactions should kick in after about 10 seconds

------
impostervt
Any chance of sharing the source code?

