Skip to main content

2024-10-11

· One min read

Present​

  • Reached closure on soundness proofs
  • Open Q&A session
  • Preparations for PI7 value demonstration
  • Comprehensive slide deck for future presentations
  • Slide deck for R&D seminar

Future​

  • PI7 value demonstration
  • Oct 21 R&D Seminar

A project's retrospetive

· 6 min read

On the 2nd of October, the Peras team spent some time reflecting on the project and wrote some "post-mortem" thoughts that seem worthwhile to be shared. This post is a summary of these discussions along with a short timeline and possible next steps.

Project's Timeline​

DateEvent
2023-09-29Engineering/Research Peras workshop in Edinburgh - First commits to Peras repository - Revised version of algorithm version
2023-11-20First video update on Peras project - Draft project's charter and form team
2024-02-05Started work on simulation - Started work on Agda Haskell & model
2024-04-09First Team workshop in Paris - "Final" version of algorithm (aka. pre-alpha) for deployment
2024-04-15First version of quickcheck-dynamic and Agda workflow
2024-04-18Technical Report #1 reviewed
2024-06-26Team workshop in Edinburgh - CIP draft started
2024-07-10Relation specification completed - Soundness proofs started
2024-07-15Technical Report #2
2024-08-01Website published
2024-08-14CIP completed, sent for internal review
2024-09-27Conformance tests finalized.
2024-10-02Last Monthly demo
2024-10-21IO R&D seminar

Project Outcomes​

How does the team assess achievement of stated primary and secondary goals (see Modelling Ouroboros Peras document), and production of expected deliverables.

Primary Goals​

GoalAchieved?Comment
Expected impact on transaction settlement time🟢See Technical report
Operational and performance profile🟢See Technical report
Design and architecture of potential solution🟡We did not want to overly restrict implementors but CIP provides a detailed specification

Secondary Goals​

GoalAchieved?Comment
Use the models as formal foundation for publications🔴Remains to be seen, some discussions in progress, but awaiting
Demonstrate use of FM as communication tool between Research and Engineering🟡Was done informally, need more work
Build reusable tools, libraries, and methods🟡Some contributions in progress (q-d, ce-netsim, deltaQ)

Deliverables​

DeliverableCompleted?
An executable formal model of the Ouroboros Peras protocol🟢 code
A prototype of Peras protocol components🟢 code
A tool and a method to validate any implementation🟢 code
A simulation of a network of nodes implementing Peras + simulation results🟢 code code
Appropriate documentation🟢 site
A journal of the whole development process🟢 logbook
Evaluation of the deliverable with respect to the aforementioned goals🟢 reports cip

Final Retrospective Outcome​

During the retrospective we followed a simple "What went well/What went wrong/what to improve" categorisation approach. The following sections list "raw" items that were raised during the meeting:

What went well​

  • Technical reports
  • Agile development: Shifting focus for formal methods from Safety/Liveness proofs, to Voting string analysis to soundness property of test model
  • Monthly wrap-up sessions with external stakeholders worked great. As well as the monthly videos
  • Project is at the finish line
  • Good complementary mix of skills on the team.
  • Feedbacks between research, formalization, simulation, analysis, and testing
  • Shared a lot of information and insights
  • Literate Agda and drawing on tech reports worked well for the CIP.
  • We avoided over-engineering and other activities that had low value added for providing evidence about the protocol It was good to stop at SRL 4.
  • Good synergy w/in team
  • Very productive workshops

What went wrong (or not so well)​

  • Not much interest from the community + FUD & persistent misconceptions blurred the message
  • Not sure Agda effort really pays off
  • Handing over to IOE / Intersect isn't as easy as planned
  • quickcheck-dynamic's methodology is misaligned with conformance testing of protocol implementation
  • agda2hs and the Agda -> Haskell workflow are not sufficiently robust for use on the critical path
  • Intersect wasn't ready to ingest results of the innovation stream.
  • Soundness property proof is not yet finished / under-estimated proof effort
  • Having both, the Haskell.Prelude as well as the Agda stdlib in the same project is a big hassle - decided too late in the project to have only one
  • Could have started with the CPS

What to improve​

  • Start from the beginning: "quantify" use cases
  • Draw in folks outside of the team for some QA and review activities
  • Start with CPS that can be shared with the community to get feedback
  • Innovation role within the Intersect WGs
  • Define early on what flavor of conformance tests are needed
  • Write the CPS at the start and then start writing the CIP much sooner, because it highlights missing tasks early on.
  • Redefined BRLs to fit innovation
  • Use the formal language for the specification initially and do the proofs later, off of the critical path.
  • And Test generators should be written in the formal language.
  • Tighter feedback loop (smaller more focused questions)
  • Pairing / code review sessions for Agda
  • Lessons learnt about DeltaQ

Next Steps​

Project is entering maintenance mode following the last Demo & Review meeting. As follow-up steps, we plan to:

  1. Run an "Agda Retrospective" in Longmont
    • Reflect on different approaches used by different projects
    • Provide future guidelines about Formal Methods workflow w/in Innovation streams
    • Nudge people and teams to converge towards reasonably standardised methodology and tools (training, sharing libs, …)
  2. Clarify boundaries of Innovation projects
    • What's the right input for innovation projects, or combination of inputs? Research papers, CPS, business requirements?
    • What are the right artifacts to handoff the project at completion?
    • Define a handover to IOE/Intersect process
    • Beware of the danger to be pulled into a production mindset
  3. Three months chartering
    • More aggressive pruning of Question/Answer cycle within (and across?) innovation projects
    • "If we don't cancel anything, we are not taking enough risk"
  4. Redefine BRLs (Business Readiness Level) to fit innovation projects
    • We need more hands-on people to identify use cases and interact with the community/users/ customers
    • DevRel role able to quickly build PoCs and sketch usages in the wild could be the vanguard to more structured product work
    • Most innovation projects are essentially features for our products, or proposals to improve Cardano. They are not standalone products that can have a meaningful business plan.
  5. Provide a more focused post-mortem or lessons learned analysis about DeltaQ Software Development methodology

2024-10-04

· One min read

Present​

  • Wrote CPS "Faster Settlement for Cardano", covering Peras, Anti-Grinding, and Active-Slot Coefficient
  • Peras retrospective
  • Peras Monthly Review & Demo
  • Finalized conformance tests

Future​

  • Open Q&A meeting next week
  • IO R&D Seminar on October 21

2024-09-27

· One min read

Present​

  • Progress on soundness proofs
  • Expanded coverage of conformance tests
  • Peras infographic
  • Video for Monthly R&D Backlog meeting

Future​

  • Review and retrospective next week
  • Open Q&A meeting in 1.5 weeks

2024-09-20

· One min read

Present​

  • More edge cases of soundness proofs
  • Rewrote conformance tests to increase coverage
  • Settled on next steps for collaboration with Quviq
  • Acceptance criteria for most PI7 objectives are complete

Future​

  • The innovation workstream for Peras is entering "maintenance mode" next week
  • Retrospective - Oct 2
  • Quviq presentation on testing and formalization lessons learned from Peras
  • R&D seminar - date TBD