Есть ли эффективный способ получить последние 200 блоков (BTC, LTC, ETH)?

Я ищу эффективный способ получения последних 200 блоков и возможность получить все транзакции, связанные с адресом. Я хотел бы сделать это для BTC, ETH и LTC. Есть ли способ достичь этого без запуска полного узла для каждого блокчейна? Любой совет поможет. Спасибо!

*Это мой первый пост. Любой совет о том, как написать лучше, также приветствуется. Спасибо.

Ответы (2)

да, вы можете сделать это для биткойнов, используя https://blockchain.info/api

Например, вот пример, как получить все транзакции, связанные с 1ADJqstUMBB5zFquWg19UqZ7Zc6ePCpzLE в последних 200 блоках,

 import urllib2, json def main(blocks_to_check, address): current_block_height = json.load(urllib2.urlopen("https://blockchain.info/q/getblockcount")) for x in xrange(current_block_height - blocks_to_check, current_block_height): block = json.load(urllib2.urlopen("https://blockchain.info/block-height/%d?format=json" %x)) for transaction in block["blocks"][0]["tx"]: if address in str(transaction): print transaction print transaction["hash"] if __name__ == '__main__': main(200, "1ADJqstUMBB5zFquWg19UqZ7Zc6ePCpzLE") 

Биткойн полагается на проверку, а не на доверие. Получение данных только по последним 200 блокам потребует от вас доверия к данным без возможности их проверки. Теперь вы можете запустить обрезанный узел, который будет хранить только последние 550 блоков на диске, но он изначально загружает и проверяет все. К сожалению, запуск сокращенного узла не позволяет вам видеть UTXO (баланс) детали адресов, которыми вы не владеете; вам понадобится полный узел с индексом транзакции и напишите для этого парсер блоков.