Я использую полный биткойн-узел и имею доступ ко всем блочным файлам (150 ГБ) (мой сервер имеет 32 ГБ ОЗУ и 400 ГБ SSD)
Любая идея, как извлечь биткойн-адреса или хэш-код из блокафайлы (revxxxxx.dat)?
Просто мне нужно найти все использованные адреса биткойнов (поиск дублированных адресов - это нормально)
Это мой код для этого, но он очень медленный и бесполезный
from bitcoin.rpc import RawProxy
for blockheight in xrange(0, 543624):
# Create a connection to local Bitcoin Core node
p = RawProxy()
# Get the block hash of block with height blockheight
blockhash = p.getblockhash(blockheight)
# Retrieve the block by its hash
block = p.getblock(blockhash)
# Element tx contains the list of all transaction IDs in the block
transactions = block['tx']
for txid in transactions:
# Retrieve the raw transaction by ID
try:
raw_tx = p.getrawtransaction(txid)
except:
with open("error.txt", "a") as f:
f.write(str(blockheight) + "," + str(txid) + ",\n" )
continue
# Decode the transaction
decoded_tx = p.decoderawtransaction(raw_tx)
# Iterate through each output in the transaction
for output in decoded_tx['vout']:
try:
with open('hash160.txt', 'a') as file:
file.write(output['scriptPubKey']['asm'].split('OP_HASH160 ')[1].split(' ')[0] + "," + output['scriptPubKey']['addresses'][0] + ",\n")
except:
with open("error.txt", "a") as f:
f.write(str(blockheight) + "," + str(txid) + "," + str(decoded_tx) + ",\n" )