Git Product home page Git Product logo

mongochain's People

Contributors

fapaul avatar fawind avatar nstrelow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mongochain's Issues

Mocked Consensus Service

Setup simple mocked consensus service for testing communication and general end2end functionality. This gets replaced by the PBFT consensus service.

Some possible "forced" consensus options:

  • Lowest checksum
  • One hard-coded node broadcasts result
  • [...]

Transaction Backlog

Incoming transaction are put into a backlog. The backlog is then used by the consensus service to get pending transactions.

Message Serialization

Don't use the default Java serialization for Akka messages. This results in bad performance and lots of warnings.

PBFT Consensus Service

To replace #8.

Consensus service using PBFT protocol. This service is used for the inter-committee consensus.

Tasks:

  • Research if there are existing solutions we can use.
  • Implement consensus round.
    • Initially, sketch out outline of the flow.

Add config for running dockerless

  • Configure env vars when running the service locally without docker.
  • This should start a single node with a fault threshold of 0 for local testing.

Cluster Benchmarks

  • Pull logs from all cluster (scp, digital ocean storage?)
  • Webservice for counting community ids and primaries
    • Start id at 0, count up using modulo, first id is primary
  • Add autostart script for cluster nodes
  • Modify test runner to read ips from input file

Dockerized Nodes

Setup node deployments using docker. This allows us to easily run multi node experiments.

PubSub API

Goal: Generic API for sending and receiving messages using PubSub. Messages are serialized objects.

Tasks:

  • Method to broadcast message to topic.
  • Method to subscribe to topic.
    • Should accept a callback function as parameter which gets invoked on incoming messages.
  • Object serialization and deserialization for messages.

Metric Parsing

Parse performance metrics from logs

Things to log:

  • Transaction life-cycle (start, stages, consensus)
  • Queues and Message Box sizes

TODO:

  • Create log events for easy parsing
  • Add pipeline for pulling and unifying logs from docker containers
  • Add scripts for calculating metrics (e.g. average consensus duration, ...)

Resources

Placeholder issue for hosting image resources.

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.