Skip to content

yuriykis/microblocknet

Repository files navigation

Contributors Issues MIT License LinkedIn


Logo

MicroBlockNet

Distributed blockchain application
Report Bug · Request Feature

Important Note

This project is currently under development. It is not ready for production or even testing, so keep your expectations low. Please check back later for updates.

About The Project

MicroBlockNet is a distributed blockchain application consisting of multiple nodes that interconnect in real-time. It is built to ensure redundancy, as nodes periodically attempt to reconnect to unresponsive nodes. If unsuccessful after several attempts, the unresponsive node will be removed from memory.

Features

  • Distributed Nodes: Allows for a highly available network of blockchain nodes.
  • Self-Healing: Nodes constantly monitor the network, attempting to reconnect with any unresponsive peers. If a node remains unresponsive, it will be removed from the active network.
  • Docker Integration: Easily set up your blockchain nodes with Docker.
  • Makefile: A Makefile is provided to simplify the process of building and running the application.
  • Monitoring: A monitoring created based on Prometheus and Grafana is provided to monitor the health of the network.
  • Consul: Consul is used to provide service discovery and health checks for the nodes.
  • Kafka: Kafka is used to provide a distributed message queue for communication between nodes and the gateway. The nodes register themselves in gateway and send messages to Kafka.

Prerequisites

Before you begin, ensure you have the following installed:

  • Docker
  • Docker Compose

Getting Started

  1. Clone the repo
    git clone https://github.com/yuriykis/microblocknet.git
    cd microblocknet
  2. Run the Application If you simply want to run the application:
    make gate
    make kafka
    make node

You can also test the application client by running the following command:

make client

The client will return the new transaction.

  1. You can use Docker Compose to run the application in the background:
    make up

To run in detached mode:

make up-d

This will build the necessary Docker images and start the Docker Compose setup. Once started, your blockchain nodes will be running in Docker containers.

Architecture

MicroBlockNet is designed to be robust and fault-tolerant. The nodes in the system are constantly monitoring the network, ensuring that information is consistent across all active participants. Any node that becomes unresponsive is temporarily quarantined and attempts are made to reconnect. If these attempts fail over a predetermined period, the node is removed from the active roster, ensuring that the network remains healthy.

Contributing

If you would like to contribute to MicroBlockNet, please fork the repository and create a pull request. You can also create an issue if you have any questions or suggestions.

License

Distributed under the MIT License. See LICENSE for more information.

About

A highly available, distributed blockchain application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors