WildDevTools
Wild DevTools
Setup a local environment
- Install Docker
- Add
DEV=1environment variable to thescreenshoterservice indocker-compose.yamlfile. - Run
docker-compose up - Once setup is complete, you may access the app at http://localhost
Proof of work
This have nothing to do with the challenge, we only use this as a rate limiting mechanism. Please work locally untill you are confident you have a working solution.
Before making a request to the /screenshot in production you would have to solve a proof of work puzzle.
To get the puzzle make a GET request to /screenshot and extract the following response headers.
X-PUZZLE- 32 random bytesX-PUZZLE-EXPIRATION- puzzle expiration in secondsX-DIFFICULTY- the minimum number of leading zeros required
To solve the proof of work challenge, you would have to find 16 bytes that when appended to the puzzle and hashed using sha256 produce a hash that start with at least X-DIFFICULTY zeroes.
You do not need to implement this, use the pow/pow.go CLI.
$: go run pow.go <puzzle> <difficulty>
The /pow directory also contains a Dockerfile. If you like to use it from a Docker container, follow the steps below:
cd /pow
docker build . -t pow
docker run pow <puzzle> <difficulty>
Typically, finding the solution should take 10 to 30 seconds. Each solution can only be used once as long as the puzzle have not expire.
Once you have the solution make a GET request to /screenshot with the following headers:
X-PUZZLE- the puzzle you solvedX-PROOF-OF-WORK- the 16 bytes you found in hex format. (This is the output ofpow.goscript)
SmokeScreen
This service have nothing to do with the intended solution of the challenge.
Redis
This service have nothing to do with the intended solution of the challenge.
Writeups
Official
Community
No community writeups yet. Solved it? Share how.
Log in to add a community writeup.