Call for developers: $2m in bounties available

Call for developers: $2m in bounties available

The Fantom Foundation has put up four bounties on Gitcoin for a total of $2,000,000 in DAI as a reward.

Proposal To Optimize Stake Based Emission Speeds

Bounty

$250,000 in DAI

Challenge Description

During the recent network incident, one of the biggest validators slowed down the block emission, causing a second big validator to slow down emission as well. The other validators kept producing blocks, but the two lagging ones were not able to catch up. These two validators are big enough to represent more than 1/3W of stake, and they caused a domino effect that halted new block confirmations.

We want to propose a challenge to the developer community to help us optimize and implement an optimization for emission speeds per validator node, based on stake and validating power, to increase the reliability of the network.

Challenge Requirements

The functional requirements of this challenge are:

Develop an optimized version of go-opera, with a new implementation of staked based emission to be more resistant to network throttling.

Judging Criteria

If multiple valid submissions are received and if scored equally, the winning team will be the one that shipped first.

Link to Gitcoin: https://gitcoin.co/issue/Fantom-foundation/go-opera/57/100024934

Proposal To Decrease Message Overheads

Bounty

$250,000 in DAI

Challenge Description

''The scalability of BFT-based protocols is a major concern. One of the main factors negatively affecting the scalability and performance of BFT-based protocols is that they require n×n broadcast for n replicas (quadratic message complexity). This high communication overhead is to guarantee that consensus will always be reached even after under Byzantine failures. Typically the protocols guarantee that agreement will be reached if the total number of Byzantine nodes is less than a third of the total number of nodes. However, the BFT protocols usually do not distinguish the cases where there are failures.'' [1]

Lachesis aBFT message overhead uses gossip to propagate messages across Byzantine nodes, but also suffers from increased message overhead from failures. We propose a challenge to the developer community to help us reduce message overhead for Lachesis aBFT.

Challenge Requirements

The functional requirements of this challenge are:

  1. Introduce a new implementation of Lachesis aBFT wherein message overheads are smaller.

Judging Criteria

If multiple valid submissions are received and if scored equally, the winning team will be the one that shipped first.

References:

[1] Mohammad M. Jalalzai, Costas Busch, Golden G. Richard III in ''Proteus: A Scalable BFT Consensus Protocol for Blockchains'' https://arxiv.org/pdf/1903.04134

Link to Gitcoin: https://gitcoin.co/issue/Fantom-foundation/go-opera/50/100024930

Proposal To Optimize Gossip Propagation And Routing

Bounty

$500,000 in DAI

Challenge Description

Lachesis aBFT message overhead can cause nodes with lesser hardware specifications to fall behind and bottleneck the network. The core development team wishes to propose to the developer community to optimize gossip propagation and routing in Lachesis aBFT to reduce the load on Byzantine nodes and to increase network robustness through it.

Challenge Requirements

The functional requirements of this challenge are:

  • Optimize Lachesis aBFT to propagate gossip more efficiently, whether it be through different topological ordering or different message routing, etc

Judging Criteria

If multiple valid submissions are received and if scored equally, the winning team will be the one that shipped first.

Link to Gitcoin: https://gitcoin.co/issue/Fantom-foundation/go-opera/52/100024932

Proposal To Implement State Snapshotting And Booting

Bounty

$500,000 in DAI

Challenge Description

State snapshotting and booting allows us to generate a snapshot of the current state of the chain, allowing Fantom to re-start the chain from a fresh genesis upon doing network upgrades, which allows us to reduce state bloat.

We want to propose a challenge to the developer community to help us implement state snapshotting and booting.

Challenge Requirements

The functional requirements of this challenge are:

  • Implement state snapshotting and booting for Fantom Opera Mainnet.

Judging Criteria

If multiple valid submissions are received and if scored equally, the winning team will be the one that shipped first.

Link to Gitcoin: https://gitcoin.co/issue/Fantom-foundation/go-opera/56/100024933