Skip to content
soaresa edited this page Feb 14, 2022 · 49 revisions

0L Roadmap

Updated: Feb 14 2022

This document summarizes all the Eng projects in a human-readable format sorted by priority and objective. See Project board for details on each task: https://github.com/OLSF/libra/projects/6

Looking for the Documentation?

Documentation lives in the ./ol/documentation folder of the repo.

Strategic Priorities Q1 2022 (sorted)

  1. Make Network Reliable
  2. Redirect efforts of volunteers away from operating infrastructure into productive labor
  3. Make Carpe part of security model and participatory
  4. Cross chain interfaces
  5. Catch up to upstream Diem

Network Reliability

Update Error Reporting

  • Revert to the Diem standard of error reporting in Move (requires network upgrade)
  • How to make the the Functional tests useful (change diem_vm/errors)
  • Create 0L error parser in ol/types, to use throughout tooling (including Carpe)

Redirect Time of Contributors

Off-Chain Infrastructure

  1. Rex Testnet:

    1. Identify "managers" of Rex, which will provide nodes
    2. Patch make scripts for deploying Rex
    3. Turn make scripts into Rust programs for starting network
  2. Epoch Archive

    1. Grant more users ability to write to epoch-archive
    2. Patch make tooling

Node Ops Automation

Goal: people have a limited amount of time to spend on 0L. We want to direct those efforts to productive uses. Managing Node downtime is not a productive use.

  1. Documentation on troubleshooting.

    1. People asking repeated questions in Discord. There needs to be an owner for the troubleshooting documentation.
  2. 0L Start reliability

    1. No unwraps that cause panic on 'Node' object
    2. Fetch list of upstream_peers from same list which Carpe uses (may need to rename the field for clarity, needs to be a list of fullnodes, not validator node).
    3. Automatic version numbering on diem-node and other cli tools we publish.

Digital Twin QA

Goal: Testing upgrades is a long and tedious process. This project augments upgrade integration tests to simulate network upgrades on a local swarm, based on snapshots from mainnet.

  1. Fork into local Swarm.
    1. ol/genesis-tools to finalize starting swarm from snapshot, and overwriting the validator set for testing purposes.

Make Carpe Part of the Security Model

Make Whole

Goal: An arithmetic error made payments to Carpe users go down dramatically. The error was fixed, but the protocol didn't account for ways to make the missed payments return to accounts.

  1. Correct the payouts to Carpe Users that were underpaid from epoch 14-50.
    1. Calculate shortfall.
    2. Provision the minting code to be lazily paid out (so it doesn't congest the epoch boundary).
    3. Users must make an affirmative transaction to claim the difference.
    4. Implement the "claim" transaction in txs.
    5. Implement the "claim" ux in Carpe

Carpe Path to Beta

Goal: Carpe is in Alpha mode. Moving to a wider beta release requires reliability and features.

  1. PRIORITY error reliability: every action should have a corresponding human readable error, and UI for the error. Every account action should have a UX to confirm that the action will take place. No silent actions. Carpe being disconnected from a fullnode doesn't show any UI presently. Need a separate interface which shows it cannot connect to the network. https://github.com/OLSF/libra/issues/933
  2. Mac OSX keychain access is being requested after every proof. Users may have mining interrupted and be unaware.
  3. Over the Air upgrades: deploy changes across code
  4. Move repo to /libra: It's too difficult to manage separate repos.
  5. Transfers between accounts which are not slow wallets.
  6. Clearly display when an account is a Slow Wallet, Community Wallet, Validator

Teams/Delegation

Goal: Make Validators into DAOs ("teams"), and decentralize the responsibility and rewards, making Carpe users part of the security model.

  1. Conclude Ratchet algorithm for increasing decentralization threshold.
  2. Finalize Carpe Controllers
  3. Fetch state from chain.
  4. Calculate expected rewards
  5. Submit Transactions for joining or changing Teams

Connect to other chains

Goal: allow assets to flow between chains.

  1. Ethereum Bridge High level definitions: https://docs.google.com/document/d/1jGj4PZSqYMMmOfLnPS-SCZ_hzmUfRt608pfeE_1jKVw

    1. Eth development environment
    2. Eth Merkle solidity POC (from Optics)
    3. Bridge orchestrator POC
    4. Merge Secp and keccak hashes (figure out deployment path)

Upstream Merge v6

Goal: pull in the latest major version changes from Diem. Finalize Merge QA