Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specification of light-mode #3118

Merged
merged 4 commits into from
Feb 11, 2022
Merged

Conversation

HeinrichApfelmus
Copy link
Contributor

@HeinrichApfelmus HeinrichApfelmus commented Feb 9, 2022

Issue number

ADP-1370

Overview

This pull request adds a specification (DRAFT) for the cardano-wallet light-mode.

See also PR #3102 for the prototype that explores the feasibility of this specification and implements some parts of it for demonstration purposes.

@HeinrichApfelmus HeinrichApfelmus force-pushed the HeinrichApfelmus/ADP-1379-spec branch from f7e9541 to ec58ec0 Compare February 9, 2022 16:06
Copy link
Contributor

@rvl rvl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's great so far, thanks @HeinrichApfelmus

specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
@HeinrichApfelmus HeinrichApfelmus force-pushed the HeinrichApfelmus/ADP-1379-spec branch 2 times, most recently from 77f376f to d7a3d43 Compare February 10, 2022 17:06
@HeinrichApfelmus HeinrichApfelmus force-pushed the HeinrichApfelmus/ADP-1379-spec branch from d7a3d43 to 9b6d00b Compare February 10, 2022 17:07
Copy link
Contributor

@rvl rvl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

I've suggested a couple diagrams. If you don't have time, I could do them.

Could we move the document into docs/design/specs/light-mode.md? Then it will be published. It doesn't matter if it's still a DRAFT - as long as the status is shown.

specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
This procedure is implemented and demonstrated in the `light-mode-test` prototype.

## Functionality

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here is another gratuitous picture opportunity.
Could we please have two block diagrams - full-node and light-mode?
Like a cut-down version of the diagram here: https://input-output-hk.github.io/cardano-wallet/developers/Architecture
In the "full-node" version, wallet links to node in 4 ways: chainsync, localblockfetch, localstatequery, localtxsubmission.
In the "light-mode" version, wallet requests a list of transactions by address from the block service.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok!

Note: We do not use BlockFetch, but ChainSync to receive the blocks from the node. This is line with the network specification, which recommends that

The (full)-node to client protocol uses an instance of the chain synchronisation protocol that transfers full blocks, while the node-to-node instance only transfers block headers. In the node-to-node case, the block fetch protocol (Section 3.8) is used to transfer full blocks.

specifications/wallet/spec-light-mode.md Outdated Show resolved Hide resolved
@HeinrichApfelmus HeinrichApfelmus force-pushed the HeinrichApfelmus/ADP-1379-spec branch from 9b6d00b to dc999ac Compare February 11, 2022 12:52
@HeinrichApfelmus HeinrichApfelmus merged commit 431e4d3 into master Feb 11, 2022
@HeinrichApfelmus HeinrichApfelmus deleted the HeinrichApfelmus/ADP-1379-spec branch February 11, 2022 15:22
WilliamKingNoel-Bot pushed a commit that referenced this pull request Feb 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants