11 releases (breaking)
Uses old Rust 2015
0.9.0 | Nov 23, 2021 |
---|---|
0.8.0 | May 24, 2020 |
0.7.1 | May 13, 2020 |
0.6.0 | Jan 23, 2020 |
0.3.0 | Mar 31, 2018 |
#8 in #vanity
16KB
186 lines
Stellar Vanity
A simple CLI tool to generate Stellar vanity addresses.
Vanity Address: similar to a vanity license plate, a vanity cryptocurrency address is an address where either the beginning (prefix) or end (postfix) is a special or meaningful phrase. Generating such an address requires work.
Benchmarking
Benchmarking is performed by using criterion.rs via cargo bench
, which executes the benches/benchmark.rs
file.
How can I Benchmark?
Ah, thanks so much! I have limited computing power (if you do too... do not attempt, will likely be long and costly)
git clone https://github.com/robertDurst/stellar-vanity-address-generator.git
cd stellar-vanity-address-generator
cargo bench
Benchmark Configurations:
- as many threads as possible (see note below)
- varied samples per method
- 1 - 3 prefixes
Note: this uses num_cpus::get()
from num_cpus to determine the maximum number of cores availible. If that is not desired, you'll have to dig in and set this number manually... or open a pr if you know how to pass CLI args to cargo bench
:)
How to use library:
use stellar_vanity::vanity_key::AddressGenerator, deserialize_public_key};;
let mut generator: AddressGenerator = Default::default();
let keypair = generator.find(|key| {
let public = deserialize_public_key(key);
// any conditions go here
public.as_str().ends_with("RUST") // e.g. find address with the "RUST" suffix
});
This will continuously loop until a key with the desired properties is found. Once the vanity address is found, a keypair will be returned, which may be deserialized with deserialize_public_key
and deserialize_private_key
respectively. Note, this is a synchronous function.
How to use CLI:
cargo run -- [--postfix=<POSTFIX>] [--prefix=<PREFIX>] [-c=<NUMBER_OF_THREADS>]
Either `--postfix` or `--prefix` option is required, while thread count is optional.
As an example, the following looks for an address ending in pizza with 8 threads:
cargo run -- -c=8 --postfix=pizza
The --prefix
and --postfix
options will search using RegEx expressions. You may need to enclose the expression in quotes when running from the command-line.
The following looks for an address ending in joe with a number before it, using 8 threads:
cargo run -- -c=8 --postfix='[0-9]joe'
Dependencies
~7.5MB
~131K SLoC