We found that Restaurants in SouthEast Asia consume 4 times more electricity per square meter as compared to office buildings.
But all the existing solutions in the market target only... commercial buildings?
Alas! I co-founded a startup called Elgo in 2022, which focused on developing algorithms to help restaurants save electricity.
πΈοΈ Check out our website here!
π½οΈ Check out the repository here!
ποΈ Check out our whitepaper here!
Distributed Systems- like Blockchain, Cloud Services, P2P applications, etc. all function on a middleware that is built to be resilient and meet the requirements of a robust system, that appears singular to the user.
Given below is a view of the distributed system middleware that is required to make a functional service like Amazon Web Services, Ethereum, Azure, etc.
The projects listed below target to implement a different section of the above middleware stack.Different systems may communicate at different times, and when this happens, there might be some inconsistency in the ordering of events at the two remote machines. The repository above discusses some key protocols to address this issue using Lamport's scalar and vector clocks.
Additionally, many tasks done in a distributed system require a central-server-like capability to coordinate the events between multiple machines. The above repository also has an implementation of bully algorithm, which is a leader election algorithm based on some consensus among the peers.
πDistributed Mutual Exclusion protocols
Distributed systems sometimes access a part of the memory/ some resource that can only be accessed by atmost one computer at a time. Examples of such sensitive information includes distributed ledgers, shared documents, bank accounts, etc.
The repository above implements three such protocols that are able to manage and grant access to locks to a machine on the network. We also go over an analysis of each of their performance, which has been outlined in the PDF attached.
πFindings report
Traditional DNS systems rely on a hierarchical system of servers which are queries recursively or iteratively. With chord, the DNS system can be implemented over a P2P network, where the nodes in the network themselves can store the data. Moreover, the authoritative server can be found within 1 hop at best, and at worst within 3 hops - offering a significant advantage over legacy DNS systems. The implementation above presents a study of a DNS-Chord implementation in terms of performance, and fault tolerance.
Given above is an implementation of IVY - which is a shared memory system used by researchers at Yale. IVY is an excellent example of how the sequential consistency is implemented in real life, and this repository seeks to analyze it's performance over multiple scenarios described there.
Networks, like most other communication critical systems operate based on a set of rules that are critical to ensuring
- Reliability
- Scalability
- Time sensitivity
The repositories below explore some of the protocols on the network application stack that are able to ensure the above properties.
Messages sent over the internet are divided into packets of information with a fixed number of bytes each. The protocols discussed in the above repository deal with how we can send these packets to ensure that
- whatever is sent is actually received
- an appropriate labelled buffer is maintained so that missing packets are flagged
- resend mechanisms in place at the transport layer to ensure reliable blackbox protocol, to which you send a message, and you can rest easy knowing it has gone through π
The vanilla, the classic, the HTTP protocol itself π Implementation of a simple application that uses the HTTP protocol, using REST API.
DaoNet is inspired by Riot Game's frame sync mechanism through a unified game clock. DaoNet seeks to extend these capabilities to a P2P network, where there is no central server to coordinate the interaction of the peers in the network. It navigates the presence of non-Byzantine faults in a P2P system and accounts for liveness constraint in multiplayer games.