This is the code that runs the hackthiscontract.io website.
geth --rinkeby (starts ethereum node on the rinkeby test network)source hackthiscontractenv/bin/activate (starts virtualenv)- In dev:
python3 run.py- In prod:waitress-serve run:app geth --rinkeby --rpc --rpccorsdomain "https://remix.ethereum.org"(start JS console and enable remix debugging)
- python3 + pip
- virtualenv
pip3 install -r requirements.txt- Change the paths in
config.pyto match your system.
challenges- Contains the solidity files, abis, and graders for each challenge.static- Website assets. CSS, images, etc.templates- Flask Jinja2 templates for some of the pages on hackthiscontract.tests- Unit tests.
Proxy Pass notes:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Port $server_port;
proxy_pass http://127.0.0.1:8080;
}