Block API changes:

V3 - 10324749 (0x9d8b0d)

V4 - 12640761 (0xc0e1f9)

10324748 (block v 0.1a):

{
  "jsonrpc": "2.0",
  "result": {
    "version": "0.1a",
    "prev_block_hash": "714de3c6ecafa435e17c402b490aaf75450fdbea26416828de8bc8d0a918c072",
    "merkle_tree_root_hash": "b6e1a541d450bdd42d9982e8c726f97acf237b11659f5ba93bb5488d6dbe3ffd",
    "time_stamp": 1572256966718809,
    "confirmed_transaction_list": [
      {
        "version": "0x3",
        "from": "hxe5f92c15d0ae0e85da8d84f5691e331a57bd2cc7",
        "to": "cx1b97c1abfd001d5cd0b5a3f93f22cccfea77e34e",
        "timestamp": "0x595f599ef6738",
        "nid": "0x1",
        "stepLimit": "0x2625a00",
        "dataType": "call",
        "value": "0xde0b6b3a7640000",
        "data": {
          "method": "bet_on_numbers",
          "params": {
            "numbers": "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20",
            "user_seed": "showmethemoney"
          }
        },
        "signature": "Je441ohrHcvBSDA2XLqEaBmeKztq9AzpyXbpgeM0u2BmLtTMLl5rtfcBksEUm30WQP/HZgorTyeg+MAeiRElHAA=",
        "txHash": "0xf9711b4a82b0558368a87958a8aef768a5160fe967c4f3eedf7ddbaa12e5a0f1"
      },
      {
        "version": "0x3",
        "from": "hx2b02385b25ae43416f7d969c0a4f63ee18d0ccdb",
        "to": "cx1b97c1abfd001d5cd0b5a3f93f22cccfea77e34e",
        "timestamp": "0x595f599f0ce98",
        "nid": "0x1",
        "stepLimit": "0x2625a00",
        "dataType": "call",
        "value": "0xebec21ee1da40000",
        "data": {
          "method": "bet_on_numbers",
          "params": {
            "numbers": "1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20",
            "user_seed": ""
          }
        },
        "signature": "O5fxNmF/p/d9QxaBdJmgQpJbk1IV9RKTyROBOMeMTkEGU43bCWVu+DSsglhAcsgeBpO2Ac0QzRxiZPuhzh25agE=",
        "txHash": "0x7aae2d62c6d9deee8506b8a9a4c97b249f92a9b14a5c23b9f9f0f32e8f8a6e10"
      }
    ],
    "block_hash": "826616f18d4759243f499c7a1b7a887036a736c5fd56be72ceec24657a915d9a",
    "height": 10324748,
    "peer_id": "hx49d9ad5be7c5b53f5c4429fe3dde1fe61510f12f",
    "signature": "AoxbAr8kH65/gU6b1jpFVvXgGAbtanyWMXTuiA8emnFkN6XKYvJDgaHomMnhDufwgY4V/vLGz2uZq80Tr1xO5QA=",
    "next_leader": "hx49d9ad5be7c5b53f5c4429fe3dde1fe61510f12f"
  },
  "id": 1234
}

10324749 (block v0.3):

