ethereum-oasis-op / baseline-blips

Baseline Protocol Improvement Proposals (BLIPs) play a key role in properly proposing, developing, and implementing changes to the Baseline Protocol. This repo contains all BLIPs.
Creative Commons Zero v1.0 Universal
10 stars 5 forks source link

[BLIP-6] Test suite for a standard-based Baseline Protocol Implementation #8

Closed ognjenkurtic closed 2 years ago

ognjenkurtic commented 2 years ago

BLIP-6 Test suite for a standard-based Baseline Protocol Implementation - Development of a monolith, dependency-free Baseline Protocol Implementation based on the standards documents, using a TDD approach


authors: ognjenkurtic, stefanschmidt

Abstract

As a first step in building a standard-based, open-source Baseline Protocol Implementation (BPI), we need a set of tests running against a simple mock BPI with well-defined interfaces and component boundaries. This test suite should be implemented in such a way that it easy to run for a developer, should serve as a entry point to get to know the protocol and as a starting point to build a backlog of small, atomic tasks that can be picked up by core devs towards building a open-source (BPI).

Motivation

At the moment, there are no open-source BPIs that can serve for core dev onboarding and as a reference for further development of the protocol. We want to start working towards resolving this by building a simple, high-level abstraction of a BPI, based on the standards and described by a set of tests documenting the core functionalities of the protocol.

Specification

Our proposal is to finish the following before this BLIP is considered completed:

Rationale

In our opinion, work on this test suite and the BPI monolith would generate understanding of the standard, help refine the APIs and serve as a excellent basis to start defining further development tasks towards the goal of a standard-based, open-source Baseline Protocol Implementation.

Backwards Compatibility

None

Test Cases

None

Reference Implementation

Baseline Standard Document - https://github.com/eea-oasis/baseline-standard/blob/main/core/baseline-core-v1.0-psd01.md

Baseline API and Data Model Specification - https://github.com/eea-oasis/baseline-standard/blob/main/api/baseline-api-v1.0-psd01.md

BPI Implementers Guide (Work in progress) - https://docs.google.com/document/d/1og-QseEO6B7w37h_Ik2P1pqKd8_dysRapU1PO8GeDB4/edit?usp=drivesdk

Baseline Basic Technical Walkthrough - https://www.youtube.com/watch?v=C96wepNNP4Y

Security Considerations

None


Copyright Copyright and related rights waived via CC0-Universal.

(This template adapted from the EIP template at https://github.com/ethereum/EIPs/

ognjenkurtic commented 2 years ago

Kickoff meeting notes - 4.11.2021

First, simplest use case we want to cover:

ognjenkurtic commented 2 years ago

Preparation session for Mob programming - meeting notes - 10.11.2021

Prepared a test project with typescript, mocha and chai. Can be found under BLIP-6-bpi-monolith-test-suite branch, folder examples\bpi-monolith-test-suite

kthomas commented 2 years ago

You do know that literally all of this exists (and then some) in the Provide open source reference impl repos ;)

What if we simply monolithed them together, would that satisfy this BLIP? We can do that!

kthomas commented 2 years ago

@djones0 ^

ognjenkurtic commented 2 years ago

@kthomas The point of this BLIP is to have a number of devs building a bpi from scratch, following the standards specification, without having to rely on any external dependencies apart of the standard. It serves the purpose of knowledge building and sharing, and is a step towards a future goal of building an open-source implementation.

humbitious commented 2 years ago

You do know that literally all of this exists (and then some) in the Provide open source reference impl repos ;)

What if we simply monolithed them together, would that satisfy this BLIP? We can do that!

"The answer is Provide. What's the question?" lol

Hey Kyle, I was thinking about starting a chicken farm, but then I figured Provide already did that, so I moved on. ;)

humbitious commented 2 years ago

You do know that literally all of this exists (and then some) in the Provide open source reference impl repos ;) What if we simply monolithed them together, would that satisfy this BLIP? We can do that!

"The answer is Provide. What's the question?" lol

Hey Kyle, I was thinking about starting a chicken farm, but then I figured Provide already did that, so I moved on. ;)

In all seriousness, Kyle, as we discussed, showing a very simple and clear from-scratch developer experience at the simplest level, able to run on localhost in a few minutes (without a dozen containers) -- and showing the videos of competent developers working in pairing fashion in real time (love these videos) on building from scratch -- will, I believe, vastly increase adoption and accessibility...leading to more developers saying, "Ok, now I get it...wish I had some real powerhouse enterprise tools to amp it up." There's the opportunity for companies like Provide.

ognjenkurtic commented 2 years ago

The team got together today to split the remaining work on the BLIP. Results are here: https://github.com/eea-oasis/baseline/projects/2

We will be async working on these in the upcoming days, with occasional ad-hoc touchpoints.

GoldenBit0 commented 2 years ago

Core Devs 12/13/2021:

GoldenBit0 commented 2 years ago

1/10/22 Core Devs: