block.state.commit is slow
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- blockchain, performance
Línea de trabajo
Comienza con la llamada a block.state.commit identificada por los logs e inspecciona las rutas de proposer y validator descritas en el issue. Perfila el caso de 100-UTXO frente a los timing logs proporcionados; se considera terminado cuando se haya identificado el cuello de botella del commit y se hayan reducido los retrasos notificados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I found that block.state.commit function is slow.
In Corgi network, when a block has a transaction that splits one UTXO to 100 UTXOs, the block.state.commit function takes 7 seconds when called by a proposer, takes 5 seconds when is called by other validators.
I added logs to find the function. You can see the logs in this link
Here are the sample logs.
// in proposer
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 TRACE miner Adding transaction 0x7a2813b09fc75f31e94f10af6f8e80d4fdf9e7ab3a856852a5c76a75b5b62018 took 13.64375ms
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Pushed 1/1 transactions
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Get parent hash
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Get parent header
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Get parent view
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Get transactions root
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Clone block state
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Call on_close_block
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 TRACE state add_balance(0x6850…65e1, 50): 2639520825
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 TRACE state add_balance(0x6202…8750, 19): 1300650642
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 TRACE state add_balance(0x263b…fcb1, 30): 1762899421
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 TRACE state add_balance(0x0968…b3f6, 1): 919023814
#105317671 2019-07-25 10:51:27 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner commit state
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Set transactions root
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner set state root
#105317671 2019-07-25 10:51:34 UTC event.loop INFO rpc RPC call(slog([]))
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Close block
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner Before get write access of mem_pool
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 DEBUG miner After get write access of mem_pool
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 TRACE mem_pool remove() called, time: 2126657, timestamp: 1564051884
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 TRACE miner update_sealing: engine indicates internal sealing
#105317671 2019-07-25 10:51:34 UTC Client Worker CodeChain-io/codechain#2 TRACE miner seal_block_internally: attempting internal seal.
#105317671 2019-07-25 10:51:34 UTC tendermint TRACE engine Proposer nonce: 26
// in another validator
#608329186 2019-07-25 11:17:25 UTC Blocks Verifier CodeChain-io/codechain#1 DEBUG miner Before lock block 2126978
#608329186 2019-07-25 11:17:30 UTC Blocks Verifier CodeChain-io/codechain#1 DEBUG miner After lock block 2126978
- Lenguaje dominante
- Rust
- Estrellas
- 36
- Forks
- 11
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CodeChain-io/foundry
-
Remove informerAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
CodeChain-io/foundry#607 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
CodeChain-io/foundry#606 ·
-
Change the return type of execute_transactions to signify it always succeedsQuizá libre de nuevo @dynaxis la tomó hace 2107 días y no hay ningún pull request abierto. Abierto
CodeChain-io/foundry#605 · 1 reacción · 1 asignado ·
-
Handle invalid transactions.Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
CodeChain-io/foundry#604 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
CodeChain-io/foundry#603 ·
Todos los issues de CodeChain-io/foundry
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100
-
review-drift
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
oxidecomputer/hansei#14 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
rubys/roundhouse#444 ·
Los mantenedores suelen responder en 1 día
-
Published hardy-bpa-server image is built without the file-cla featurePosiblemente ocupada @EmbryoSpace la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
ricktaylor/hardy#755 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
semaphoreci/docker-images#46 · 1 comentario ·