Bitcoin Forum
May 17, 2024, 06:44:23 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: The blockchain, charted  (Read 4770 times)
azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 15, 2014, 06:49:23 PM
Last edit: July 25, 2014, 06:07:04 AM by azeteki
 #1

I've recently been playing around with indexing the blockchain and producing some interesting charts.
I thought others may find them useful so I've uploaded them.




More charts can be found at the following link: https://azeteki.github.io/charts

The data was gleaned using a short python script to get historical block data from bitcoind.
This takes a little while but can be updated quickly with new blocks once historical information is indexed.
You can find it on my GitHub page if you are interested.

GitHub link: https://github.com/azeteki/bitcoind-chainstats

roslinpl
Legendary
*
Offline Offline

Activity: 2212
Merit: 1199


View Profile WWW
July 15, 2014, 06:51:46 PM
 #2

Hey!! This is very interesting!

What's is a link to the GitHub??
Edited: I found a link in your profile!

I will take a look at it! It is really cool!


Regards.
azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 15, 2014, 06:59:37 PM
 #3

Hey!! This is very interesting!

What's is a link to the GitHub??
Edited: I found a link in your profile!

I will take a look at it! It is really cool!

Updated the original post with GitHub link.
Note that the gnuplot scripts are not included.
With full output, it will take a few hours and generate a delimited list of information about each block.
You can also get data for a range, e.g. block 300000-301000 if you so wish.

I believe you will need -txindex enabled to get coinbase fee data (it queries the coinbase transaction for each block).
Without that it should report 0 for all related items though I have not tested.

There are likely better programs available to perform the same task, however I like the simplicity of using bitcoind wherever possible.

roslinpl
Legendary
*
Offline Offline

Activity: 2212
Merit: 1199


View Profile WWW
July 15, 2014, 07:02:55 PM
 #4

Hey!! This is very interesting!

What's is a link to the GitHub??
Edited: I found a link in your profile!

I will take a look at it! It is really cool!

Updated the original post with GitHub link.
Note that the gnuplot scripts are not included.
With full output, it will take a few hours and generate a delimited list of information about each block.
You can also get data for a range, e.g. block 300000-301000 if you so wish.

There are likely better programs available to perform the same task, however I like the simplicity of using bitcoind wherever possible.

Yeah.
That's very cool indeed.  A lot of data for data maniacs Smiley

Could you do the same in JavaScript? Smiley

Regards.
azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 15, 2014, 07:04:28 PM
 #5

That's very cool indeed.  A lot of data for data maniacs Smiley

Smiley

Could you do the same in JavaScript? Smiley

Apologies, but I would rather nail myself to a rock, on Mars. Tongue

roslinpl
Legendary
*
Offline Offline

Activity: 2212
Merit: 1199


View Profile WWW
July 15, 2014, 07:07:07 PM
 #6

That's very cool indeed.  A lot of data for data maniacs Smiley

Smiley

Could you do the same in JavaScript? Smiley

Apologies, but I would rather nail myself to a rock, on Mars. Tongue

Ahh ok Smiley

I was asking because I am trying to do something similar in JS and it is not easy Cheesy

One more time thanks for sharing this with us! This is really cool tool!

I hope you plan to do some more good stuff for Bitcoiners in the future!

Regards.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
July 15, 2014, 07:59:01 PM
 #7

Really cool charts!

What's "Average transaction size"? Doesn't seem to be bytes per transaction and I can't think of anything else.
azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 15, 2014, 08:10:45 PM
 #8

Really cool charts!

What's "Average transaction size"? Doesn't seem to be bytes per transaction and I can't think of anything else.

Good question!
I was charting inverse average transaction size. Not so useful!

Updated now.
Calculation: block_size/transactions_in_block.

azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 16, 2014, 03:17:49 AM
 #9

Updated the charts page with individual charts for 2013 and 2014.

I've set the axes to show the most reasonable data, with the exception of coinbase reward which really isn't that interesting otherwise.

You can pick out quite a few instances in which large fees have been paid, presumably by mistake. Oops Sad

dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
July 16, 2014, 06:43:47 PM
 #10

I git cloned the repo today. Am I blind or you're not sharing the gnuplot scripts? I expected a wholly spoon-fed solution Wink.
azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 16, 2014, 11:22:53 PM
 #11

I git cloned the repo today. Am I blind or you're not sharing the gnuplot scripts? I expected a wholly spoon-fed solution Wink.

Consider it me giving you work to do. Wink

I will likely upload the scripts at some point, though I want to slim them down somewhat and ensure they don't break first.

MountainTop
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
July 18, 2014, 10:24:25 AM
 #12

Its worth taking a look.

It will be much better if more information or some analysis is presented along with the charts.
rarkenin
Hero Member
*****
Offline Offline

Activity: 784
Merit: 500



View Profile
July 18, 2014, 11:28:57 AM
 #13

Are the high-up dots in the coinbase reward chart large fees, out of curiosity? Or is it something else I'm not understanding wholly?
phatsphere
Hero Member
*****
Offline Offline

Activity: 763
Merit: 500


View Profile
July 18, 2014, 12:36:57 PM
 #14

Could you do the same in JavaScript? Smiley
if he would have used matplotlib (doesn't look like it) there is https://github.com/jakevdp/mpld3
azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 18, 2014, 01:18:49 PM
 #15

Are the high-up dots in the coinbase reward chart large fees, out of curiosity? Or is it something else I'm not understanding wholly?

Yes. The total coinbase reward (for the most part) will be equal to the block subsidy (50...25...12.5, etc), plus the sum of all fees in the blocks.

Most of the high up dots there represent mistakes or similar, like the ~200BTC fee that ASICMiner mined a while back.

azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 23, 2014, 12:39:11 AM
 #16

Updated and added a chart for the total blockchain size.

In the space of a year we've gone from ~9GB to ~21GB. How time flies!

DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 23, 2014, 12:42:05 AM
 #17

A chart with the size of the UTXO (# of transactions, size or both) would be interesting.  It is the critical resource and anecdotally it appears to grow slower than the overall blockchain but it would be interesting to see.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4172
Merit: 8421



View Profile WWW
July 23, 2014, 01:44:55 AM
 #18

A chart with the size of the UTXO (# of transactions, size or both) would be interesting.  It is the critical resource and anecdotally it appears to grow slower than the overall blockchain but it would be interesting to see.
You mean like? http://bitcoin.sipa.be/pruning-size.png
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 23, 2014, 02:00:06 AM
 #19

A chart with the size of the UTXO (# of transactions, size or both) would be interesting.  It is the critical resource and anecdotally it appears to grow slower than the overall blockchain but it would be interesting to see.
You mean like? http://bitcoin.sipa.be/pruning-size.png

Nice find.  I only wish sipa had continued it through the current block.  Also I assume this is more than just the UTXO (i.e. includes hashes of pruned txns to allow validation of the merkle tree).
azeteki (OP)
Member
**
Offline Offline

Activity: 96
Merit: 10

esotericnonsense


View Profile WWW
July 23, 2014, 02:10:08 AM
 #20

All of my charts have been produced using bitcoind RPC only, no manipulation.

I can't really think of a way of producing a chart like sipa's without reindexing somehow.

If you could get bitcoin core to step through indexing block by block, you could do something like the following...

for i in blockcount:
    index_one_block
    gettxoutsetinfo

My machine is unfortunately too slow for both, really. A reindex would take weeks if not more for me, and gettxoutsetinfo is an extremely slow command to run each time.

Without specialist tools it will have to fall to someone else I'm afraid. Sad

Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!