BlockChat is a university project developed at the National Technical University of Athens aimed at creating a simplified blockchain platform. It allows users to engage in secure and reliable cryptocurrency transactions and message exchanges using a dummy Ethereum-like token called BlockChat Coin (BCC).
BlockChat is dummy-cryptocurrency focusing on transaction handling and block validation using a Proof-of-Stake consensus algorithm. Users can perform secure transactions and message exchanges within a decentralized and distributed environment without the need for a central authority.
- BlockChat Wallet: Each user has a wallet containing BCCs necessary for making transactions and sending messages.
- Transactions: Users can send BCCs or messages to other wallets. Transactions incur a fee, calculated as a percentage of the transaction amount for currency transfers or based on message length.
- Consensus Mechanism: Utilizes a Proof-of-Stake algorithm to validate transactions and form new blocks.
pip install requirements.txt
-
Configure Network Settings:
- Edit
./src/.env
to set theBOOTSTRAP_IP
andBOOTSTRAP_PORT
. - Adjust the prefix for private IPs in the network in
wserve.py line 23
.
- Edit
-
Starting the Application:
- Open a terminal for each node and navigate to the project directory.
- Run the following command to start the BlockChat client:
bash entrypoint.sh TOTAL_NODES BLOCK_CAPACITY
- Replace
TOTAL_NODES
with the number of client nodes, andBLOCK_CAPACITY
with the desired transactions per block capacity.
-
Run Tests:
- Execute the test script to simulate network operations:
bash test_entrypoint.sh TOTAL_NODES BLOCK_CAPACITY [COMPUTE_JUSTICE]
- The
COMPUTE_JUSTICE
parameter (optional) influences initial staking amounts, with a default setting ofFalse
.
- Execute the test script to simulate network operations:
- For containerized setup, please refer to the Docker branch and follow the provided instructions.
BlockChat is released under the MIT License. For more details, see the LICENSE file in this repository.