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.
#!/usr/bin/env python2
import time
import multiprocessing
from pybitcointools import *
def uint256(x):
hexdigits = hex(x)[2:].replace("L", "")
hexdigits = "0"*(64-len(hexdigits)) + hexdigits
binary = hexdigits.decode("hex")
return binary
def make_script(pubkey1, pubkey2):
script = [1, pubkey1, pubkey2, 2, 174]
return serialize_script(script)
def p2sh(script):
return hex_to_b58check(hash160(script), 5)
def _worker_thread(thread_number, total_threads, starting_k, pattern, quit):
print "Worker %d started" % thread_number
k = starting_k + thread_number
total = k
while not quit.is_set():
start = time.time()
pubkey2 = "\x02" + uint256(k)
k += total_threads
redeem_script = make_script(pubkey1, pubkey2)
p2sh_addr = p2sh(redeem_script)
if p2sh_addr[1:].startswith(pattern):
print "Found!"
print "P2SH address: " + p2sh_addr
print "Redeem script: " + redeem_script.encode("hex")
quit.set()
elapsed = time.time() - start
num_checked = k - starting_k
if num_checked % 16384 == thread_number:
print "Worker %d: %d addrs per second, %d checked" % (thread_number, 1.0 / elapsed, num_checked)
privkey = random_key()
pubkey1 = encode_pubkey(privtopub(privkey), "bin_compressed")
pattern = raw_input("Vanity pattern: ")
quit = multiprocessing.Event()
total_processes = multiprocessing.cpu_count()
starting_k = int(encode_pubkey(privtopub(privkey), "hex_compressed")[2:], 16) + 1
for worker_num in range(total_processes):
print "Starting worker %d" % worker_num
process = multiprocessing.Process(target=_worker_thread, args=(worker_num, total_processes, starting_k, pattern, quit))
process.start()
quit.wait()
print("Spend private key: %s" % encode_privkey(privkey, "wif"))
Vanity pattern: P14
Starting worker 0
Starting worker 1
Starting worker 2
Starting worker 3
Worker 0 started
Worker 2 started
Worker 1 started
Worker 3 started
Found!
P2SH address: 3P14KiomBxh3S4QCzztj86E7wi8SQnn314
Redeem script: 512102296c1c6e3acac2d7698a36eb70a5c196cfcc7546c277ff29054281a8be4dd4282102296c1c6e3acac2d7698a36eb70a5c196cfcc7546c277ff29054281a8be4e9d1252ae
Spend private key: 5JFYKkqeku1ytA7p5PSMgRm8Xq3EQGQKsr7nyUUZXns5gvfyV5U