Add a way to pad transactions' size if needed by Simplicity cost metric

Abierto
#260 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
rust
Área
blockchain

Línea de trabajo

El issue menciona rust-elements, pero no indica ningún archivo ni prueba. Empieza localizando los puntos de entrada del peso de las transacciones y la serialización, así como la gestión existente del coste de Simplicity; después determina la base del padding y la cobertura necesaria. Se considera terminado cuando se haya implementado un mecanismo estandarizado y probado para aplicar padding a las transacciones hasta alcanzar el peso requerido.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Rust
Estrellas
57
Forks
40
Merge medio
2 d 2 h
PR fusionados (30 d)
1

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ElementsProject/rust-elements

Todos los issues de ElementsProject/rust-elements

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.