PEPITAS is an EPITA project which was done during the last semester of the preparatory cycle. This cryptocurrency is based on the proof of stake, a newer and more eco-friendly validation consensus (used in Etherum 2.0).
With PEPITAS, you can do whatever a modern proof of stake based money can also do :
- Send money
- Receive money
- Invest on the stake
- Validate transactions
- Earn transactions fees
All of these features are obviously based on a 2048-bits RSA protocol.
- A Linux system (Ubuntu, Arch,...)
- GNU Make
- OpenSSL
- GTK
- Download the last version of the project : PEPITAS-Cryptocurrency.
- Exctract the archive
- Open a terminal in the exctracted directory and type
make
(ormake client
if you just want to execute the client) - Go to the
build
directory - Execute
client.elf
, with an argument : the IP address of an existing client, or without argument if you are the first node of the network
When launched, the client will try to connect to the host you provided as an argument (if provided). In the case where no argument are given to the ELF program, the client will try to etablish a connect with a serverdoor (a node which have executed the program serverdoor.elf
). A serverdoor is a program that provides IP adresses to a node in order to let him have a connection with the corresponding hosts.
NB : serverdoors IP adresses are stored in the HARD_CODED_ADDR
constant in src/core/network/network.c and may not work if Maxence and/or Nathan decide to close the non-localhost serverdoor (currently hosted in a Google Cloud instance). If you really want to use a serverdoor, you also can refactor the HARD_CODED_ADDR
constant and then run the program serverdoor.elf
If you want more information about how the peer-to-peer network or the validation protocol works, you can also read the P2P_PROTOCOL.md or the VALIDATION_PROTOCOL.md documentation.
Also, don't hesitate to check our Doxygen code documentation (web/pdf).
- Nathan RABET, project leader, in charge of the validation protocol and the blockchain implementation.
- Maxence ODEN, in charge of the networking, the multithreading and the cryptographic part of this project.
- Souleymane SENTICI, responsible for the user interface.
- Luca SAINGIER, responsible for the web implementation.