Bandwidth payment development timeline

Current timeline is as follows

  • July 13th Alpha 6 with payment packets / transactions being exchanged to settle debts
  • July 27th Alpha 7 with these payments being published to full nodes and the creation of bountyhunters
  • August 10th Beta 1 with issues from these previous releases resolved enough for testnet function.

@kindiana @Jehan lets try and increase the resolution on this some and see what we can spec out in order to accelerate dev.

Alpha 6 Needs

  1. firewall rules (easy)
  2. Reliable creation and sending of payment packets without the retry death loop from last time
  3. The payment packets are actually sanity checked and used to resolve the existing debt balance.
  4. Basic wallet functionality, there’s an eth key, a dummy function to get the balance of that key then management of that balance.
  5. The start of a UI for said basic wallet functionality

Alpha 7 Needs

  1. All transactions are signed and valid to publish
  2. Bounty hunter servers can receive channel states and hold them in memory + compare them to transactions flowing through the system
  3. To throttle people based on nonpayment and events from the blockchain.
  4. We query our own balance and our channels balances on loop and act accordingly, this responds gracefully to various real world issues like intermittent connectivity and infura being down etc.

Beta 1 Needs

  1. Polish on everything to come before it.
  2. User interface elements to manage wallets and balances in a user friendly and actually usable way.

Alpha 7:

  1. We should skip the bounty hunters, instead just doing storage servers like we talked about with @kindiana

  2. Don’t cut people off, just throttle to bootstrapping tier

  3. Not sure what this means

I’m still not sure how storage servers are easier than bounty hunters? I mean I can understand the bounty hunter fee being harder to implement but we can do ‘generous bounty hunters’ for now.

I get the feeling we’re going to need some fiddly edgecase logic to handle connectivity issues while we do payments if/when they arise.