Categorygithub.com/JavaHutt/hashcash
module
0.1.0-alpha
Repository: https://github.com/javahutt/hashcash.git
Documentation: pkg.go.dev

# README

Repository Top Language GitHub go.mod Go version License Coding all night)

Proof of Work server and client

Task description

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

How to run

To run locally, put your config.yaml file in configs directory. Default config file is already presented in repo. You can run server and clint separately with make server and make client commands respectively. You'll also need to run Redis as a store. For deployment, Dockerfiles for both the server, the client and redis is also provided. Run containers with command make up.

Algorithm choice explained

For the "Word of Wisdom" TCP server that employs a Proof of Work (PoW) mechanism to mitigate the risk of DDoS attacks, an efficient and suitable choice of PoW algorithm is crucial. The chosen algorithm is Hashcash. This decision is based on several factors that make Hashcash particularly apt for this application:

  • Simplicity and Efficiency
  • Widely Used and Tested
  • Adjustable Difficulty
  • Statelessness
  • Used by Bitcoin 💰

# Packages

No description provided by the author
No description provided by the author