/word-of-wisdom

This project is a solution for some interview question on Golang.

Primary LanguageGo

"Word of Wisdom" tcp server (protected from DDOS attacks with the Proof of Work).

Task

Design and implement "Word of Wisdom" tcp server:

  • TCP server should be protected from DDOS attacks with the Prof of Work (https://en.wikipedia.org/wiki/Proof_of_work), the challenge-response protocol should be used.
  • The choice of the POW algorithm should be explained.
  • After Prof Of Work verification, server should send one of the quotes from “word of wisdom” book or any other collection of the quotes.
  • Docker file should be provided both for the server and for the client that solves the POW challenge.

Getting started

Project based on Clean architecture principles.

Requirements:

  • Go 1.19+ installed (to run tests, start server or client without Docker)
  • Docker installed (to run docker-compose)
  • Environment file .env (see example in env.example)
# Run server and client by docker-compose
make run-compose

# Run only server
make run-server

# Run only client
make run-client

# other command - call help
make help

Resources