Home

ResilientDB - PBFT Commit Algorithm

Allow this article to be a comprehensive introduction into the Practical Byzantine Fault Tolerance Consensus Protocol (PBFT) through the lens of the ResilientDB codebase. We will detail the sequences and algorithms which encompass the protocol and encourage the readers to explore the rigorous math proofs afterwards. The true power of this proto...

Read more

SOLID Principles

In Robert C. Martin’s Design Principles and Design Patterns, he details four signs of a poor architecture1: The first of which is rigidity where one change results in a cascade of subsequent changes in dependent modules. He argues that this design deficiency results in reluctance to fix non-critical fixes due to not knowing when these f...

Read more

ResilientDB - Passing Custom Messages

If you are interested in sending new types of messages from replica -> replica, then do this: Defining Your Message Here will be an example of of new type of message called SCAN_MSG. Each message must be inherited from the class Message. We must define the following pure virtual functions: class ScanMessage : public Message { public: ...

Read more

Virtual Memory

DDR4 Memory [“Courtesy PremiumBeat”]. Have you ever wondered why 32-bit and 64-bit get thrown around and not know what it meant? So too did I. Well the simple answer is that these refer to the amount of memory addressable to a program or more accurately, the computer architectures bit width i.r.t registers and address busses. Now le...

Read more

Concurrency

Assembly Workers [“Courtesy Manufacturing.NET]. First lets begin by defining a piece of system software called the Operating System (OS), which is responsible for orchastrating the sophisticated resource management of a given machine’s hardware as well as providing an abstracted interface for software to be built above. At the time ...

Read more

Web services

Socket Programming Sockets enable Interprocess Communication on same or different machines using TCP/IP protocol suite provided by the operating system. Together, TCP and IP ensure that messages are routed to their correct destination, get from source to destination reliably in the face of failure. Most of the application-level protocols like F...

Read more

ResilientDB - Getting Started

ResilientDB is a permissioned blockchain fabric developed by the developers at the Exploratory Systems Lab at UC Davis. It makes use of the Practical Byzantine Fault Tolerant Consensus Protocol (PBFT) and as a result follows a primary-backup model where each participant identity is known a priori. Clients are to send their requests to the design...

Read more

Code Review Github Workflow with Pull Requests

Git Git is a version control system that can center about a centralized repository called a remote that lives on some server and a set of distrubuted repositories, often on the local machines of each contributer, which retrieve and ammend changes from the remote. Each repository contains snapshots of file content states and directory organizat...

Read more