1-Second Finality

Upcoming Milestones

Multi-threaded consensus signature and message processing in leader node; reference implementation: https://github.com/harmony-one/harmony/pull/3239
Upgrade our BLS implementation with faster BLST library; see benchmark https://github.com/AlexiaChen/benchmarks-bls-libs
Only wait for two-third signature quorum in commit phase and accept late commit signatures in next block
Broadcast only block header and the list of txn ids and let validators recompile the txn list
Optimize p2p network to be sharded in connectivity and network topology
Have a gas fee model that deter spamming

Finished Milestones

Reduce reward/cross link logic frequency; Reduced block time of shard 0 to 2s (done)
Verify block in prepare phase and avoid bottleneck of slow verification in commit phase

Week 11/22

  • Integrate extra commit signature in crosslink and update crosslink/block reward accounting logic.
  • Store extra commit signature in data base and reuse stored extra commit in node restart.
  • Add extra data field in consensus protocol buffer message so validators won't miss the data.
  • Fully integrate everything on extra commit signature and successfully tested locally.

Week 11/15

  • Implement extra commit signature logic in consensus module; voting power accounting module; block proposal module.
  • Update crosslink and block reward logic based on the new extra commit signature design.

Week 11/08

  • Design the extra commit signature model and implement extra commit signature block structure hard fork.
  • Discussing with Herumi and blst team on the comparison between the two libs.
  • Work with bounty submitter on beacon chain pruning PR to save validator disk space.

Week 11/01

  • Updated blst base point with Harmony's original base points. Posted further question on blst github for guidance.
  • Consensus performance/timing analysis tool is finished and tested by Garret.

Week 10/25

  • Analyzed consensus bottleneck on block processing and reduced unnecessary processing of blocks through result caching.
  • Figured out how to update the base point for blst library with Ganesha

Week 10/18:

Week 10/11:

  • Change consensus block verification logic: optimistically verify new blocks in prepare phase so it won't be a bottleneck in the commit phase.
  • Add block content in the announce message of the leader
  • Refactor block verification logic as a utility to be used by both announce and prepared message handling in validator node.

Week 10/4:

Week 9/27:

Week 9/6:

Week 8/30: