Post
Topic
Board Proje Geliştirme
Merits 1 from 1 user
Re: Bitcoin; Algoritma Üzerine Yöntemler
by
Jupiter_01
on 20/07/2024, 11:59:17 UTC
⭐ Merited by Vispilio (1)
İki kod daha uğraşan arkadaşlara

1. Kod BNB ağındaki sizin tarafınızdan verilen blok aralığındaki blokları tarayarak bakiyesi 0 dan büyük adresleri bir txt dosyasına yazdırır. (Api kullanmadığı için biraz zorlayabilir bazı bloklarda çok fazla adres olmasından kaynaklı)

2. Kon 1. kodda üretilen txt dosyasını hafızaya alıp rasgele private key üretip txt dosyasında bir eşleşmeyle karşılaşırsa başka bir txt dosyasına eşleşen adres ile pk yazdırır....


1. KOD >>>>>>

from web3 import Web3
from web3.middleware import geth_poa_middleware

bsc = Web3(Web3.HTTPProvider('https://bsc-dataseed.binance.org/'))
bsc.middleware_onion.inject(geth_poa_middleware, layer=0)

def check_balance(address):
    balance = bsc.eth.get_balance(address)
    return balance

def get_non_zero_balance_addresses(start_block, end_block):
    non_zero_addresses = set()
   
    for block_num in range(start_block, end_block + 1):
        block = bsc.eth.get_block(block_num, full_transactions=True)
        for tx in block.transactions:
            if tx.to:
                balance = check_balance(tx.to)
                if balance > 0:
                    non_zero_addresses.add((tx.to, Web3.from_wei(balance, 'ether')))
           
            balance = check_balance(tx['from'])
            if balance > 0:
                non_zero_addresses.add((tx['from'], Web3.from_wei(balance, 'ether')))
       
        print(f"Processed block {block_num}/{end_block}")
   
    return non_zero_addresses

def save_to_file(non_zero_addresses, filename='non_zero_balances.txt'):
    with open(filename, 'w') as f:
        for address, balance in non_zero_addresses:
            f.write(f'{address}\n')

def main():
    start_block = 1  # Başlangıç bloğunu belirleyin
    end_block = 3500  # Bitiş bloğunu belirleyin
    non_zero_addresses = get_non_zero_balance_addresses(start_block, end_block)
    save_to_file(non_zero_addresses)
    print(f'{len(non_zero_addresses)} addresses with non-zero balance found and saved to non_zero_balances.txt.')

if __name__ == '__main__':
    main()

2. KOD >>>>

import os
import random
import time
from web3 import Web3
from eth_account import Account

bsc = Web3(Web3.HTTPProvider('https://bsc-dataseed.binance.org/'))

def generate_random_keypair():
    account = Account.create(os.urandom(32))
    return account.key, account.address

def load_addresses(filename='non_zero_balances.txt'):
    addresses = set()
    with open(filename, 'r') as f:
        for line in f:
            if line.startswith('Address:'):
                address = line.split()[1][:-1]
                addresses.add(address)
    return addresses

def save_found_key(address, private_key, filename='found_keys.txt'):
    with open(filename, 'a') as f:
        f.write(f'Address: {address}, Private Key: {private_key}\n')

def main():
    known_addresses = load_addresses()
    print(f'Loaded {len(known_addresses)} known addresses.')

    found = False
    total_attempts = 0
    interval_attempts = 0
    start_time = time.time()

    while not found:
        private_key, address = generate_random_keypair()
        if address in known_addresses:
            print(f'Found a match! Address: {address}, Private Key: {private_key.hex()}')
            save_found_key(address, private_key.hex())
            found = True
        total_attempts += 1
        interval_attempts += 1

        current_time = time.time()
        if current_time - start_time >= 1:
            print(f'{interval_attempts} attempts made in the last second.')
            interval_attempts = 0
            start_time = current_time

        if total_attempts % 1000 == 0:
            print(f'{total_attempts} total attempts made, still searching...')

if __name__ == '__main__':
    main()