Author

Topic: Best technical specs to generate millions of keys per second (not mining). (Read 348 times)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
Presumably GPU VPS's are the same to use as a CPU VPS e.g. the same Ubuntu OS. It's just that the hardware specs "behind the scenes" are different. Yes?

That heavily depends on VPS provider you use, few might provide OS with installed tools (GPU Driver, CUDA Toolkit, ML library, etc.) so users can use the VPS immediately.
For example, GPU Rental mention they specifically create image for deep learning, which means GPU driver and it's toolkit/library should be installed already.
jr. member
Activity: 36
Merit: 14
I get around 72M keys/s  GPU mining

~8M with CPU

Thanks for the information.

Is this on your computer or on a VPS? If it's a VPS, please could you let me know the company you use either in this thread or in a PM. Thanks.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Presumably GPU VPS's are the same to use as a CPU VPS e.g. the same Ubuntu OS. It's just that the hardware specs "behind the scenes" are different. Yes?
It might be more difficult to get it to work with the correct drivers (that's how it was on my PC). I have no idea if it works out of the box on a VPS.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
Presumably GPU VPS's are the same to use as a CPU VPS e.g. the same Ubuntu OS. It's just that the hardware specs "behind the scenes" are different. Yes?
For most of the services, the GPU is connected to the server itself. You would be using the server like as if its a normal computer with a GPU inside it. However, you must pass the flag to the programme. (ie. adding a -gpu in the argument).
jr. member
Activity: 36
Merit: 14
Quote
Are you going to have to run at 24/7? On gpurental.com, I see a 7x1080ti rig for $1.35 USD/hour. That's 6.3GKeys/sec. 35 Euro gets you about 28.5 hours, for a total of 646,380 GKeys generated. Your CPU based VPS, assuming best case at 4.5MKeys/sec running for 30 days, gets you 11,664 GKeys generated. At the same price, using the 7x1080Ti rig, you get about 60 times the keys generated.

Note: Generating split key does decrease speeds. I think renting the 7x1080ti rig is much better regardless though. If you can find someone offering the 16XX or 20XX series, it will probably be even better performance/$.

Thank you for the helpful information.

I see my conceptual error. I have been imagining renting a GPU per month as is the case for CPU VPS's. Whereas, one is buying per hour and expecting very quick responses to queries (e.g. billions of keys/s) and thus not using  up very many hours.

Presumably GPU VPS's are the same to use as a CPU VPS e.g. the same Ubuntu OS. It's just that the hardware specs "behind the scenes" are different. Yes?
legendary
Activity: 1932
Merit: 2077
Note: Generating split key does decrease speeds. If you can find someone offering the 16XX or 20XX series, it will probably be even better performance/$.

A trivial way to outsource these computations without decreasing speed is replacing G (the generator of the curve):

https://github.com/JeanLucPons/VanitySearch/blob/master/SECP256K1.cpp

Code:
// Generator point and order
G.x.SetBase16("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798");
G.y.SetBase16("483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8");

Let's do an example. I want to find 1TryMe prefix. I don't have enough resource. B will do the work for me.

First I generate a private key k':
Code:
$ hexdump -n 32 -e '8/4 "%08X"' /dev/urandom
B0F73D115572691C22B4D7AC5266A1D488E607323AABB35AB2896BE2B5204C91

then I compute the corresponding public key G' = k'*G:
Code:
961b9c7b6e08355e6d25924022df6d15c7da7af05ba7bb50f5b8d78a46378f0f 9377f60a859415663417ea79ed6ee83db70ea77bad8e1ad05662c699f4beec1c

and I send only the public key G' to B.

B replaces G with G':

Code:
// Generator point and order
G.x.SetBase16("961b9c7b6e08355e6d25924022df6d15c7da7af05ba7bb50f5b8d78a46378f0f");
G.y.SetBase16("9377f60a859415663417ea79ed6ee83db70ea77bad8e1ad05662c699f4beec1c");

B compiles and runs VanitySearch:
Code:
./VanitySearch -gpu 1TryMe

Pub Addr: 1TryMemMqFG1SWFXJkdCyXm6gFhgc6iMH
Prv Addr: 5JkNnhUQfAJmQpWHv9r9g4YM1SKs4roT5N1okKgrLj1BcoNSYUE
Prv Key : 0x7ddea4bdd3d14030094ddf5aa416b7e979fe5cce58802c1d0a272c1b5f4455ab
Check   : 147homhkTC1xKQVvBjdiYB5Xw3tRg1n2RT
Check   : 1TryMemMqFG1SWFXJkdCyXm6gFhgc6iMH (comp)

and he returns the private (partial) key 0x7ddea4bdd3d14030094ddf5aa416b7e979fe5cce58802c1d0a272c1b5f4455ab
to me.
Important: partial_k*G' = public key  -> 1TryMemMqFG1SWFXJkdCyXm6gFhgc6iMH

but G' = k'*G  then partial_k * k' * G = public key -> t1TryMemMqFG1SWFXJkdCyXm6gFhgc6iMH

then the real private_key is   (partial_k * k') mod n  

Code:
python
>>> n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
>>> k = 0xB0F73D115572691C22B4D7AC5266A1D488E607323AABB35AB2896BE2B5204C91
>>> partial_k = 0x7ddea4bdd3d14030094ddf5aa416b7e979fe5cce58802c1d0a272c1b5f4455ab
>>>
>>> private_key = (partial_k * k) % n
>>> hex(private_key)
'0x7ad1451e53cfb77ccb6e15965fa2af303e762d3895b5508540deb5ff39e010f4'

0x7ad1451e53cfb77ccb6e15965fa2af303e762d3895b5508540deb5ff39e010f4.
legendary
Activity: 2772
Merit: 3284
Renting is probably very inefficient: you can buy a GPU that gives you 10 times more performance for 200 euro:
my GTX 1060 3 GB searches through ~40Mkey/sec.

The 40Mkeys/sec figure is from oclvanitygen. Switching to VanitySearch brings that up to 320MKeys/sec.

Nvidia's 16XX and 20XX series are even better at generating keys. Based off of DaveF's crowdsourced list, a 1650 searches through 500MKeys/sec using VanitySearch for about 160 euros (and the 1650 Super is probably even better as it has the Turing architecture). That's about the half of the speed of my 1080Ti (900MKeys/sec) at about the fifth of the cost.

It is more of a research / curiosity question than trying to find something specific.
I was looking at the difficulty in generating vanity addresses with specific prefixes.
For example (at ~4Mkeys/s)

5 characters case sensitive - starting with a lower case (15,318,045,009 difficulty) - 50% takes about 40 minutes.
6 characters case sensitive - starting with a lower case (888,446,610,539 difficulty) - 50% takes about 36 hours.

So I was simply speculating as to how many Mkeys/s one could generate for a reasonable price. The VPS I use with 6 cores costs 35 euros/month.

Of course, a GPU will cost more - but how many times more? The cheapest GPU (35 cents/h) here (https://gpurental.com/) costs $250/month. The most expensive ($1.35/hour) costs $920/month. However, I don't have the experience to know what the specifications of the GPU actually mean.

Here is a cheaper example at $99/month (https://www.gpuserversrental.com/) using 6 x GTX 1050 2GB.

So they are not hugely expensive though the price ranges far more so than for a CPU-based VPS.


Are you going to have to run at 24/7? On gpurental.com, I see a 7x1080ti rig for $1.35 USD/hour. That's 6.3GKeys/sec. 35 Euro gets you about 28.5 hours, for a total of 646,380 GKeys generated. Your CPU based VPS, assuming best case at 4.5MKeys/sec running for 30 days, gets you 11,664 GKeys generated. At the same price, using the 7x1080Ti rig, you get about 60 times the keys generated.

Note: Generating split key does decrease speeds. I think renting the 7x1080ti rig is much better regardless though. If you can find someone offering the 16XX or 20XX series, it will probably be even better performance/$.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
The VPS I use with 6 cores costs 35 euros/month.
Renting is probably very inefficient: you can buy a GPU that gives you 10 times more performance for 200 euro:
my GTX 1060 3 GB searches through ~40Mkey/sec.

Of course, a GPU will cost more - but how many times more? The cheapest GPU (35 cents/h) here (https://gpurental.com/) costs $250/month. The most expensive ($1.35/hour) costs $920/month. However, I don't have the experience to know what the specifications of the GPU actually mean.
I can't find performance numbers for oclvanitygen on the GPUs in these servers, but I kinda expect it to be cheaper per Mkey/s than CPU-searches.

Note: You should probably still use split-key generation so you don't have to trust the VPS with your private keys.
jr. member
Activity: 36
Merit: 14
Can you share what your trying to find?

A cpu in my experience is about 20 times slower than a gpu. So that's the price difference that makes a gpu server worth it. I've looked for them a while back, but never tested it on a server.

It is more of a research / curiosity question than trying to find something specific.

I was looking at the difficulty in generating vanity addresses with specific prefixes.

For example (at ~4Mkeys/s)

5 characters case sensitive - starting with a lower case (15,318,045,009 difficulty) - 50% takes about 40 minutes.
6 characters case sensitive - starting with a lower case (888,446,610,539 difficulty) - 50% takes about 36 hours.

So I was simply speculating as to how many Mkeys/s one could generate for a reasonable price. The VPS I use with 6 cores costs 35 euros/month.

Of course, a GPU will cost more - but how many times more? The cheapest GPU (35 cents/h) here (https://gpurental.com/) costs $250/month. The most expensive ($1.35/hour) costs $920/month. However, I don't have the experience to know what the specifications of the GPU actually mean.

Here is a cheaper example at $99/month (https://www.gpuserversrental.com/) using 6 x GTX 1050 2GB.

So they are not hugely expensive though the price ranges far more so than for a CPU-based VPS.

hero member
Activity: 1659
Merit: 687
LoyceV on the road. Or couch.
Can you share what your trying to find?

A cpu in my experience is about 20 times slower than a gpu. So that's the price difference that makes a gpu server worth it. I've looked for them a while back, but never tested it on a server.
jr. member
Activity: 36
Merit: 14
I rent a Ubuntu VPS with 6 cores. This is not a dedicated server. Currently I get a speed of about 2.8Mkeys/s.
If you continuously use full CPU on a shared server, chances are your account will be removed at some point.

There's also VanitySearch (Yet another address prefix finder), which is said to be faster, but I haven't tested it by myself yet.

TL;DR: you're going to want to use a GPU. Or, if you're looking for only one or a few specific address prefixes, you could use split key so someone with a decent GPU can generate it for you. If you do this right, it is completely secure, and hiring a few days GPU-time from someone might be cheaper than running vanitygen on CPU for months.

Thank you for your comments.

I am currently using the VanitySearch program. I've tried four such programs and this is the most effective.

Would, in your opinion, using a dedicated CPU VPS be viable? Or is it more "any kind of CPU is a bad idea."

Are there any GPU based VPS that you can recommend? I have looked around and they seem highly expensive.

Would some kind of EC2 type thing work?
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
I rent a Ubuntu VPS with 6 cores. This is not a dedicated server. Currently I get a speed of about 2.8Mkeys/s.
If you continuously use full CPU on a shared server, chances are your account will be removed at some point.

Have you read Vanitygen: Vanity bitcoin address generator/miner [v0.22] yet? You're going to want to use oclvanitygen, running on a GPU. My old laptop does 9 Mkeys/s on it's GPU, but I've seen claims of hundreds of Mkeys/s on modern GPUs.
It's probably going to be difficult to find a VPS with decent GPU.

There's also VanitySearch (Yet another address prefix finder), which is said to be faster, but I haven't tested it by myself yet.

TL;DR: you're going to want to use a GPU. Or, if you're looking for only one or a few specific address prefixes, you could use split key so someone with a decent GPU can generate it for you. If you do this right, it is completely secure, and hiring a few days GPU-time from someone might be cheaper than running vanitygen on CPU for months.
legendary
Activity: 3472
Merit: 10611
What do you think would be the most cost effective way to generate a higher number of Mkeys/s?

it is hard to talk about "cost effectiveness" while all you want to do is generate a vanity address. in other words even if you spend a single satoshi, it is still a high cost!

in any case a more effective way is using a strong GPU instead of CPU and doing it locally. and of course just like miners you could build a rig of GPUs to do the search so that you get a higher "hashrate". and finally the ultimate way is to build an ASIC machine that is designed to perform the specific calculations.
jr. member
Activity: 36
Merit: 14
I hope I have placed this technical question in the correct section. I simply do not know where else to put it.

This is a question about generating vanity addresses (not mining): generating keys until you get the result you want.

I rent a Ubuntu VPS with 6 cores. This is not a dedicated server. Currently I get a speed of about 2.8Mkeys/s.

My understanding is, that in a shared VPS model, the overall CPU and memory are shared across all users. So I have my own IP but the capability of the resources I use depends on what other users are doing (with other IP addresses). That's why my speed can vary (it has been as high as 4.5Mkeys/s and as low as 2.1Mkeys/s).

What do you think would be the most cost effective way to generate a higher number of Mkeys/s?

A dedicated server with a certain number of CPU cores (how many cores?)

And what's the difference between KVM or OpenVZ VPS's? My impression is that KVM is superior but why?

Thank you.
Jump to: