It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
from bit import Key
from bit.format import bytes_to_wif
from tqdm import tqdm
import itertools
import concurrent.futures
import time
i_list = range(1, 1000000)
matching_addresses = []
def batched(iterable, n):
if n < 1:
raise ValueError('n must be at least one')
it = iter(iterable)
while batch := tuple(itertools.islice(it, n)):
yield batch
with open("target.txt", "r") as b_file:
b_addresses = set(b_file.readlines())
def create_address(it):
wif_list = []
addr_list = []
for i in it:
key1 = Key.from_int(i)
wif = bytes_to_wif(key1.to_bytes(), compressed=False)
wif2 = bytes_to_wif(key1.to_bytes(), compressed=True)
wif_list.extend([wif + '\n', wif2 + '\n'])
address = key1.address
addr_list.append(address + '\n')
if address in b_addresses:
matching_addresses.append(address)
with open("wif.txt", "a") as f, open("add.txt", "a") as addr_file:
f.writelines(wif_list)
addr_file.writelines(addr_list)
t1 = time.perf_counter()
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(create_address, batched(i_list, 100))
for matching_address in matching_addresses:
print("Found matching address:", matching_address)
t2 = time.perf_counter()
print('Elapsed time:', t2-t1)
0x80 4000000000000000000000000000000000000000000000000000000000000001 "7f2e39b1"
private key --(ECDSA funtions)--> Public key --(Double Hash functions)--> Hash rmd160 --(Base58 Encode)--> Address
(Public key addtion) New Public key --(Double Hash functions)--> Hash rmd160
key1 == key2
wif = bytes_to_wif(key1.to_bytes(), compressed=False)
wif2 = bytes_to_wif(key1.to_bytes(), compressed=True)
wif_list.append(wif)
wif_list.append(wif2)
for variable in range(start, stop, step):
from bit import Key
from bit.format import bytes_to_wif
from tqdm import tqdm
i = 1
target = 1000000
wif_list = []
addr_list = []
matching_addresses = []
with open("target.txt", "r") as b_file:
b_addresses = set(b_file.read().splitlines())
pbar = tqdm(total=(target - i + 1))
# Calculate WIFs outside the loop
wif_calculator = bytes_to_wif(Key.from_int(i).to_bytes())
wif_compressed_calculator = bytes_to_wif(Key.from_int(i).to_bytes(), compressed=True)
while i <= target:
key1 = Key.from_int(i)
# Use the precalculated WIFs
wif = wif_calculator
wif2 = wif_compressed_calculator
wif_list.extend([wif, wif2])
address = key1.address
addr_list.append(address)
if address in b_addresses:
matching_addresses.append(address)
i += 1
pbar.update(1)
pbar.close()
# Write to disk after the loop
with open("wif.txt", "w") as f, open("add.txt", "w") as addr_file:
f.write("\n".join(wif_list) + "\n")
addr_file.write("\n".join(addr_list) + "\n")
for matching_address in matching_addresses:
print("Found matching address:", matching_address)
key1 == key2
wif = bytes_to_wif(key1.to_bytes(), compressed=False)
wif2 = bytes_to_wif(key1.to_bytes(), compressed=True)
wif_list.append(wif)
wif_list.append(wif2)
for variable in range(start, stop, step):
from bit import Key
from bit.format import bytes_to_wif
from tqdm import tqdm
i = 1
target = 1000000
wif_list = []
addr_list = []
matching_addresses = []
with open("target.txt", "r") as b_file:
b_addresses = set(b_file.read().splitlines())
pbar = tqdm(total=(target - i + 1))
while i <= target:
key1 = Key.from_int(i)
wif = bytes_to_wif(key1.to_bytes(), compressed=False)
wif2 = bytes_to_wif(key1.to_bytes(), compressed=True)
key2 = Key(wif)
key1 == key2
wif_list.append(wif)
wif_list.append(wif2)
address = key1.address
addr_list.append(address)
if address in b_addresses:
matching_addresses.append(address)
i += 1
pbar.update(1)
pbar.close()
# Write to disk after the loop
with open("wif.txt", "w") as f, open("add.txt", "w") as addr_file:
f.write("\n".join(wif_list) + "\n")
addr_file.write("\n".join(addr_list) + "\n")
for matching_address in matching_addresses:
print("Found matching address:", matching_address)