Research method

From keyspace to verified range.

Every completed range follows a defined lifecycle designed to prevent overlap, preserve evidence and keep private keys local.

1. Puzzle selection

Running openpuzzle run selects the lowest-numbered unsolved puzzle currently available from the coordination service. A participant can choose a specific puzzle explicitly. The public page displays the selected puzzle address, reward, hexadecimal boundaries and aggregate coverage so the research target is visible before any client joins.

2. Random non-overlapping allocation

The server assigns a random interval inside the puzzle keyspace and stores it as a database row with a unique assignment UUID. An interval already assigned or completed is not issued again. Cancelled work is eligible for recycling before fresh space is allocated, and recycled work restarts at the beginning of that interval. Completed ranges remain immutable evidence of prior coverage.

3. Backend-aware sizing without priority

OpenPuzzle uses observed speed to estimate how many keys a backend can test during the target assignment duration. CUDA, OpenCL and CPU workers can therefore receive differently sized intervals. This is an operational calculation, not a ranking system: fast hardware does not move ahead in a queue and slow hardware does not lose the right to receive work.

4. Local execution

The client constructs an explicit engine command containing the public target address, start and end keys, device and benchmark profile. GPU profiles are produced locally. OpenPuzzle tests a broader bounded matrix while respecting a conservative share of available video memory. Engine output is written into a private assignment workspace.

5. Lease and progress

While an assignment runs, the client periodically reports keys checked, checkpoint key and measured MKey/s. Each successful progress message renews the assignment lease. These values let the public statistics represent real activity while avoiding disclosure of private engine output.

6. Completion and cancellation

A clean engine exit is accepted as completed only when the reported checkpoint is consistent with the full assigned range. Failed, cancelled and expired states remain distinct. openpuzzle safestop lets the current range finish and prevents a new claim; openpuzzle stop is reserved for immediate cancellation.

7. Potential solution

A matching key changes the workflow. The client stops automatic execution, exports a protected local wallet record and displays an explicit action notice. Only non-secret assignment metadata may be reported for review. A puzzle is never marked solved automatically; independent blockchain verification is required.