{
  "jsonrpc": "2.0",
  "result": {
    "version": "0.3",
    "height": 10324749,
    "signature": "d1PQ4ohfWlcn/rog105s23EcGheynGGXiclfejoBqXAD3Rcr3fdDk2knQSBym1p0tlF2XS0AByP5I1ixkQTNwAA=",
    "prev_block_hash": "826616f18d4759243f499c7a1b7a887036a736c5fd56be72ceec24657a915d9a",
    "merkle_tree_root_hash": "bae3dc17beacd58f8b66cc131397cbc58dd2661dc1cc493b6a904d62246c6eae",
    "time_stamp": 1572256968719354,
    "confirmed_transaction_list": [
      {
        "from": "hx399e2d2ba9a6431f9c35f899fc3c3e9c092f61a5",
        "to": "cx502c47463314f01e84b1b203c315180501eb2481",
        "version": "0x3",
        "nid": "0x1",
        "stepLimit": "0x7a120",
        "timestamp": "0x595f59a0613e8",
        "nonce": "0x1926",
        "dataType": "call",
        "data": {
          "method": "transfer",
          "params": {
            "_to": "hx8bd3a649d5d11b9a5ea0e957a04649343d5ceef1",
            "_value": "0x16345785d8a0000",
            "_data": ""
          }
        },
        "signature": "iX8vez6eeZywslpiXD5y0/eo5DTyY89aGI3nwx9ZXdgVdnyBHgJ0Sko0NHuR78TpEodA/aHVE5wsKhkhrNM7dAA=",
        "txHash": "0xbae3dc17beacd58f8b66cc131397cbc58dd2661dc1cc493b6a904d62246c6eae"
      }
    ],
    "block_hash": "d071ae4d4663bdbe4b5f635399323504edfcb7352b3ca7aabd2486873b6708ba",
    "peer_id": "hx49d9ad5be7c5b53f5c4429fe3dde1fe61510f12f",
    "next_leader": "hx49d9ad5be7c5b53f5c4429fe3dde1fe61510f12f"
  },
  "id": 1234
}

12640761 (block v0.4):

{
    "jsonrpc": "2.0",
    "result": {
        "version": "0.4",
        "height": 12640761,
        "signature": "RdxMfTYw2b4klPcNOoXMAJ6yFpstQapxLF0eJdAucqU3b/fbjpWvZSDt7jQ2kuvRtEO8ITdgiQiNwQH4kQjwfgE=",
        "prev_block_hash": "e1efd9e24fe1015694b86f8a6f1419ebcf17789d76e55914cf442f63948e1b77",
        "merkle_tree_root_hash": "31c7b0c8ef5991c45bd8d0c1318d893001f75b9add334ee224b0b1f2d074dc2d",
        "time_stamp": 1577075893950115,
        "confirmed_transaction_list": [
            {
                "version": "0x3",
                "timestamp": "0x59a57987156a3",
                "dataType": "base",
                "data": {
                    "prep": {
                        "irep": "0x9d895c8fd285833d818",
                        "rrep": "0x28f",
                        "totalDelegation": "0x98babeb11e0b1fc3b8035a",
                        "value": "0x3ebf47965dcda017"
                    },
                    "result": {
                        "coveredByFee": "0x0",
                        "coveredByOverIssuedICX": "0x0",
                        "issue": "0x3ebf47965dcda017"
                    }
                },
                "txHash": "0x565fb7216a66f290d4ab30923467d09414b2cb5f4f7a63d87ec5c035103922bc"
            },
            {
                "version": "0x3",
                "from": "hx4662d951880d909eb1292f13b606fb2fbefa5ac8",
                "to": "cxb0b6f777fba13d62961ad8ce11be7ef6c4b2bcc6",
                "timestamp": "0x59a57986213f0",
                "nid": "0x1",
                "stepLimit": "0x2625a00",
                "dataType": "call",
                "value": "0x1b25ff02a5dba0000",
                "data": {
                    "method": "call_bet",
                    "params": {
                        "upper": "0x4c",
                        "lower": "0x1",
                        "user_seed": "Poker",
                        "side_bet_amount": "0x576e189f04f60000",
                        "side_bet_type": "icon_logo2"
                    }
                },
                "signature": "iVZX/GBkau97h171C1m5gwh/Tuq5H+r5VrXn8jpX51hXXBwFxWep2j6W61fY+MerDDYS261UBMKA3uyAKESFMAE=",
                "txHash": "0xef17034f181e814f3b1323dbf954bc11898263e2634c942be59d640587b1017a"
            }
        ],
        "block_hash": "5ac9e25133e3fede9ee76a0bdc84a6c41cfc7d7d0d8ebf32a9a1db5905590cbf",
        "peer_id": "hxbc9c73670c79e8f6f8060551a792c2cf29a8c491",
        "next_leader": "hxbc9c73670c79e8f6f8060551a792c2cf29a8c491"
    },
    "id": 1234
}

Weird shit from data

need to make materialized views for anything involving timestamps

select left(cast(timestamp as text), 10)::int4 as timestamp_s

to only retain epoch timestamp since resolution changes partway through data