-
Notifications
You must be signed in to change notification settings - Fork 33
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
[Core] Tx Fee Business Logic - Improve State Visibility #325
Comments
@jessicadaugherty Updated the description. |
Is there a reason these things can't be covered in a separate ticket?
I think this is adding confusion and a distraction from the goal of sending a "happy" tx before designing the "unhappy" tx path. |
Make sense. Let's add those deliverables to a separate ticket. |
The scope of this ticket is going to be to take the last few commits made to the iteration 3 demo (found at https://github.com/pokt-network/pocket/tree/iteration3_demo) and productionize them. |
Design Considerations In V0 today, invalid txs take fees. However, invalid txs, including those without enough POKT to cover fees, are still stored on-chain per Tendermint which can result in block bloat. V0 plans on addressing this issue in pokt-network/pocket-core#1505 Pending confirmation from @oten91, I believe the intention is to take fees and store invalid txs in memory rather than in the block, and to block invalid txs that do not have enough fees to cover the tx). |
New ticket: Productionize E2E tx in mainline. Comes before this validate ticket. |
|
Hey @Olshansk! I've moved this into rescope for now. I would like to confirm a couple of things based on our comments above:
References
Based on this snippet
It seems that we take the fee, run a validation against the signature, and if it is found to be an invalid tx, neither the tx or the fee are added to pools. If this code takes the fee but does not store it in mem/fee pool, what happens to the fee...? Aren't fees supposed to be 99% burned and 1% goes to the BlockProposer? Unless we are changing a design there as well? Can you confirm that 1) this understanding of the code is correct and, if so, 2) if we want invalid txs and fees added to mem/fee pools but not in the block as was discussed as a V0 design? If so, then...
3a. Was there any desire/intent to change the tx fee? Or make different fees for different tx types? Feels like a post V1 launch wishlist question but I wanted to check because in the Utility spec (3.7 State Changes) there is reference to a "a dynamic fee" - but today the fee is always 10,000 uPOKT and there isn't any additional information I can find about this. Anyway, would be cool to know if additional functionality is required, whether what is discussed here or otherwise to determine if a ticket around updating the actual business logic is required. 3b. Additionally, there is a comment in the fee logic of transaction.go that says:
This can refer to a lot of things. Do you have any past insights from Andrew that might provide more context to future enhancements? Some ideas:
Can you let me know if there is a third ticket that should be created around a general transactions cleanup (if there is more scope than what is discussed above in section 2)? TIA for bearing with me through this comment! |
Discussed the context above offline last week, so just wanted to capture a tl;dr of the discussion At a high level, we'll need to create several tickets of work before we can dive into the pocket utility design & implementation):
This ticket will focus on (1). |
Objective
Validate and expose fees throughout the blockchain state when a transaction (successful or not) is sent.
Origin Document
The flow shown in the diagram below, is an example where funds where sent from one account to another and fees were transmitted to the associated pool from the sender's account balance
We can validate the status of transactions and fees using the logging module.
Goals
Deliverable
Non-goals / Non-deliverables
General issue deliverables
Testing Methodology
make test_all
LocalNet
is still functioning correctly by following the instructions at docs/development/README.mdCreator: @jessicadaugherty
Co-owner: @Olshansk
The text was updated successfully, but these errors were encountered: