Skip to content

bitcoincore-dev/vanitygen

 
 

Repository files navigation

Docker Usage

install docker

https://docs.docker.com/get-docker/

Build image

docker build github.com/bitcoincore-dev/vanitygen

Build Output

$ docker build github.com/bitcoincore-dev/vanitygen
Sending build context to Docker daemon  691.7kB
Step 1/6 : FROM ubuntu:14.04 as vanitygen
 ---> 6e4f1fe62ff1

...


Step 6/6 : RUN make all
 ---> Using cache
 ---> 3e48f59c0e1e
Successfully built <DOCKER_ID>

VM Usage

docker run -it <DOCKER_ID>
/vanitygen# make help

make help

Usage: make [TARGET]

  make run

  make docker-*

  docker-shell
  docker-build
  docker-rebuild
  docker-clean
  docker-prune

Within VM:
  make all

Example commands:
  make all
  ./vanitygen
  ./vanitygen -k -o KEYS/1BTC.keys 1BTC
  touch KEYS/1SAT.keys
  ./vanitygen -k -o KEYS/1SAT.keys 1SAT


View Keys

  cat KEYS/1BTC.keys

exit the VM

exit

make docker-clean

make docker-clean
# remove created images
Image(s) for "vanitygen:root" removed.

--

I'd like to present a standalone command line vanity address generator called vanitygen.

There are plenty of quality tools to do this right now already. So why use vanitygen? The main reason is that it is fast, more than an order of magnitude faster than the official bitcoin client with the vanity address patch applied. This is despite the fact that it runs on the CPU and does not use OpenCL or CUDA. Vanitygen is also a bit more user-friendly in that it provides feedback on its rate of progress and how many keys it has checked.

Vanitygen is written in C, and is provided in source code form and pre-built Win32 binaries. At present, vanitygen can be built on Linux, and requires the openssl and pcre libraries.

Vanitygen can generate regular bitcoin addresses, namecoin addresses, and testnet addresses.

Vanitygen can search for exact prefixes or regular expression matches.
When searching for exact prefixes, vanitygen will ensure that the prefix is possible, will provide a difficulty estimate, and will run about 30% faster. Exact prefixes are case-sensitive by default, but may be searched case-insensitively using the "-i" option. Regular expression patterns follow the Perl-compatible regular expression language.

Vanitygen can accept a list of patterns to search for, either on the command line, or from a file or stdin using the "-f" option. File sources should have one pattern per line. When searching for N exact prefixes, performance of O(logN) can be expected, and extremely long lists of prefixes will have little effect on search rate. Searching for N regular expressions will have varied performance depending on the complexity of the expressions, but O(N) performance can be expected.

By default, vanitygen will spawn one worker thread for each CPU in your system. If you wish to limit the number of worker threads created by vanitygen, use the "-t" option.

The example below completed quicker than average, and took about 45 sec to finish, using both cores of my aging Core 2 Duo E6600:

$ ./vanitygen 1Love
Difficulty: 4476342
[48165 K/s][total 2080000][Prob 37.2%][50% in 21.2s]                           
Pattern: 1Love
Address: 1LoveRg5t2NCDLUZh6Q8ixv74M5YGVxXaN
Privkey: 5JLUmjZiirgziDmWmNprPsNx8DYwfecUNk1FQXmDPaoKB36fX1o

Currently, it is difficult to import the private key into bitcoin.
Sipa's showwallet branch has a new command called "importprivkey" that accepts the base-58 encoded private key. Vanitygen has been tested to work with that version of bitcoin.

Packages

No packages published

Languages

  • C 98.1%
  • Makefile 1.7%
  • Dockerfile 0.2%