added bitcoin inflation chart csv generation script
This commit is contained in:
		
							parent
							
								
									426a39022a
								
							
						
					
					
						commit
						3cac5142f1
					
				
							
								
								
									
										63
									
								
								bcinflationchart/bcinflation.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										63
									
								
								bcinflationchart/bcinflation.pl
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/perl
 | 
				
			||||||
 | 
					# 3456789#123456789#123456789#123456789#123456789#123456789#123456789#123456789#
 | 
				
			||||||
 | 
					# bcinflation.pl 20101228 jeffrey paul <sneak@datavibe.net> 
 | 
				
			||||||
 | 
					# 5539 AD00 DE4C 42F3 AFE1  1575 0524 43F4 DF2A 55C2  # please sign!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use strict;
 | 
				
			||||||
 | 
					use warnings qw( all );
 | 
				
			||||||
 | 
					use LWP::Simple;
 | 
				
			||||||
 | 
					use Data::Dumper;
 | 
				
			||||||
 | 
					use HTML::Strip;
 | 
				
			||||||
 | 
					use DateTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# thanks to nullvoid for historical block data
 | 
				
			||||||
 | 
					my $historyurl = 'http://nullvoid.org/bitcoin/difficultiez.php';
 | 
				
			||||||
 | 
					my $growthfactor = 1.0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub main {
 | 
				
			||||||
 | 
						my $hist = fetch_history_data() or die "unable to fetch history!";
 | 
				
			||||||
 | 
						my $block = 0;
 | 
				
			||||||
 | 
						my $totalbc = 0;
 | 
				
			||||||
 | 
						my $perblock = 50;
 | 
				
			||||||
 | 
						my $at = 1231006505; # block zero timestamp
 | 
				
			||||||
 | 
						while ($block < 1500000) { # arbitrary
 | 
				
			||||||
 | 
							$block++;
 | 
				
			||||||
 | 
							$perblock /= 2 unless $block % 210000;
 | 
				
			||||||
 | 
							$at += 60*10/$growthfactor; # estimate block timestamp
 | 
				
			||||||
 | 
							# replace with real data if we have it:
 | 
				
			||||||
 | 
							$at = $hist->{$block} if exists($hist->{$block});
 | 
				
			||||||
 | 
							$totalbc += $perblock;
 | 
				
			||||||
 | 
							if ($block == 210000) {
 | 
				
			||||||
 | 
								print ts2nice($at);
 | 
				
			||||||
 | 
								die;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						unless($block % 21000) {
 | 
				
			||||||
 | 
								print ts2nice($at) . ",";
 | 
				
			||||||
 | 
								print $block . ",";
 | 
				
			||||||
 | 
								print $perblock . ",";
 | 
				
			||||||
 | 
								print $totalbc. ",";
 | 
				
			||||||
 | 
								print "\n";
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub ts2nice { return DateTime->from_epoch( epoch => shift() )->ymd; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub fetch_history_data {
 | 
				
			||||||
 | 
						my $raw = get($historyurl) or die "derp: $!";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						my $clean = HTML::Strip->new()->parse($raw);
 | 
				
			||||||
 | 
						$clean =~ s/Block/\nBlock/g;
 | 
				
			||||||
 | 
						my $out = {};
 | 
				
			||||||
 | 
						foreach my $l (split(/\n+/,$clean)) {
 | 
				
			||||||
 | 
							next unless $l =~ /^Block\s+([0-9]+)\s+was.*at\s+([0-9]+).*Difficulty\:\s+([0-9\.]{3,10}).*$/;
 | 
				
			||||||
 | 
							$out->{$1} = $2;	
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return unless $out->{98784};
 | 
				
			||||||
 | 
						return $out;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1;
 | 
				
			||||||
 | 
					__END__
 | 
				
			||||||
							
								
								
									
										14
									
								
								bitcoin.blockchain/test.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										14
									
								
								bitcoin.blockchain/test.py
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/python2.6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import bsddb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bitcoin_dir = "%s/Library/Application Support/Bitcoin/" % os.environ['HOME']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main(argv):
 | 
				
			||||||
 | 
					    d = bsddb.btopen("%s/blkindex.dat" % bitcoin_dir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    print d.keys()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sys.exit(main(sys.argv))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										19
									
								
								bitcoin.shallow/generate.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								bitcoin.shallow/generate.py
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/python2.6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import urllib
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import json
 | 
				
			||||||
 | 
					import decimal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main(argv):
 | 
				
			||||||
 | 
					    current = fetch_mtgox_orders()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def fetch_mtgox_orders():
 | 
				
			||||||
 | 
					    url = 'https://mtgox.com/code/data/getDepth.php'
 | 
				
			||||||
 | 
					    parsed = json.loads(
 | 
				
			||||||
 | 
					        urllib.urlopen(url).read(),
 | 
				
			||||||
 | 
					        parse_float=decimal.Decimal
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    print repr(parsed)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sys.exit(main(sys.argv))
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user