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

separate constants for average and worst case relay headers #2728

Merged

Conversation

svyatonik
Copy link
Contributor

The idea is to move bridge fees towards expected after paritytech/polkadot-sdk#2139 . There I've used existing AVERAGE_HEADER_SIZE_IN_JUSTIFICATION constants, which are actually worst possible header size. Once this PR is merged, we'll keep using worst possible const for computing maximal refund, but for computing fees we'll be using average header size. Side effects:

  • the user will pay smaller fee for over-bridge messages. Let this fee be FEE;
  • SA of AH at BHs will keep paying to relayers at most MaxFEE, which is larger than the FEE;
  • if message proofs will be built using large headers, the difference MaxFEE - FEE will be paid by the SA of AH.

In real world, however, we'll be running our own realyer (at least for v1), which is configured to deliver messages/confirmations asap and will select the header without looking at its size. Since we expect headers to have the AVERAGE_HEADER_SIZE_IN_JUSTIFICATION, not the WORST_HEADER_SIZE_IN_JUSTIFICATION. So the actual fee in average will be closer to the FEE, not the MaxFEE.

Copy link
Contributor

@bkontur bkontur left a comment

Choose a reason for hiding this comment

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

looks like you need to add WORST_HEADER_SIZE_IN_JUSTIFICATION to the polkadot-bulletin imports

pub use bp_polkadot_core::{
	AccountAddress, AccountId, Balance, Block, BlockNumber, Hash, Hasher, Header, Nonce, Signature,
	SignedBlock, UncheckedExtrinsic, AVERAGE_HEADER_SIZE_IN_JUSTIFICATION,
	EXTRA_STORAGE_PROOF_SIZE, MAX_HEADER_SIZE, REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY,
};

@svyatonik svyatonik merged commit ce701dd into polkadot-staging Dec 5, 2023
13 checks passed
@svyatonik svyatonik deleted the separate-consts-for-average-and-worst-header-size branch December 5, 2023 15:00
bkontur added a commit to paritytech/polkadot-sdk that referenced this pull request Dec 6, 2023
svyatonik added a commit that referenced this pull request Dec 8, 2023
* separate constants for average and worst case relay headers

* fix compilation
svyatonik added a commit that referenced this pull request Dec 8, 2023
* separate constants for average and worst case relay headers (#2728)

* separate constants for average and worst case relay headers

* fix compilation

* Select header that will be fully refunded in on-demand batch finality relay (#2729)

* select header that will be fully refunded for submission in on-demand **batch** finality relay

* added the only possible test

* spelling

* nl

* updated comment

* backport some nits from #2727

* NotApplicable instead of Unroutable

* Grafana update stuff (#2733)

---------

Co-authored-by: Branislav Kontur <bkontur@gmail.com>
serban300 pushed a commit to serban300/parity-bridges-common that referenced this pull request Mar 27, 2024
…ch#2728)

* separate constants for average and worst case relay headers

* fix compilation
serban300 pushed a commit to serban300/parity-bridges-common that referenced this pull request Apr 8, 2024
…ch#2728)

* separate constants for average and worst case relay headers

* fix compilation
bkontur added a commit that referenced this pull request May 7, 2024
* separate constants for average and worst case relay headers (#2728)

* separate constants for average and worst case relay headers

* fix compilation

* Select header that will be fully refunded in on-demand batch finality relay (#2729)

* select header that will be fully refunded for submission in on-demand **batch** finality relay

* added the only possible test

* spelling

* nl

* updated comment

* backport some nits from #2727

* NotApplicable instead of Unroutable

* Grafana update stuff (#2733)

---------

Co-authored-by: Branislav Kontur <bkontur@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants