mit-dci / opencx

An open-source cryptocurrency exchange toolkit for implementing experimental exchange features
MIT License
206 stars 66 forks source link

GPU timelock puzzle solver #24

Closed Rjected closed 5 years ago

Rjected commented 5 years ago

Is your feature request related to a problem? Please describe. Currently if I want to run an exchange that is supposed to be front-running resistant, I have to solve a bunch of timelock puzzles in parallel. CPUs are okay at this if they have lots of cores, but since we're doing a lot of the same kind of operation, GPUs might be way better.

Describe the solution you'd like First it would be useful to figure out the latency difference between GMP on the CPU, and whatever is out there for GPUs. If that's way too high (2-3x or so) then this isn't really viable. Also figuring out whether or not GPUs would even help in this scenario is important. If a GPU would help in this scenario and isn't too much worse latency-wise then a package should be written to take advantage of the parallelism on modern graphics cards.

Wesolowski and Pietrzak proof generation on graphics cards might also be useful (the logn space proof strategy), if it makes sense.

Describe alternatives you've considered Another solution to this problem would be figuring out an easy way to distribute the work across multiple machines.

Additional context I know nothing about how graphics cards work or what they're good at, I have just heard they're good at doing things in parallel, and that's sort of what we need.

Rjected commented 5 years ago

Fixed with https://github.com/rjected/cuda-timelock