-
Notifications
You must be signed in to change notification settings - Fork 690
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
feat!: Introduce feemarket module #3028
Conversation
3524455
to
9052464
Compare
b0a7667
to
89d57b3
Compare
Co-authored-by: Dusan Maksimovic <dusan.maksimovic@ethernal.tech>
Co-authored-by: Dusan Maksimovic <dusan.maksimovic@ethernal.tech>
Co-authored-by: Dusan Maksimovic <dusan.maksimovic@ethernal.tech>
Co-authored-by: Dusan Maksimovic <dusan.maksimovic@ethernal.tech>
Co-authored-by: Stana Miric <stana.miric@ethernal.tech>
Co-authored-by: Dusan Maksimovic <dusan.maksimovic@ethernal.tech>
Co-authored-by: Dusan Maksimovic <dusan.maksimovic@ethernal.tech>
Co-authored-by: Dusan Maksimovic <dusan.maksimovic@ethernal.tech>
Co-authored-by: Stana Miric <stana.miric@ethernal.tech>
Co-authored-by: Stana Miric <stana.miric@ethernal.tech>
46a6d14
to
8cdce49
Compare
@@ -230,9 +230,15 @@ replace ( | |||
// Use special SDK v0.47.x release with support for both ICS and LSM | |||
github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.47.13-ics-lsm | |||
|
|||
github.com/cosmos/gogoproto => github.com/cosmos/gogoproto v1.4.10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These three new replacement directives are due to the feemarket module bumping this dependencies, after which Gaia stopped compiling, so we had to revert to previous versions.
) | ||
|
||
// UseFeeMarketDecorator to make the integration testing easier: we can switch off its ante and post decorators with this flag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a workaround to make the integration tests based on IBC testing framework work without the need to override the SendMsgs()
function, since this would also require changes to the ICS repository to modify the CCVTestSuite
. The only thing we would need to override is to specify the tx fees, which is not essential for these tests, so we decided not to do it. Also, our non-determinism tests were failing because the tx fees are not provided, and we are unable to provide the tx fees to the framework used, so we opted for this work-around. For the override of the SendMsgs()
see the FeeMarketTestSuite
.
As commented on Slack, I think we should have a fallback for when the feemarket is disabled, e.g. via governance |
686b3f0
to
b69c7b5
Compare
…if feemarket is disabled
gas_price = { price = 0.00001, denom = 'uatom' } | ||
gas_multiplier = 1.2 | ||
gas_price = { price = 0.005, denom = 'uatom' } | ||
gas_multiplier = 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: revert this value to 1.2 (in all 4 places) once the gas estimation is fixed in the feemarket module and we upgrade to a new version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to add the dynamic fees for hermes. I think that will fix the high gas_multiplier
.
https://hermes.informal.systems/documentation/configuration/dynamic-gas-fees.html
@p-offtermatt Skip team already implemented a fallback to alternative (arbitrary) decorator, so I just provided the auth modules' DeductFeesDecorator and introduced |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I looked mostly at the params.
From experimenting a bit, it seems an arbitrary 1000 block range of usual activity on the hub would need to have ~30 times bigger usage to actually make the price consistently higher than the base.
I didn't look as closely at the wiring, but just in terms of configuration of the feemarket, I think it's good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
E2E were updated, globalfee was removed and feemarket was integrated.
Any patches to the feemarket (if needed) will be reflected in a different PRs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work. See my comments below.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add one more changelog entry under api-breaking. Removing the globalfee module breaks the API, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added.
@@ -21,7 +21,7 @@ BUILDDIR ?= $(CURDIR)/build | |||
TEST_DOCKER_REPO=cosmos/contrib-gaiatest | |||
|
|||
GO_SYSTEM_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f1-2) | |||
REQUIRE_GO_VERSION = 1.21 | |||
REQUIRE_GO_VERSION = 1.22 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to bump the go version? If so, please add a changelog entry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
Added changelog.
docs/docs/architecture/adr/README.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this file duplicated?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It has existed before this PR. Hence, not relevant here. It can be removed in a different PR.
params.DistributeFees = true | ||
params.MinBaseGasPrice = sdk.MustNewDecFromStr("0.005") | ||
params.MaxBlockUtilization = 100000000 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these params as discussed with Philip?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
Also, these are the current network params.
Co-authored-by: Marius Poke <marius.poke@posteo.de>
Co-authored-by: Marius Poke <marius.poke@posteo.de>
Description
Note: This is a new PR description written by @dusan-maksimovic after the latest changes were made by @stana-miric and myself.
This PR includes:
The main changes are in "ante" and "app" directories, and other changes are removal of globalfee module and fixing of failing tests.
Currently, we are targeting the latest feemarket commit on SDK 47. Once Skip creates a new release for SDK 47, we should target that tag instead.
Feemarket module is configured in following way:
Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
to the type prefix if API, client, or state breaking change (i.e., requires minor or major version bump).changelog
(for details, see contributing guidelines)Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...
!
in the type prefix if API or client breaking change