...
Collaborative Learning Program
Engagement Details
Name of Mentee | Riddhi Katarki , Ajitesh Kumar Soni , Abhishek Ranjan , Ashna P S , Sahilsher Singh , Siddhant Prateek Mahanayak |
Evaluation Period | 08-10-2023 to 13-12-2023 |
Task | BiniBFT Framework |
Date Submitted | 14-12-2023 |
Mentor | Dr. Anasuya Threse Innocent |
Consensus Mechanism with Random Polling
...
- Transaction Initiation: The process starts with the client initiating a transaction (Trx initiation). This is where a user or an application requests a transaction to be processed by the network.
- Transaction Batching: After a transaction is initiated, it is grouped with other transactions into a batch (Batched trx) which improves the efficiency of processing multiple transactions together rather than individually.
- Leader Selection: Once transactions are batched, a leader is selected to propose the batch of transactions to the rest of the network. The leader selection is aided by a Verifiable Random Function (VRF), which helps in choosing the leader in a way that is random but verifiable by other participants in the network.
- Transaction Proposal: The leader then proposes the batched transactions (Trx proposal) to the network. This involves sending out the transaction data to other nodes in the network for validation.
- Polling: Concurrently, there is a random polling of 33% of the network. This suggests that a subset of the network is selected randomly to vote on the proposed transactions. The chart indicates that the process waits until 1/3 of the votes are received.
- Transaction Commitment: Once the leader has successfully proposed the transaction and the necessary votes are received, the transaction is committed (Commit Trx) by the network.
- Transaction Settlement: After the transaction is committed, it is then settled (Finalized Finalised Trx), which means it is officially recorded on the blockchain. This completes the process, and the client is informed that the transaction has been finalizedfinalised.
Consensus Mechanism with Time Weighted Voting
- Transaction Initiation: A client starts the process by initiating a transaction.
- Transaction Batching: Transactions are batched together for processing efficiency.
- Leader Selection: A leader is selected through a Verifiable Random Function (VRF) to manage the batched transactions. This ensures randomness and fairness in leader selection.
- Transaction Proposal: The selected leader proposes the batched transactions to the network.
- Time Weighted Voting (Polling):
- The network nodes participate in polling to approve the transaction proposal. This polling uses the Time Weighted Voting mechanism.
- Each node in the network has a weight (w) that increases over time or epochs, representing their tenure in the network.
- Voting Constraints:
- Individual node weight is capped to ensure no single node can dominate the decision due to its longevity (as shown in the second chart, where w(i) <= 0.33 * (network_w)).
- The sum of the weights (sum(w)) from the nodes participating in the polling must be greater than or equal to 51% of the total network weight to reach a decision (sum(w) >= (0.51 * network_w)).
- Transaction Commitment: If the proposal receives enough weighted votes (>= 51% of network weight), the transaction is committed.
- Transaction Settlement: The committed transaction is then finalized and recorded on the blockchain, and the client is notified of the transaction settlement.
Dynamic Leader Allocation Process
- System Load Monitoring: Continuously monitor the system's workload, transaction rate, and processing capacity.
- Load Thresholds: Define load thresholds that trigger dynamic leader allocation. For example, if the transaction rate exceeds a certain threshold, consider allocating additional leaders.
- Leader Availability: Keep track of the availability of leaders in the system. Leaders may be nodes with the capability to propose and manage batches.
- Allocation Trigger: When the system load surpasses the predefined thresholds, initiate the dynamic leader allocation process.
- Leader Selection: Dynamically select additional leaders based on predefined criteria, such as node capabilities, reliability, and current workload.
- Batch Queue Management: If a batch queue exists, distribute the batches among the selected leaders to ensure even workload distribution.
- Concurrency Control: Implement mechanisms for concurrency control to manage interactions between multiple leaders. This may involve synchronisation protocols to maintain consistency.
- Transaction Proposal: Each leader independently proposes its assigned batches to the network for validation.
- Polling and Voting: Continue with the random polling and voting process for each proposed batch, ensuring decentralised agreement on transaction validity.
- Commitment Decision: Based on the voting outcomes for each leader's proposed batches, make a commitment decision for each batch independently.
- Transaction Settlement: Finalise the committed batches and record them on the blockchain.
- Leader Deallocation: Periodically reassess the system load. If the load decreases and additional leaders are no longer required, deallocate the surplus leaders.
...