Putting the pieces together

Visual learner here who loves diagrams. This is my attempt to put different design scaling ideas together into a single model. Its an election scheduler with three balance tier/buckets for a simple illustration.

Following a transaction (Tx) journey through this model then:

1.) A Tx must come from a valid account. Both MAB and an open POW for new accounts are great ideas. Personally I prefer using POW to open an account. MAB seems like a good solution for right now but I think it will become a decentralized pain in the butt to change in the future. I like the open POW idea since the cost is more abstracted away from the end user. As a result I think updating the POW will be much easier down the road.

2.) Each Tx gets a priority rating (PR) based on a function of balance, time, and amount. The PR determines the bucket queue order. Could be as simple as B * T * A

3.) A new Tx gets added to a corresponding balance tier bucket inside a node mempool. The node mempool consists of checked and unchecked queues. At any point a Tx could be pushed out of the mempool by other higher priority Txs.

4.) Once at the top of the checked queue, the Tx is chosen by the scheduler and pushed to the election voter. The scheduler visits each bucket based on a frequency function influenced by balance. Keeping it simple, the frequency function could be a normal distribution from average account balance. The average account balance could be a special once per week vote nodes do.

5.) The Tx gets voted on by nodes. If election times out (due to possible forks or other complications) the Tx is declined. In this case user sees declined status and must try again (with higher PR due to deltaT).

1 Like