Giter Site home page Giter Site logo

microblocknet's Introduction

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.

microblocknet's People

Contributors

yuriykis avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.