Add a way to pad transactions' size if needed by Simplicity cost metric
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- rust
- Domain
- blockchain
Research direction
The issue names rust-elements but no file or test. Start by locating transaction weight and serialization entry points and the existing Simplicity cost handling; then determine the padding basis and required coverage. Done means a standardized, tested mechanism for padding transactions to the required weight is implemented.
Written by the indexing model from the issue text.
Description
Simplicity transactions have an additional "cost" associated with the computational resources consumed by verification of the results of executing the contract.
This cost is paid for by ensuring that the transaction has a sufficiently high weight (using conventional weight calculations) to cause the associated fee to be adequate according to the cost formula. Currently, most typical Simplicity programs inherently produce large enough transactions to satisfy this requirement, so there hasn't been a need to artificially increase the size of their transactions in order to get them accepted by Liquid nodes. However, this might not always be the case for more computationally-intensive contracts in the future, e.g. those that use loops or that call expensive jets repeatedly for some reason.
So, we could use a standardized way to pad transactions to make them deliberately larger when this turns out to be required by the cost formula.
@apoelstra suggested that the appropriate place to specify and implement the basis for this is here in rust-elements.
- Dominant language
- Rust
- Stars
- 57
- Forks
- 40
- Avg merge
- 11h 58m
- Merged PRs (30d)
- 1
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ElementsProject/rust-elements
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
ElementsProject/rust-elements#290 · 1 comment ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
ElementsProject/rust-elements#277 ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
ElementsProject/rust-elements#273 · 3 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
ElementsProject/rust-elements#268 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 52/100
ElementsProject/rust-elements#262 · 2 comments · 1 reaction ·
All issues in ElementsProject/rust-elements
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100