Releases: Drops-of-Diamond/diamond_drops
Blob serialization and cleanups
Implements https://ethresear.ch/t/blob-serialisation/1705.
Uses structs for a chunk and a blob, which contain a data and indicator fields for chunks; and just one data field for blobs (for a blob of arbitrary size). Defines functions for instantiation and conversions between blobs, chunks, bytes and collation bodies. Has unit tests.
TODO: may need to rewrite this to not have a skip_evm flag as per https://ethresear.ch/t/blob-serialisation/1705/15.
Add serialization for blobs into collation bodies, with 2 new tests, and all tests passing. Plus minor changes e.g. to build.rs (refactoring all of main()
to make_uml_diagram()
, and adding crate-wide allow guards to minimize lots of warnings (allow I have been handling some, and more could be).
Reorganizations
- fix up and add new tasks in launch.json, tasks.json and Makefile.toml (while deleting Makefile.toml.orig as per #58), e.g. for tests for each folder/crate and renaming tests for UML with different OSs, with an
uml-default-recommended
task that works on different OSes and distros (#57). - add support for Windows for Clap (see #59 for details. The change in Clap is pending in clap-rs/clap#1271, however it is has been fixed in our repo.)
- comment out unused features (leave since they may be used in future)
Notary CLI functionality
Has the updated functionality for the notary participant, to replace the collator participant, to match with the latest research:
- https://ethresear.ch/t/a-general-framework-of-overhead-and-finality-time-in-sharding-and-a-proposal/1638
- https://ethresear.ch/t/a-minimal-sharding-protocol-that-may-be-worthwhile-as-a-development-target-now/1650
- https://ethresear.ch/t/exploring-the-proposer-collator-split/1632
@ChosunOne in the original PR #31:
Major improvements include the following:
- SMC Listener integration into the main binary
- Thread refactor
- Skeletal Notary integration
- Full unit test coverage of implemented features
There are still a lot of questions I have about functions related to the notary, such as how a notary selects a proposal to vote on and what information is needed in the vote message, but it is at the point where merging this will allow more parallel development of the rest of the project.
Contains some skeleton code for as-yet-to-be-specified parts of the sharding manager contract, as well as improvements by @ltfschoen in #32.
Run and Test the code
-
Build and run the code and provide arguments that it accepts from the CLI
cargo run -- -mode b
- Note: CLI Options available may include:
- Proposer Mode:
cargo run -- -mode p
- Notary Mode:
cargo run -- -mode n
- Both Proposer and Notary Mode:
cargo run -- -mode b
- Proposer Mode:
- Note: CLI Options available may include:
-
Run tests
cargo test
-
Build and show Docs
cargo build; cargo doc --open
Basic CLI
Has a basic CLI with outdated collator functionality, implementing the interfaces for the SMC for the retired phase 1 sharding spec.
@ChosunOne from the original PR #9:
I've added a basic cli to allow us to begin developing the proposal and collator parts of phase 1. By default the client will attempt to run both, but you can specify which mode you want by running with the
-mode
flag followed byproposer
orp
,collator
orc
, or explicitly run both withboth
. Ex.cargo run -- -mode p