Advertisement
Guest User

bitcoin_block_time_queries

a guest
Jan 12th, 2013
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. -- 1 - general
  2. select
  3. to_timestamp(max(b1.block_nTime)) as last_block_date,
  4. count(*) as blocks_in_db,
  5. avg(round((b1.block_ntime - b2.block_ntime))) as avg_blocktime_seconds,
  6. avg(round((b1.block_ntime - b2.block_ntime) / 60)) as avg_blocktime_minutes
  7. from block b1
  8. inner join chain_candidate cc1 on b1.block_id = cc1.block_id
  9. inner join block b2 on b2.block_id = b1.prev_block_id
  10. inner join chain_candidate cc2 on b2.block_id = cc2.block_id
  11. where
  12. cc1.chain_id = 1 and cc1.in_longest=1
  13. --cc2.chain_id = 1 and cc1.in_longest=1
  14. ;
  15.  
  16.  
  17. -- 2 - single block times by minute histogram
  18. Copy (
  19. select
  20. case when round((b1.block_ntime - b2.block_ntime) / 60) <= -20 then -20 else case when round((b1.block_ntime - b2.block_ntime) / 60) >= 60 then 60 else round((b1.block_ntime - b2.block_ntime) / 60) end end as bin,
  21. count(*)
  22. from block b1
  23. inner join chain_candidate cc1 on b1.block_id = cc1.block_id
  24. inner join block b2 on b2.block_id = b1.prev_block_id
  25. inner join chain_candidate cc2 on b2.block_id = cc2.block_id
  26. where
  27. cc1.chain_id = 1 and cc1.in_longest=1 and
  28. cc2.chain_id = 1 and cc2.in_longest=1
  29. group by bin
  30. ) to '/tmp/block_times.csv' with CSV;
  31. --having round((b1.block_ntime - b4.block_ntime) / 60)
  32.  
  33.  
  34. -- 3 - sequence of 3 blocks in a row
  35. Copy (
  36. select
  37. case when round((b1.block_ntime - b4.block_ntime) / 60) <= -20 then -20 else case when round((b1.block_ntime - b4.block_ntime) / 60) >= 127 then 127 else round((b1.block_ntime - b4.block_ntime) / 60) end end as bin,
  38. count(*)
  39. from block b1
  40. inner join chain_candidate cc1 on b1.block_id = cc1.block_id
  41. inner join block b2 on b2.block_id = b1.prev_block_id
  42. inner join block b3 on b3.block_id = b2.prev_block_id
  43. inner join block b4 on b4.block_id = b3.prev_block_id
  44. where
  45. cc1.chain_id = 1 and cc1.in_longest=1
  46. group by bin
  47. --having round((b1.block_ntime - b4.block_ntime) / 60)
  48. ) to '/tmp/sequence_of_3_times.csv' with CSV;
  49.  
  50.  
  51. -- 3 - sequence of 4 blocks in a row
  52. Copy (
  53. select
  54. case when round((b1.block_ntime - b5.block_ntime) / 60) <= -20 then -20 else case when round((b1.block_ntime - b5.block_ntime) / 60) >= 127 then 127 else round((b1.block_ntime - b5.block_ntime) / 60) end end as bin,
  55. count(*)
  56. from block b1
  57. inner join chain_candidate cc1 on b1.block_id = cc1.block_id
  58. inner join block b2 on b2.block_id = b1.prev_block_id
  59. inner join block b3 on b3.block_id = b2.prev_block_id
  60. inner join block b4 on b4.block_id = b3.prev_block_id
  61. inner join block b5 on b5.block_id = b4.prev_block_id
  62. where
  63. cc1.chain_id = 1 and cc1.in_longest=1
  64. group by bin
  65. --having round((b1.block_ntime - b4.block_ntime) / 60)
  66. ) to '/tmp/sequence_of_4_times.csv' with CSV;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement