This repository has been archived by the owner on Sep 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 336
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Johan Gustafsson
committed
Mar 11, 2018
1 parent
9ad9c8e
commit 89ed68c
Showing
13 changed files
with
9,203 additions
and
9,397 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,63 @@ | ||
# profanity | ||
Profanity is a high performance (probably the fastest!) vanity address generator for Ethereum. Create cool customized addresses that you never realized you needed! Recieve Ether in style! Wow! | ||
|
||
![Screenshot](/img/screenshot.png?raw=true "Wow! That's a lot of zeros!") | ||
|
||
### Releases | ||
Latest release compiled for 64-bit Windows & Linux can be found [here](https://github.com/johguse/profanity/releases). | ||
|
||
### Disclaimer | ||
Always verify that a private key generated by this program corresponds to the public key printed by importing it to a wallet of your choice. This program like any software might contain bugs and it does by design cut corners to improve overall performance. | ||
|
||
### Usage | ||
``` | ||
usage: ./profanity [OPTIONS] | ||
Basic modes: | ||
--benchmark Run without any scoring, a benchmark. | ||
--zeros Score on zeros anywhere in hash. | ||
--letters Score on letters anywhere in hash. | ||
--numbers Score on numbers anywhere in hash. | ||
Modes with arguments: | ||
--leading <single hex> Score on hashes leading with given hex character. | ||
--matching <hex string> Score on hashes matching given hex string. | ||
Advanced modes: | ||
--leading-range Scores on hashes leading with characters within | ||
given range. | ||
--range Scores on hashes having characters within given | ||
range anywhere. | ||
Range: | ||
-m, --min <0-15> Set range minimum (inclusive), 0 is '0' 15 is 'f'. | ||
-M, --max <0-15> Set range maximum (inclusive), 0 is '0' 15 is 'f'. | ||
Misc: | ||
-s, --skip <index> Skip device given by index. | ||
-w, --work <size> Set OpenCL local work size. [default = 64] | ||
-W, --workmax <size> Set OpenCL maximum work size. [default = 1048576] | ||
Examples: | ||
./profanity --leading f | ||
./profanity --matching dead | ||
./profanity --matching badXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbad | ||
./profanity --leading-range -m 0 -M 1 | ||
./profanity --leading-range -m 10 -M 12 | ||
./profanity --range -m 0 -M 1 | ||
About: | ||
profanity is a vanity address generator for Ethereum that utilizes | ||
computing power from GPUs using OpenCL. | ||
Author: Johan Gustafsson <[email protected]> | ||
Beer donations: 0x000dead000ae1c8e8ac27103e4ff65f42a4e9203 | ||
``` | ||
### Benchmarks | ||
|Model|Clock Speed|Memory Speed|Modified straps|Speed|Time to match eight characters| | ||
|:-:|:-:|:-:|:-:|:-:|:-:| | ||
|R9 290|1150|1400|NO|100 MH/s| ~43 s | ||
|R9 290|1040|1300|NO|91 MH/s| ~47 s | ||
|RX 480|1266|2000|YES|83 MH/s| ~52 s | ||
|RX 580|1366|1750|YES|79 MH/s | ~54 s | ||
|RX 470|1206|1650|YES|72 MH/s| ~60 s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#include "SpeedSample.hpp" | ||
|
||
SpeedSample::SpeedSample(const size_t length) : | ||
m_length(length), | ||
m_lastTime(now()) | ||
{ | ||
|
||
} | ||
|
||
SpeedSample::~SpeedSample() { | ||
|
||
} | ||
|
||
double SpeedSample::getSpeed() const { | ||
double speed = 0; | ||
for( auto & v : m_lSpeeds) { | ||
speed += v / m_lSpeeds.size(); | ||
} | ||
|
||
return speed; | ||
} | ||
|
||
void SpeedSample::sample(const double V) { | ||
const timepoint newTime = now(); | ||
auto delta = std::chrono::duration_cast<std::chrono::milliseconds>(newTime - m_lastTime).count(); | ||
m_lSpeeds.push_back((1000 * V) / delta); | ||
m_lastTime = newTime; | ||
if (m_lSpeeds.size() > m_length) { | ||
m_lSpeeds.pop_front(); | ||
} | ||
} | ||
|
||
SpeedSample::timepoint SpeedSample::now() { | ||
return std::chrono::steady_clock::now(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#ifndef HPP_SPEEDSAMPLE | ||
#define HPP_SPEEDSAMPLE | ||
#include <chrono> | ||
#include <list> | ||
|
||
class SpeedSample { | ||
private: | ||
typedef std::chrono::time_point<std::chrono::steady_clock> timepoint; | ||
|
||
public: | ||
SpeedSample(const size_t length); | ||
~SpeedSample(); | ||
|
||
double getSpeed() const; | ||
void sample(const double V); | ||
|
||
private: | ||
static timepoint now(); | ||
|
||
private: | ||
const size_t m_length; | ||
timepoint m_lastTime; | ||
std::list<double> m_lSpeeds; | ||
}; | ||
|
||
#endif /* HPP_SPEEDSAMPLE */ |
Oops, something went wrong.