RPC for archival purposes - noncesense-research-lab/archival_network GitHub Wiki
RPC for archival purposes
IsthmusCrypto
Target blocks
The archival nodes caught two different blocks at height 1636647... Let's use this to see what can be fished out via RPC. Here are the two blocks, as recorded in /opt/monerodarchive/archive.log
Orange Version, received at 2018-08-11 15:40:08.404
{"major_version": 7, "minor_version": 7, "timestamp": 1534002002, "prev_id": "a51a2f7e93019a0d5385b4adfa0d238d9a92cd72ae7a15bc03c54e2d099bed2d", "nonce": 6109, "miner_tx": {"version": 2, "unlock_time": 1636707, "vin": [ {"gen": {"height": 1636647}}], "vout": [ {"amount": 4117313238290, "target": {"key": "f05ba6757d6a018018998d582503a046138771d59cdc8c875ffd65ce5fc2fb9d"}}], "extra": [ 1, 97, 155, 0, 104, 55, 19, 206, 98, 234, 93, 95, 120, 197, 226, 241, 124, 170, 166, 141, 14, 52, 85, 87, 2, 76, 49, 230, 85, 155, 239, 21, 119, 2, 8, 3, 182, 96, 16, 82, 253, 252, 0], "rct_signatures": {"type": 0}}, "tx_hashes": [ "dc1c598843d3c2eb4069860cfea566746903844d7157554cbd422de07657a0ed", "5c6016e9612689f1a388b0789ed36a5b01a2ef4ae3902dc7cb1973f996209c57", "e5edac12c561e26fb65f8a03ce1af6f112a767c36f8be900cc7fd4274bf7a630", "20f55c531eccdf5fb91a745da3fa8fb3db670e9b6a9da378f00866d5c257755e", "f1a911e7d20ac218372ed404247394bea999b6522c483b2905a31e7fd4a680a4", "7c519b11c73381bd3a6b048ff5195bd2845f81c414cb93c56169f761177712a2", "cb06133b9612a0bac4cb31f83e51025a8b83dd2f4ca2eded6da69cee0e14a1cd", "0dcffe884a1d08a9021d5cca122c8ca655b6722ea23726d1669fc4d3b84d38b6", "69b63537a3984fcc3277fa80997afe87d8a106f254dde74ec0625836973f77be", "dd099b632afc67f05ac83f8d180e9a269083acb6ea40f0c24da79ca5ac920726"]}
Blue version, received at 2018-08-11 15:41:03.528
{"major_version": 7, "minor_version": 7, "timestamp": 1534002005, "prev_id": "a51a2f7e93019a0d5385b4adfa0d238d9a92cd72ae7a15bc03c54e2d099bed2d", "nonce": 4244652084, "miner_tx": {"version": 2, "unlock_time": 1636707, "vin": [ {"gen": {"height": 1636647}}], "vout": [ {"amount": 4117313238290, "target": {"key": "2251d9c3cd61ccd3e0b01ad67321b178b307d2075922efce71a365b51ff4737f"}}], "extra": [ 1, 78, 247, 54, 65, 107, 44, 157, 83, 85, 157, 211, 14, 253, 181, 105, 237, 69, 167, 109, 23, 97, 123, 125, 189, 137, 203, 126, 74, 60, 210, 1, 80, 2, 8, 4, 195, 207, 124, 82, 253, 252, 0], "rct_signatures": {"type": 0}}, "tx_hashes": [ "dc1c598843d3c2eb4069860cfea566746903844d7157554cbd422de07657a0ed", "5c6016e9612689f1a388b0789ed36a5b01a2ef4ae3902dc7cb1973f996209c57", "e5edac12c561e26fb65f8a03ce1af6f112a767c36f8be900cc7fd4274bf7a630", "20f55c531eccdf5fb91a745da3fa8fb3db670e9b6a9da378f00866d5c257755e", "f1a911e7d20ac218372ed404247394bea999b6522c483b2905a31e7fd4a680a4", "7c519b11c73381bd3a6b048ff5195bd2845f81c414cb93c56169f761177712a2", "cb06133b9612a0bac4cb31f83e51025a8b83dd2f4ca2eded6da69cee0e14a1cd", "0dcffe884a1d08a9021d5cca122c8ca655b6722ea23726d1669fc4d3b84d38b6", "69b63537a3984fcc3277fa80997afe87d8a106f254dde74ec0625836973f77be", "dd099b632afc67f05ac83f8d180e9a269083acb6ea40f0c24da79ca5ac920726"]}
1636647 orange was heard first, but later kicked out when 1636647 blue was released simultaneously with 1636648 blue.
Query by height
Unfortunately, RPC query by height only pulls out the blue copy.
curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block","params":{"height":1636647}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"blob": "0707d586bcdb05a51a2f7e93019a0d5385b4adfa0d238d9a92cd72ae7a15bc03c54e2d099bed2d344000fd02e3f26301ffa7f2630192eaf897ea77022251d9c3cd61ccd3e0b01ad67321b178b307d2075922efce71a365b51ff4737f2b014ef736416b2c9d53559dd30efdb569ed45a76d17617b7dbd89cb7e4a3cd20150020804c3cf7c52fdfc00000adc1c598843d3c2eb4069860cfea566746903844d7157554cbd422de07657a0ed5c6016e9612689f1a388b0789ed36a5b01a2ef4ae3902dc7cb1973f996209c57e5edac12c561e26fb65f8a03ce1af6f112a767c36f8be900cc7fd4274bf7a63020f55c531eccdf5fb91a745da3fa8fb3db670e9b6a9da378f00866d5c257755ef1a911e7d20ac218372ed404247394bea999b6522c483b2905a31e7fd4a680a47c519b11c73381bd3a6b048ff5195bd2845f81c414cb93c56169f761177712a2cb06133b9612a0bac4cb31f83e51025a8b83dd2f4ca2eded6da69cee0e14a1cd0dcffe884a1d08a9021d5cca122c8ca655b6722ea23726d1669fc4d3b84d38b669b63537a3984fcc3277fa80997afe87d8a106f254dde74ec0625836973f77bedd099b632afc67f05ac83f8d180e9a269083acb6ea40f0c24da79ca5ac920726",
"block_header": {
"block_size": 140393,
"depth": 272,
"difficulty": 53198323707,
"hash": "f8b4ada9fcae3fbf14733de543cf917c43bd18d86d2e77539b4a57a822ba08cb",
"height": 1636647,
"major_version": 7,
"minor_version": 7,
"nonce": 4244652084,
"num_txes": 10,
"orphan_status": false,
"pow_hash": "",
"prev_hash": "a51a2f7e93019a0d5385b4adfa0d238d9a92cd72ae7a15bc03c54e2d099bed2d",
"reward": 4117313238290,
"timestamp": 1534002005
},
"json": "{\n \"major_version\": 7, \n \"minor_version\": 7, \n \"timestamp\": 1534002005, \n \"prev_id\": \"a51a2f7e93019a0d5385b4adfa0d238d9a92cd72ae7a15bc03c54e2d099bed2d\", \n \"nonce\": 4244652084, \n \"miner_tx\": {\n \"version\": 2, \n \"unlock_time\": 1636707, \n \"vin\": [ {\n \"gen\": {\n \"height\": 1636647\n }\n }\n ], \n \"vout\": [ {\n \"amount\": 4117313238290, \n \"target\": {\n \"key\": \"2251d9c3cd61ccd3e0b01ad67321b178b307d2075922efce71a365b51ff4737f\"\n }\n }\n ], \n \"extra\": [ 1, 78, 247, 54, 65, 107, 44, 157, 83, 85, 157, 211, 14, 253, 181, 105, 237, 69, 167, 109, 23, 97, 123, 125, 189, 137, 203, 126, 74, 60, 210, 1, 80, 2, 8, 4, 195, 207, 124, 82, 253, 252, 0\n ], \n \"rct_signatures\": {\n \"type\": 0\n }\n }, \n \"tx_hashes\": [ \"dc1c598843d3c2eb4069860cfea566746903844d7157554cbd422de07657a0ed\", \"5c6016e9612689f1a388b0789ed36a5b01a2ef4ae3902dc7cb1973f996209c57\", \"e5edac12c561e26fb65f8a03ce1af6f112a767c36f8be900cc7fd4274bf7a630\", \"20f55c531eccdf5fb91a745da3fa8fb3db670e9b6a9da378f00866d5c257755e\", \"f1a911e7d20ac218372ed404247394bea999b6522c483b2905a31e7fd4a680a4\", \"7c519b11c73381bd3a6b048ff5195bd2845f81c414cb93c56169f761177712a2\", \"cb06133b9612a0bac4cb31f83e51025a8b83dd2f4ca2eded6da69cee0e14a1cd\", \"0dcffe884a1d08a9021d5cca122c8ca655b6722ea23726d1669fc4d3b84d38b6\", \"69b63537a3984fcc3277fa80997afe87d8a106f254dde74ec0625836973f77be\", \"dd099b632afc67f05ac83f8d180e9a269083acb6ea40f0c24da79ca5ac920726\"\n ]\n}",
"miner_tx_hash": "cbc637928a1e26d81c3fbef432019db43831ce0b0f82563b914f982c5f45f523",
"status": "OK",
"tx_hashes": ["dc1c598843d3c2eb4069860cfea566746903844d7157554cbd422de07657a0ed","5c6016e9612689f1a388b0789ed36a5b01a2ef4ae3902dc7cb1973f996209c57","e5edac12c561e26fb65f8a03ce1af6f112a767c36f8be900cc7fd4274bf7a630","20f55c531eccdf5fb91a745da3fa8fb3db670e9b6a9da378f00866d5c257755e","f1a911e7d20ac218372ed404247394bea999b6522c483b2905a31e7fd4a680a4","7c519b11c73381bd3a6b048ff5195bd2845f81c414cb93c56169f761177712a2","cb06133b9612a0bac4cb31f83e51025a8b83dd2f4ca2eded6da69cee0e14a1cd","0dcffe884a1d08a9021d5cca122c8ca655b6722ea23726d1669fc4d3b84d38b6","69b63537a3984fcc3277fa80997afe87d8a106f254dde74ec0625836973f77be","dd099b632afc67f05ac83f8d180e9a269083acb6ea40f0c24da79ca5ac920726"],
"untrusted": false
}
}
Query by hash
Blue block
This became the main chain, so querying it is easy:
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_header_by_hash","params":{"hash":"f8b4ada9fcae3fbf14733de543cf917c43bd18d86d2e77539b4a57a822ba08cb"}}' -H 'Content-Type: application/json'
{
"id": "0",
"jsonrpc": "2.0",
"result": {
"block_header": {
"block_size": 140393,
"depth": 272,
"difficulty": 53198323707,
"hash": "f8b4ada9fcae3fbf14733de543cf917c43bd18d86d2e77539b4a57a822ba08cb",
"height": 1636647,
"major_version": 7,
"minor_version": 7,
"nonce": 4244652084,
"num_txes": 10,
"orphan_status": false,
"pow_hash": "",
"prev_hash": "a51a2f7e93019a0d5385b4adfa0d238d9a92cd72ae7a15bc03c54e2d099bed2d",
"reward": 4117313238290,
"timestamp": 1534002005
},
"status": "OK",
"untrusted": false
}
}
Orange block
This is the original block, that became orphaned when an alternative 1636647 and 1636648 were released later. First we must find its ID:
$ grep 'HEIGHT 1636647' ~/.bitmonero/bitmonero.lo* -A 3
/home/map/.bitmonero/bitmonero.log:HEIGHT 1636647, difficulty: 53198323707
/home/map/.bitmonero/bitmonero.log-block reward: 4.117313238290(4.079570938290 + 0.037742300000), coinbase_blob_size: 94, cumulative size: 140393, 221(2/115)ms
/home/map/.bitmonero/bitmonero.log-2018-08-11 15:40:08.503 [P2P8] INFO blockchain src/cryptonote_core/blockchain.cpp:3693 Height: 1636648 blob: 94 cumm: 140393 p/t: 221 (2/115/0/0/0/1/4/98/0/0/3)ms
/home/map/.bitmonero/bitmonero.log-2018-08-11 15:40:08.514 [P2P6] INFO blockchain.db.lmdb src/blockchain_db/lmdb/db_lmdb.cpp:580 [check_and_resize_for_batch] checking DB size
--
/home/map/.bitmonero/bitmonero.log:2018-08-11 15:41:00.040 [P2P8] INFO global src/cryptonote_core/blockchain.cpp:1563 ----- BLOCK ADDED AS ALTERNATIVE ON HEIGHT 1636647
/home/map/.bitmonero/bitmonero.log-id: <f8b4ada9fcae3fbf14733de543cf917c43bd18d86d2e77539b4a57a822ba08cb>
/home/map/.bitmonero/bitmonero.log-PoW: <5db9c064625aa7c020501fde9efe91a6ccca7c24ebc1ff9576b7c00f00000000>
/home/map/.bitmonero/bitmonero.log-difficulty: 53198323707
--
/home/map/.bitmonero/bitmonero.log:HEIGHT 1636647, difficulty: 53198323707
/home/map/.bitmonero/bitmonero.log-block reward: 4.117313238290(4.079570938290 + 0.037742300000), coinbase_blob_size: 94, cumulative size: 140393, 142(0/54)ms
/home/map/.bitmonero/bitmonero.log-2018-08-11 15:41:00.362 [P2P8] INFO blockchain src/cryptonote_core/blockchain.cpp:3693 Height: 1636648 blob: 94 cumm: 140393 p/t: 142 (0/54/0/0/0/2/3/83/0/0/4)ms
/home/map/.bitmonero/bitmonero.log-2018-08-11 15:41:00.407 [P2P9] INFO net.p2p.msg src/cryptonote_protocol/cryptonote_protocol_handler.inl:1609 [13.125.122.37:37780 INC] Received NOTIFY_RESPONSE_CHAIN_ENTRY: m_block_ids.size()=3, m_start_height=1636646, m_total_height=1636649
--
/home/map/.bitmonero/bitmonero.log:2018-08-11 15:41:00.473 [P2P8] INFO global src/cryptonote_core/blockchain.cpp:1563 ----- BLOCK ADDED AS ALTERNATIVE ON HEIGHT 1636647
/home/map/.bitmonero/bitmonero.log-id: <b4f9a75e797cffe733db05f2d82f9aa97bd72f5211906e4fd8ed765e83123095>
/home/map/.bitmonero/bitmonero.log-PoW: <d90b02a399410dd8199cf71fc678b5c2af3d20339e69d71db740b30d00000000>
/home/map/.bitmonero/bitmonero.log-difficulty: 53198323707
We are looking for block b4f9a75e797cffe733db05f2d82f9aa97bd72f5211906e4fd8ed765e83123095
$ curl -X POST http://127.0.0.1:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_block_header_by_hash","params":{"hash":"b4f9a75e797cffe733db05f2d82f9aa97bd72f5211906e4fd8ed765e83123095"}}' -H 'Content-Type: application/json'
{
"error": {
"code": -32700,
"message": "Parse error"
},
"id": 0,
"jsonrpc": ""
Is this truly a parse error? The syntax is exactly the same for querying the blue block by has and the orange block by has. Can RPC not access alternative blocks? Or is this error incorrectly labeled?