Giter VIP home page Giter VIP logo

pe-checklists's Introduction

Protocol Engineering Checklists

Disclaimer

These checklists are a work in progress, continuously evolving and refined; they are not meant to be exhaustive or intended as a developer guide. For developer guides please refer to developerguides and Maker Protocol 101.

Rationale

The following checklists act as a copilot for protocol engineers, ensuring consistency in crafting and reviewing workflows. These checklists emerged during the review and crafting processes as ways to avoid pitfalls, allowing protocol engineers to focus on more in-depth reviews. Future workflow improvements will be reflected in these checklists.

Checklists

Core Contracts

Spells

Spell Crafting

Spell Review

pe-checklists's People

Contributors

amusingaxl avatar sidestreamcoldmelon avatar naszam avatar 0x3phemeralsoul avatar iamchrissmith avatar the-arbiter avatar zdumitru avatar sidestreamsweatypumpkin avatar

Stargazers

 avatar Javed Khan avatar maryam avatar  avatar Syed Ghufran Hassan avatar manijeh avatar  avatar dzmitry-lahoda avatar fateme avatar Dan avatar Jack McPherson avatar sam bacha avatar Thomas Erhel avatar  avatar steven avatar Adam Stox avatar Eric Siu avatar  avatar 0xYYY avatar Pedro Maia avatar Kurt Barry avatar

Watchers

Christopher Mooney avatar Brian L. McMichael avatar  avatar  avatar  avatar

pe-checklists's Issues

Spell coordination schedule โ€“ improvement proposal

Goal

Schedule with improved accountability

Context

Currently, the part of the crafter checklists is the timeline which not everyone follows and which doesn't explicitly specify responsible parties and their deadlines. Therefore, the proposal is to update the timeline with a schedule that specify deadlines but also account for complex situations and delays.

Assets

Current timeline


Source: https://forum.makerdao.com/t/governance-cadence-improvement/14972

Tasks

  • Make new proposal
  • Discuss
  • Update schedule in the checklists

Outline blocking dependencies on centralised tools (e.g. etherscan)

Goal

Checklists do not enforce processes that are blocked in case a single service is down

Context

Recently, spell team experienced downtime of etherscan, which caused a multi-hour delay in the spell handover and later confusion among delegates on why contract is not verified on etherscan. The delay was resolved by unanimous agreement within the spell team to proceed with an alternative verifier service and later still use etherscan to verify contract and resolve the confusion. Another reason to not depend on a single service is of course security: it's much easier to compromise a single crucial service documented in the process, than try to attack multiple independent services at the same time.

In order to prepare to such events, we should 1) evaluate existing dependencies 2) evaluate potential circumventions 3) proceed with removing dependencies one-by-one.

Todo

  • List existing dependencies found in the checklists / known processes
  • List potential circumventions (general or applicable to each specific dependency)
  • Create first specific issue to remove dependency on etherscan

Update Mainnet spell process (Checklist)

Context

We're targeting mainnet-only spell to be on March 6th: on this spell the new process is used fully, no shortcuts, no exceptions unless security is the issue. Therefore, current process needs to be changed to accommodate the new Tenderly-related checks.

Tasks

  • Update mainnet checklists and processes
  • Add to the current process that cast-on-tenderly is done by the crafter
  • Transfer relevant checks from the goerli cast stage to the mainnet

Remove blocking dependency on etherscan

Goal

Spell process is not blocked in case etherscan is down/not available

Context

As per the parent issue #29, currently there are multiple places in process which refer to etherscan as place to check something. But as etherscan is a centralised tool, we have to expect a possibility that 1) it is down 2) it is compromised and prepare accordingly.

Places where we refer to etherscan

Proposed circumvention

Use multiple different services to verify the source code.

Tasks

  • Extend the verification script
    • Send flattened code to multiple services (potentially using forge verify-contract instead of making raw requests)
    • Ensure requests to services are non-blocking (in case one service is down)
  • Editing checklists
    • Replace "etherscan" with "at least 2 trusted block scanners"
    • Define/refer to a "list of trusted blocks canners" (used by the verification script)
    • Get priority fee from a more decentralised source (or otherwise make it a recommendation)
  • Replace or remove automatic check of the source code

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.