Skip to content
0o-de-lally edited this page Jan 6, 2022 · 49 revisions

0L Roadmap

Updated: Dec 20 2021

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

Help Requested: Hustle Karma coordinators can turn these actions into Karma Tasks with bounties.

Are you Looking for Documentation?

Documentation Does not exist in the Wiki, it's in the ./ol/documentation folder of the repo.

For a general overview: https://github.com/OLSF/libra#readme

Or visit the documentation folders:

Strategic Priorities (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

Network Reliability

Debugging Dec Incident

  1. Determine what in Diem upstream causes TX Script invariants from leading to resource exhaustion.
    1. Is there something specific to script prologue invariants?
    2. Is keeping the TX in mempool a problem? (patched)
    3. Mempool Resubmissions? (patched)

Upgrade Oracle Refactor

Goal: Upgrade oracle has instability when transactions are submitted concurrently with Upgrade Tick

  1. Upgrades should issue a reconfiguration.
    1. Possibly the Rust code for end of epoch reconfiguration could optionally run upgrades if there are payloads.

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)

Upstream Merge 1.4

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

Redirect Time of Contributors

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.
  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
    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)
Clone this wiki locally