BlogChain is a decentralized blogging platform built on the Ethereum blockchain. It is the first of its kind to implement the Sign-In with Ethereum authentication protocol, natively in Python using the siwe-py library. On the core, it is built using the Flask web framework. Database management is done using SQLAlchemy.
It supports Ethereum based user authentication, setting username, creating and updating blog posts, and viewing blog posts. On top of that, it supports tipping post authors in order to incentivize blogging.
- Git
- Python 3.8 or higher (tested on 3.11)
- MariaDB/MySQL database
- Ganache or any other Ethereum testnet
-
Clone the repository
git clone https://github.com/Sn1F3rt/BlogChain.git
-
Switch to the project directory
cd BlogChain
-
Create a virtual environment
python -m venv .venv
-
Activate the virtual environment
source .venv/bin/activate
-
Install the dependencies
pip install -r requirements.txt
Copy the config.example.py
file to config.py
and:
- update the
SECRET_KEY
variable with a 32-bit hexadecimal string. - update the
DB_*
variables with your database credentials. - update the
WEB3_PROVIDER
variable with the URL of your Ethereum node.
python launcher.py
gunicorn launcher:app
GNU General Public License v3.0
Copyright © 2024 Sayan "Sn1F3rt" Bhattacharyya