All Projects → PlasmaPower → nano-vanity

PlasmaPower / nano-vanity

Licence: BSD-2-Clause license
A NANO vanity address generator (supports OpenCL)

Programming Languages

c
50402 projects - #5 most used programming language
rust
11053 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to nano-vanity

RaiBlocksWebAssemblyPoW
WebAssembly Nanocurrency PoW implementation
Stars: ✭ 33 (-60.24%)
Mutual labels:  nano, nano-currency
rai
🗿 rai is a pythonic client for interacting with Raiblocks nodes
Stars: ✭ 21 (-74.7%)
Mutual labels:  nano, nano-currency
nano-rs
An implementation of Nano in Rust using Tokio
Stars: ✭ 29 (-65.06%)
Mutual labels:  nano, nano-currency
RaiBlocksPHP
A bunch of PHP methods to build and sign transactions
Stars: ✭ 20 (-75.9%)
Mutual labels:  nano, nano-currency
nanook
Ruby library for making and receiving payments and managing a nano currency node
Stars: ✭ 17 (-79.52%)
Mutual labels:  nano, nano-currency
jNano
A comprehensive Java library for the Nano cryptocurrency.
Stars: ✭ 25 (-69.88%)
Mutual labels:  nano, nano-currency
penguinV
Simple and fast C++ image processing library with focus on heterogeneous systems
Stars: ✭ 110 (+32.53%)
Mutual labels:  opencl
Yune
GPU based framework for writing Raytracers/Pathtracers. (Pronounced as "Yu-nay")
Stars: ✭ 64 (-22.89%)
Mutual labels:  opencl
bandicoot-code
Bandicoot: GPU accelerator add-on for the Armadillo C++ linear algebra library
Stars: ✭ 21 (-74.7%)
Mutual labels:  opencl
learn-gpgpu
Algorithms implemented in CUDA + resources about GPGPU
Stars: ✭ 37 (-55.42%)
Mutual labels:  opencl
CLU
The OpenCL Utility library
Stars: ✭ 18 (-78.31%)
Mutual labels:  opencl
nano-sidebar
Emacs package to have configurable sidebars on a per frame basis.
Stars: ✭ 98 (+18.07%)
Mutual labels:  nano
rectdetect
Realtime rectangle detector with GPGPU
Stars: ✭ 51 (-38.55%)
Mutual labels:  opencl
tensor stream-opencl
An OpenCL backend for TensorStream
Stars: ✭ 26 (-68.67%)
Mutual labels:  opencl
RandomX OpenCL
RandomX OpenCL implementation
Stars: ✭ 26 (-68.67%)
Mutual labels:  opencl
dlprimitives
Deep Learning Primitives and Mini-Framework for OpenCL
Stars: ✭ 65 (-21.69%)
Mutual labels:  opencl
Amplifier.NET
Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code. Write your function in .NET and Amplifier will take care of running it on your favorite hardware.
Stars: ✭ 142 (+71.08%)
Mutual labels:  opencl
memalloy
Memory consistency modelling using Alloy
Stars: ✭ 23 (-72.29%)
Mutual labels:  opencl
linux-workspace
This is the greatest management of all time
Stars: ✭ 19 (-77.11%)
Mutual labels:  nano
MyNanoNinja
The perfect tool for Nano representatives lists and network statistics
Stars: ✭ 33 (-60.24%)
Mutual labels:  nano

nano-vanity

Generate a NANO address with a prefix of your choice. The longer the prefix, the longer it'll take to compute.

Installation

First, setup Rust. The best way to do this is with rustup.

To install nano-vanity from crates.io:

cargo install nano-vanity

To install nano-vanity from source:

cargo install --path .

If you want to enable GPU support, install OpenCL and add --features gpu to the install command.

For a list of nano-vanity options, use nano-vanity --help.

Seed Generation

By default, nano-vanity generates private keys instead of seeds. You can use these in the desktop wallet (they're refered to as adhoc keys), however, most other wallets do not yet support them.

You can generate seeds instead of private keys with --generate-seed. Note that doing so is a bit slower.

To explain the difference between seeds and private keys:

  • Seeds plus an index (1st key, 2nd key, etc) generate a private key. Currently, this project will always use the first index (index 0).
  • A private key generates a public key.
  • Addresses are another way of writing public keys.

Wildcards

You can leave a character up to chance by using . or *.

You can specify that a character must be a number with #.

Using your GPU

This project supports using your GPU to compute the address. This utilizes OpenCL, so you'll need OpenCL installed and working.

To build this project with GPU support, pass cargo --features gpu.

To enable GPU use, use the --gpu (or -g) option. To disable use of your CPU, use --threads 0 (or -t 0).

Intel GPUs are not supported, as in most cases running the code on the integrated GPU is no faster than running it on the CPU.

To change your GPU device, use --gpu-device [index], where [index] is the index of your GPU starting at 0. To change your GPU platform, use --gpu-platform [index].

Testing randomness

To test the randomness of seeds from this program, you can use dieharder (here's an article on it).

Dieharder should not be taken as proof that this program is secure, however, it should be used as evidence, in combination with an examination of the program's source code.

Here's an example of how to run this with dieharder:

nano-vanity --threads 1 --no-progress --limit 0 --simple-output nano_1 | cut -d' ' -f1 | xxd -r -p | dieharder -a -g stdin_input_raw

If you get a weak or failed test, run that test again by passing dieharder -d [test]. While it's statistically unlikely that a test would fail despite nothing being wrong, it can happen, especially given the number of tests dieharder runs.

To be even more careful, you can modify nano-vanity's parameters. The important ones are --simple-output, which makes the output format easily parseable, and -l 0, which generates infinite keys instead of just one.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].