|Konrad Bächler f337cea143||1 hour ago|
|bin||1 day ago|
|blockstore||1 month ago|
|config||1 week ago|
|dist||1 month ago|
|docker-compose||1 month ago|
|log||1 month ago|
|schema||1 day ago|
|src||1 hour ago|
|state||1 day ago|
|test||1 hour ago|
|.editorconfig||1 month ago|
|.eslintrc.json||3 weeks ago|
|.gitignore||1 month ago|
|.mocharc.json||1 week ago|
|.nycrc.json||3 weeks ago|
|.prettierrc.json||1 month ago|
|CODE_OF_CONDUCT.md||1 month ago|
|LICENSE||1 month ago|
|README.md||3 days ago|
|package-lock.json||1 day ago|
|package.json||1 day ago|
|tsconfig.json||4 weeks ago|
A blockchain implementation using PBFT (practical byzantine fault tolerance) as a consensus algorithm.
This is fully anonymous ("Privacy-By-Design"), very lightweight, fast, low-energy and permissionless blockchain.
A PBFT consensus algo is very much network bound. The chain gets built by "communication" instead of "computation". Therefore lots of messages are crossing the network.
The peers in the network communicate via websockets. The peers build the tunnels between each other using a secure and efficient "Challenge/Auth" process based on regular asymmetric keys (public/private keys). "Sodium" gets used as the single crypto library - so all crypto-related code is based on solid, very well tested and proven code.
The network itself is permission- and leaderless. Each peer in the network represents a round-based state machine. Each round produces a block. The blocks do have a variable size and blocks are produced on demand.
sudo docker-compose -f docker-compose/i2p-testnet.yml up -d
sudo docker-compose -f docker-compose/i2p-testnet.yml down
This project is alpha. The configuration has to be done in the code. Create a PR and fix it if you like :).
Before you can start the blockchain, the peers have to be configured. Add your local public keys and your local addresses and ports to
src/config.ts (environment variable "P2P_NETWORK").
Install the dependencies (full development environment), use:
To start the blockchain application in verbose developer mode, use:
To delete all local storage files (blockstore), to remove all logs and to rebuild the complete codebase, use:
Unit tests can be executed using:
npm run test
Unit tests contain functional tests and will create some blocks within the local storage. The underlying network (like I2P) must be configured properly (the configuration is Work-In-Progress).
To lint the code, use
npm run lint
On DIVA.EXCHANGE you'll find various options to get in touch with the team.
Talk to us via Telegram https://t.me/diva_exchange_chat_de (English or German).
Your donation goes entirely to the project. Your donation makes the development of DIVA.EXCHANGE faster.
Awesome, thank you!