Happy Wednesday! Hope you are all doing well. Last week, the blockchain team continued focusing on load tests and tuning the network blocks finality. Also, they closed a few PRs and issues on different repos.
The blockchain team fixed a blobber add event error that breaks the unique constraint. This happened due to a bug in distributing block rewards for miners and sharders that still needs fixing. Furthermore, the team made all providers have the same table fields of rewards and total_rewards so that they can be used with go generics to generate rewards/update SQL to simplify the code. Moved provider’s rewards to a common table provider_rewards in order to batch update rewards for all providers.
Previously, the team had to run separated sql to update different provider tables, which are too expensive and slow. Merged more events that slow down the event process: AddAllocations, UpdateAllocations, UpdateChallenges, UpdateBlobberChallenge. Merged AddWriteMarker, AddReadMarker events and use gorm hooks (SQL trigger) to update blobber’s stat info instead of calling another separate SQL to update them. However, even after merging, the stake pool rewards update events were still slow. This is because the items that need updating on each SQL are large, and will grow larger as the increase of the number of miners/sharders, as well as the delegation pools number. This was fixed by implementing randomness in the selection of pools, so rewards are distributed evenly in the long run.
Updates and Merges
Moreover, they merged rewards and penalties updates into one SQL. Fixed duplicate validator_id on adding SQL. Updated blobber. SavedData on adding writeMarker with gorm hooks. Added magicblock readme. Made validator ID uniqueIndex. Removed TimeUnit from storage allocation by using the value from global config instead. Added delegate wallet ID present check to update authorizer, where only the authorizer itself should be allowed to update the authorizer node. Added delete authorizer to check the delegate wallet ID when deleting authorizers node. Turned stake validators as providers in stake pools to differentiate between providers IDs. Fixed blobber update with validator ID. Added wasm html demo. Exposed download blocks on wasm, and added FilePlayer. Exposed SignRequest/VerifySignature on mobile sdk. Added option to stake validator. Updated zcnbridge on wasm. These updates are to ensure the network stability and desired functionality upon launch.
Züs is a high-performance storage platform that powers limitless applications. It’s a new way to earn passive income from storage.