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

Light Mode: Time Interpreter #3221

Merged
merged 6 commits into from
Apr 11, 2022
Merged

Conversation

Unisay
Copy link
Contributor

@Unisay Unisay commented Apr 6, 2022

Issue Number

ADP-1422, ADP-1505

Overview

Light-mode (Epic ADP-1422) aims to make synchronisation to the blockchain faster by trusting an off-chain source of aggregated blockchain data.

In this pull request, we implement a function timeInterpreter that allows wallet to convert between relative blockchain time (epochs, slots) and absolute wall-clock time. To make such conversions correct TimeInterpreter needs to take into account historical values for various protocol parameters as well as past hard forks.

Unfortunately Blockfrost API doesn't expose required functionality. We therefore hardcode summary information about past hard forks that happened on the Mainnet.

@Unisay Unisay requested a review from HeinrichApfelmus April 6, 2022 14:05
Copy link
Contributor

@HeinrichApfelmus HeinrichApfelmus left a comment

Choose a reason for hiding this comment

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

Looks good to me! 😊 The Ouroboros.Consensus.HardFork.History.* appears to be surprisingly pleasant to use.

Two small comments.

@Unisay Unisay force-pushed the yura/ADP-1505/time-interpreter branch 2 times, most recently from d9ef5b8 to b1bce85 Compare April 8, 2022 14:51
@Unisay Unisay force-pushed the yura/ADP-1505/time-interpreter branch from b1bce85 to 3525610 Compare April 8, 2022 17:24
@Unisay
Copy link
Contributor Author

Unisay commented Apr 11, 2022

bors r+

iohk-bors bot added a commit that referenced this pull request Apr 11, 2022
3221: Light Mode: Time Interpreter r=Unisay a=Unisay

### Issue Number

ADP-1422, ADP-1505

### Overview

[Light-mode][] (Epic ADP-1422) aims to make synchronisation to the blockchain faster by trusting an off-chain source of aggregated blockchain data. 

  [light-mode]: https://input-output-hk.github.io/cardano-wallet/design/specs/light-mode

In this pull request, we implement a function `timeInterpreter` that allows wallet to convert between relative blockchain time (epochs, slots) and absolute wall-clock time. To make such conversions correct `TimeInterpreter` needs to take into account historical values for various protocol parameters as well as past hard forks.

Unfortunately Blockfrost API doesn't expose required functionality. We therefore hardcode summary information about past hard forks that happened on the Mainnet.


Co-authored-by: Yuriy Lazaryev <yuriy.lazaryev@iohk.io>
@iohk-bors
Copy link
Contributor

iohk-bors bot commented Apr 11, 2022

Build failed:

hspec-discover: error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory

@Unisay
Copy link
Contributor Author

Unisay commented Apr 11, 2022

bors r+

@iohk-bors
Copy link
Contributor

iohk-bors bot commented Apr 11, 2022

Build succeeded:

@iohk-bors iohk-bors bot merged commit 3a5c6fc into master Apr 11, 2022
@iohk-bors iohk-bors bot deleted the yura/ADP-1505/time-interpreter branch April 11, 2022 09:59
WilliamKingNoel-Bot pushed a commit that referenced this pull request Apr 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