Document architectural choices

Open Beginner friendly
#521 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Quiet
Tech stack
rust

Research direction

Review #520 and compare crates/blockchain/src/lib.rs with crates/blockchain/src/store.rs, including how the spec-test runner exercises store.rs. Document the preference for changes in lib.rs and for wrapping leanVM primitives in ethlambda-crypto; the work is done when these architectural choices are recorded for future contributors.

Written by the indexing model from the issue text.

Description

#520 is an example. Generally, modifying crates/blockchain/src/lib.rs should be preferred over modifying crates/blockchain/src/store.rs. We have this weird split between kind-of-pure stuff in store.rs and non-pure stuff on lib.rs, because store.rs is ported almost one-to-one from the spec. The spec-tests exercise only that module, and any changes to store.rs will likely impact our spec-test runner.

Another preference would be wrapping leanVM primitives inside ethlambda-crypto. This is done to centralize changes due to leanVM updates.

We can start by writing this down in a document and later expand on it with other preferences.

Dominant language
Rust
Stars
82
Forks
28
Avg merge
1d 23h
Merged PRs (30d)
19

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from lambdaclass/ethlambda

All issues in lambdaclass/ethlambda

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.