Sui.

Publicación

Comparte tu conocimiento.

SuiLover.
Jul 28, 2025
P&R expertos

¿Cuáles son los límites del procesamiento de transacciones en paralelo de Sui?

  • Estoy diseñando una dApp de alto rendimiento y quiero llevar al máximo el procesamiento paralelo de Sui. ¿Cuáles son los límites prácticos y cómo los pruebo? *
  • Sui
  • Move
1
14
Cuota
Comentarios
.

Respuestas

14
Ashford.
Jul 31 2025, 07:42

Sui está diseñado para admitirprocesamiento de transacciones paralelode alto rendimientomediante el uso de unmodelo de escalado horizontal**que permite procesar las transacciones simultáneamente sin bloquearlas. Sin embargo, existen ciertos límites y consideraciones a la hora de llevar el procesamiento paralelo de transacciones de Sui a su máxima capacidad.

Factores clave que afectan el procesamiento paralelo de transacciones en Sui

1.Concurrencia a nivel de objeto

*Sui utiliza un modelo centrado en objetosen el que cada objeto (por ejemplo, una moneda o el estado de un contrato inteligente) se procesa de forma independiente. *La paralelización se produce en objetosque no entran en conflicto (es decir, se pueden procesar diferentes objetos simultáneamente si ninguna transacción accede al mismo objeto).

  • Si varias transacciones intentan modificar el mismo objeto o recurso, lastransacciones entrarán en conflictoy solo se procesará una a la vez. *Límite práctico: Cuantos más objetos únicos intervengan en una transacción (es decir, cuanto más independientes sean los cambios de estado), más paralelismo puede lograr Sui. Sin embargo, los objetos a los que se accede o a los que se mutan mediante múltiples transacciones limitarán el rendimiento de esas transacciones.

2.Contenciones y conflictos entre transacciones

*Los conflictos entre transaccionesse producen cuando varias transacciones intentan acceder al mismo objeto o recursos simultáneamente. Sui gestiona estos conflictos rechazando una de las transacciones, lo que limita el paralelismo.

  • Para maximizar el paralelismo, debe diseñar su DApp paraminimizar la contenciónasegurándose de que las diferentes transacciones operen en diferentes objetos. *Límite práctico: si muchos usuarios interactúan con los mismos objetos (por ejemplo, en un recurso compartido, como un contrato de votación o una bolsa de préstamos), el sistema puede experimentar conflictos, lo que reduce el rendimiento.

3.Tipos de transacciones y eficiencia del gas

  • La complejidad de una transacción afecta a la cantidad decomputación y gasque requiere. Las transacciones complejas (como las que implican la ejecución inteligente de contratos) pueden ser menos eficientes y consumir más recursos, lo que reduce el paralelismo. *Límite práctico: las transacciones con altos requisitos de gas o computación reducirán la cantidad de transacciones paralelas que se pueden procesar en el mismo período de tiempo.

4.Validador y rendimiento de red

  • Lacantidad de validadoresy su capacidad para procesar transacciones son un factor crítico. A medida que más validadores se unan a la red, Sui puede escalar horizontalmente, pero la capacidad de procesamiento individual de cada validador puede convertirse en un cuello de botella si no se gestiona adecuadamente.
  • Elancho de banda de la redtambién afecta a la rapidez con la que se pueden propagar las transacciones entre los validadores. La alta congestión de la red o el ancho de banda insuficiente pueden limitar el rendimiento de las transacciones. *Límite práctico: el rendimiento de su dApp se verá limitado por la capacidad de los validadores para procesar transacciones, y esto depende de su hardware, ancho de banda y configuración.

5.Fragmentación y partición estatal

  • Sui se basa en lafragmentacióny lapartición estatalpara garantizar el procesamiento en paralelo. Cada objeto se asigna a un fragmento específico y las transacciones que afectan al mismo fragmento deben procesarse de forma secuencial, mientras que las transacciones que involucran diferentes fragmentos se pueden procesar en paralelo. *Límite práctico: Cuanto más granular sea la fragmentación (es decir, cuanto más pequeños sean los objetos o grupos de objetos), mayor será el paralelismo que se puede lograr. Sin embargo, el particionamiento excesivo puede provocar una mayor sobrecarga y complejidad en la administración del estado.

Probar los límites de las transacciones paralelas

Para comprender loslímites practicosdel procesamiento de transacciones en paralelo de Sui para tu dApp específica, debes probarlo en varias condiciones. Así es como puedes hacerlo:

1.Evaluación comparativa del rendimiento y la latencia

  • Utilice herramientas para comparar elrendimiento(transacciones por segundo) y lalatencia(tiempo por transacción) de su dApp bajo diferentes cargas.
  • Empieza con pequeñastransacciones de baja contencióny aumenta gradualmente el número de transacciones o su complejidad para observar cómo cambian el rendimiento y la latencia.

Puede utilizar las herramientas CLI deSuipara simular transacciones y supervisar el rendimiento del sistema bajo carga.

2.Prueba con diferentes combinaciones de transacciones

*Transacciones independientes: prueba las transacciones que interactúan con diferentes objetos y no entran en conflicto. Esto te ayudará a medir la capacidad de Sui para gestionar el procesamiento paralelo sin conflictos. *Transacciones con mucha contención: introduce transacciones que accedan a los mismos objetos (por ejemplo, un contrato inteligente que implique un estado compartido). Esto le ayudará a medir cómo la contención afecta al rendimiento.

Al realizar pruebas condiferentes combinaciones de transacciones, puede identificar el punto en el que el procesamiento de transacciones en paralelo comienza a degradarse debido a conflictos u otros cuellos de botella.

3.Simula una carga en el mundo real

  • Usamarcos de prueba de carga(por ejemplo, JMeter, Artillery o scripts personalizados) para simularcargas del mundo realen tu DApp.
  • Pruebe cómo se comporta su dApp cuando varios usuarios interactúan simultáneamente con diferentes partes del estado.
  • Esto puede darte una idea delrendimiento máximoque tu dApp puede lograr manteniendo unalatenciabajay unalto paralelismo**.

4.Supervise el rendimiento del validador

  • Utilice elPanel de validación Suio las API para supervisar la forma en que su nodo y los validadores de red gestionan la carga.
  • Consulta métricas como latasa de aceptación de transacciones, eltiempo de procesamiento de bloquesy elconsumo de gas por transacción.
  • Esto le puede dar información sobrequé tan bien están escalando los validadoresy si los problemas de red (por ejemplo, la baja capacidad del validador) están afectando al rendimiento.

Mejores prácticas para maximizar el paralelismo

1.Diseño para una baja contención:

  • Asegúrese de que las transacciones en su DApp se dirijan aobjetos independientesen la medida de lo posible. Si estás creando unaarena de juego, por ejemplo, mantén los estados individuales de los jugadores o los estados de batalla aislados unos de otros para maximizar el paralelismo.

2.Utilice la fragmentación y la partición estatal:

  • Divida objetos grandes en fragmentos o particiones más pequeños e independientes. Si estás creando unrastreador de votos DAO, por ejemplo, cada voto podría tratarse como un objeto independiente para evitar controversias entre los votantes.

3.Minimice el uso de gas:

  • Asegúrese de que sus transacciones seaneficientes en cuanto al consumo de gas. Las operaciones demasiado complejas que requieren mucho cálculo o análisis podrían reducir la cantidad de transacciones que el sistema puede procesar simultáneamente.

4.Supervise el estado de la red y del validador:

  • Asegúrese de que la red de validadores esté bien distribuida y funcione bien bajo carga. Aumentar la cantidad de validadores y optimizar su rendimiento puede ayudar a mejorar laescalabilidad horizontaly reducir los retrasos en la validación de las transacciones.

Conclusión

Si bien el procesamiento paralelo de transacciones de Sui está diseñado para maximizar el rendimiento, este depende de factores como lacontención de objetos, elconsumo de gas, lacomplejidad de las transaccionesy elrendimiento de la red. Para maximizar el paralelismo:

*Minimiza la contencióndiseñando tu DApp para que funcione en objetos independientes. *Compare y pruebesu dApp en escenarios de alta carga para identificar los cuellos de botella en el rendimiento.

  • Asegúrese de que losvalidadores y la capacidad de redsean suficientes para satisfacer sus requisitos de rendimiento.

Si sigue estas mejores prácticas y realiza pruebas exhaustivas, puede optimizar su dApp para impulsar el procesamiento de transacciones en paralelo de Sui a su máxima capacidad.

7
Comentarios
.
Benjamin XDV.
Jul 31 2025, 09:57

El procesamiento paralelo de Sui está limitado pordependencias de objetos: las transacciones que tocan los mismos objetos se serializan, mientras que las independientes se ejecutan simultáneamente. El límite de rendimiento teórico supera los100 000 TPSpara operaciones sin conflictos, pero el rendimiento real depende del hardware del validador y de las condiciones de la red. sui-benchmarkPara probar los límites de tu dApp, utilizabloques de transacciones programablespara procesar por lotes las operaciones que no se superpongan y compararlas con herramientas. Diseña en torno a los puntos conflictivos dividiendo el estado al que se accede con frecuencia en objetos separados (por ejemplo, subcuentas por usuario) para maximizar el paralelismo.

7
Comentarios
.
Alya.
Alya-14
Jul 30 2025, 17:42

El procesamiento de transacciones paralelas de Sui sobresale cuando las transacciones operan enobjetos independientes. El límite teórico es alto (más de 100 000 TPS en condiciones de laboratorio), pero el rendimiento práctico depende de:

1.Contención de objetos: las transacciones que modifican el mismo objeto compartido se serializan. 2.Complejidad de los bloques de transacciones programables (PTB): los PTB grandes con muchos comandos alcanzan los límites de tamaño y de tamaño. 3.Límites de reloj y eventos: las 0x2::clockemisiones de acceso y eventos tienen una tarifa limitada.

Para maximizar el paralelismo:

  • Diseñe conobjetos propios detallados(por ejemplo, según el estado de cada usuario).
  • Minimiza los objetos compartidos; divide los puntos críticos.
  • Utilice sui tx-blocksy sui client validate-transaction-blockpruebe los límites de PTB.

Realice pruebas bajo carga utilizando sui-perfscripts personalizados que simulen transacciones simultáneas que no se superpongan. Supervise los TransactionLockConflicterrores: estos indican cuellos de botella.

5
Comentarios
.
Evgeniy CRYPTOCOIN.
Jul 28 2025, 11:23

###Límites clave de la ejecución paralela de Sui 1.Cuello de botella en la dependencia de objetos

  • Las transacciones que afectan almismo objetose serializan.
  • Rendimiento máximo: depende de qué tan bien dividas tus datos (evita compartir objetos).

2.Límites de gas por bloque de transacciones

  • Límite de gas predeterminado por bloque:50 M—100 M(testnet/mainnet).
  • Cada transacción consume gas, lo que limita el trabajo paralelizable total.

3.Rendimiento del nodo RPC

  • RPC públicos: entre 2 000 y 4 000 TPS (varía según el proveedor).
  • Nodos autohospedados: es posible obtener más de 10 000 TPS con optimizaciones.

4.Restricciones de CPU/memoria

  • Los nodos de validación paralelizan el trabajo entre los núcleos de la CPU.
  • Los servidores de 32 núcleos pueden procesar más de 50 000 TPS**en casos ideales (sin objetos compartidos).

###Cómo probar los límites de tu dApp ####1. Comparativa con Localnet

# Spin up a high-performance localnet  
sui-test-validator --num-validators 4 --gas-limit 100000000

2. Genere cargas de trabajo paralelas*

Utilice el TS SDK para simular el tráfico:

// Flood the network with independent transactions  
const txs = await Promise.all(  
  Array(1000).fill(0).map(() =>  
    client.transactionBlock({  
      transactions: [/* independent object ops */],  
      gasBudget: 50_000_000  
    })  
  )  
);
4
Comentarios
.
Thorfin.
Jul 30 2025, 06:49

El procesamiento de transacciones paralelas de Sui está limitado principalmente por:

Modelo de propiedad de objetos: solo las transacciones que toquen objetos disjuntos (independientes) se pueden ejecutar en paralelo.

Contención de objetos candentes: si muchas transacciones acceden al mismo objeto, se serializan y se convierten en un cuello de botella.

Hardware de validación: el rendimiento aumenta con los núcleos de la CPU y la capacidad de E/S.

Gas y latencia de la red: la medición del gas y la sobrecarga de consenso pueden limitar el paralelismo a un volumen muy alto.

Cómo realizar la prueba:

Cree muchas transacciones actualizando objetos propios únicos (por ejemplo, contadores independientes).

Compare el rendimiento con herramientas como Sui Benchmarker.

Observe la caída del rendimiento al introducir el acceso compartido a objetos (por ejemplo, una tabla de clasificación única).

Consejo: Diseña tu aplicación para minimizar las actualizaciones de objetos compartidos y maximizar la escritura de objetos disjuntos para lograr un paralelismo total.

3
Comentarios
.
Bekky.
Bekky1762
Jul 31 2025, 12:33

Llevando el procesamiento paralelo de Sui al límite

El motor de ejecución en paralelo de Sui es revolucionario para el rendimiento de la cadena de bloques, pero tiene límites prácticos que debes entender a la hora de diseñar dApps de alto rendimiento.

Límites clave del paralelismo

1.Cuellos de botella en la contención de objetos

-Límite difícil: ~ 100 000 TPS (teórico) -Límite práctico: 50 a 80 000 TPS para cargas de trabajo reales -Umbral de contención: el rendimiento disminuye cuando más del 5% de las transacciones afectan a objetos compartidos

2. Límites de hardware por validador

| Recurso | Requisito de referencia | Objetivo de alto rendimiento | --------------------------------------| | | ------------------| | CPU | 16 núcleos | Más de 32 núcleos | | RAM | 32 GB | 64-128 GB | | Almacenamiento NVMe | 1 TB | 2-4 TB | | Red | 1 Gbps | 10 Gbps |

Probando tus límites

Metodología de evaluación comparativa

1.Aislar variables:

  # Test owned object throughput
  sui-benchmark --workload owned-objects --tx-count 100000

  # Test shared object throughput
  sui-benchmark --workload shared-objects --tx-count 100000 --shared-obj-ratio 0.05

2.Prueba de escalado de contención:

  for ratio in 0.01 0.05 0.1 0.2; do
    sui-benchmark --shared-obj-ratio $ratio --tx-count 100000
  done

Patrones de optimización del mundo real

1. Fragmentación de objetos

struct HighTrafficPool has key {
    shards: vector<PoolShard>
}

struct PoolShard has key {
    id: UID,
    // Shard-specific state
    balances: Table<address, u64>
}

2. Procesamiento basado en la época

struct TradingEpoch has key {
    id: UID,
    current: EpochData,  // Read-only after creation
    next: EpochData      // Mutable accumulation
}

3. Procesamiento por lotes con escritura prevista

struct PendingUpdates has key {
    id: UID,
    updates: vector<Update>
}

// Process batch every N blocks
public entry fun flush_updates(
    batch: &mut PendingUpdates,
    state: &mut GlobalState
) {
    // Apply all updates atomically
}

Objetivos prácticos de rendimiento

| Tipo de carga de trabajo | TPS esperado | Estrategia de optimización | ------------------------| -------------| | -----------------------| | Objetos de propiedad exclusiva | 50-100 000 | Minimizar las dependencias | | Objetos en su mayoría propios | De 20 a 50 000 | Dividir inteligentemente | | Carga de trabajo equilibrada | De 10 a 20 000 | Escrituras compartidas por lotes | | Dominio de objetos compartidos | De 5 a 10 000 | Utilice épocas o colas |

Monitoreando la contención

1.Métricas incorporadas:

  curl http://localhost:9184/metrics | grep "sui_execution_engine"

2.Métricas clave a tener en cuenta:

  • sui_execution_engine_conflicted_transactions
  • sui_execution_engine_parallel_degree
  • sui_transaction_manager_shared_lock_wait_time

Superando los límites predeterminados

  1. validator.yamlConfiguración de validador personalizada():
  execution:
    max_parallel_tasks: 1024  # Default: 256
    shared_object_cache_size: "2GB"  # Default: 500MB

2.Optimizaciones de código de movimiento:

  // BAD: Serial shared access
  public entry fun update_serial(obj: &mut SharedObj) { ... }
  
  // GOOD: Partitioned access
  public entry fun update_partitioned(
      obj: &mut SharedObj,
      partition_key: u64
  ) { ... }

Lista de verificación de pruebas de esfuerzo

  1. Comience con transacciones de objetos de su propiedad al 100%
  2. Aumente gradualmente la proporción de objetos compartidos
  3. Supervise el uso de los recursos del validador
  4. Identifique los puntos críticos de contención
  5. Implemente la fragmentación o la partición
  6. Repita hasta alcanzar el objetivo de TPS

Recuerde: el rendimiento paralelo de Sui aumenta con:

  • Número de rutas de objetos independientes
  • Recursos de hardware disponibles
  • Gestión inteligente de la contención en su código Move
3
Comentarios
.
BigSneh.
Jul 28 2025, 04:28

El procesamiento paralelo de transacciones de Sui es posible gracias a su modelo de datos centrado en objetos, que permite que las transacciones que no se superponen se ejecuten simultáneamente. Sin embargo, los límites prácticos se derivan de la contención de recursos, los objetos compartidos, el rendimiento del validador y las dependencias de las transacciones. Los objetos compartidos serializan la ejecución, por lo que minimizar su uso es clave para maximizar el paralelismo. El rendimiento también depende de la capacidad de los validadores, especialmente en situaciones de alta carga de escritura o de cómputos complejos.

Para comprobar estos límites, utilice herramientas como sui bench o cargas de trabajo personalizadas que simulan el volumen de transacciones del mundo real con distintos patrones de propiedad de los objetos. Realice un seguimiento de métricas como la latencia, el consumo de gas, las transacciones fallidas y el uso de la CPU y la memoria del validador. Compare los clústeres de Testnet o Localnet con mayor carga para identificar los cuellos de botella. Utilice contadores y eventos en Move para supervisar el estado interno y registrar tanto a nivel de aplicación como de red. Estructurar las transacciones en torno a objetos de propiedad exclusiva, evitar dependencias innecesarias y escribir por lotes son las mejores prácticas para escalar de forma eficaz.

2
Comentarios
.
290697tz.
Jul 28 2025, 04:29

El procesamiento de transacciones paralelas de Sui se basa en su modelo de datos centrado en objetos, que permite que las transacciones que tocan conjuntos de objetos disjuntos se ejecuten en paralelo. El límite principal es el número de transacciones que se pueden ejecutar simultáneamente sin que haya conflictos entre objetos, lo que significa que dos transacciones no deben leer ni escribir el mismo objeto. Si varias transacciones acceden a objetos compartidos o superpuestos, se serializan, lo que reduce el paralelismo. Por lo tanto, estructurar su dApp para minimizar el uso de objetos compartidos es fundamental para maximizar el rendimiento.

Otro factor es el rendimiento del hardware completo del nodo o del validador, como los núcleos de la CPU, las E/S de los discos y la memoria, que afectan directamente al número de transacciones que se pueden procesar en paralelo. El programador de transacciones de Sui usa gráficos de dependencias para optimizar el orden de ejecución, pero una contención excesiva o un diseño deficiente de los objetos limitarán la eficiencia. Para realizar pruebas, puedes usar herramientas como sui-benchmark o crear un ejecutor de PTB (bloque de transacciones programable) personalizado para simular condiciones de alta carga con patrones de acceso a objetos variables. Realiza un seguimiento de métricas como el TPS, la latencia y la contención del bloqueo de objetos para detectar los cuellos de botella. También deberías realizar pruebas con objetos compartidos y campos dinámicos para ver cómo afectan al rendimiento con un uso realista.

2
Comentarios
.
Owen.
Owen4662
Jul 30 2025, 03:00

El procesamiento de transacciones paralelas de Sui está limitado por la propiedad de los objetos y las dependencias. Las transacciones que operan en objetos independientes se pueden procesar en paralelo, lo que maximiza el rendimiento. Sin embargo, la contención en torno a los objetos compartidos serializa la ejecución, lo que crea cuellos de botella. Los objetos propios permiten un paralelismo total, mientras que los objetos compartidos requieren una coordinación consensuada, lo que reduce la velocidad. El límite teórico depende de las condiciones de la red, la estructura del gráfico de objetos y la diversidad de transacciones. sui_executeTransactionBlockPara probar el rendimiento, utilice el SDK de Sui para simular cargas de trabajo con una cantidad variable de objetos y medir el rendimiento a través del RPC. Analice los resultados con diferentes patrones de carga para identificar los límites de escalamiento.

2
Comentarios
.
frogit.
Aug 11 2025, 04:19

El procesamiento paralelo de transacciones de Sui es posible gracias a su modelo de datos centrado en objetos, que permite que las transacciones que no se superponen se ejecuten simultáneamente. Sin embargo, los límites prácticos se derivan de la contención de recursos, los objetos compartidos, el rendimiento del validador y las dependencias de las transacciones. Los objetos compartidos serializan la ejecución, por lo que minimizar su uso es clave para maximizar el paralelismo. El rendimiento también depende de la capacidad de los validadores, especialmente en situaciones de alta carga de escritura o de cómputos complejos.

Para comprobar estos límites, utilice herramientas como sui bench o cargas de trabajo personalizadas que simulan el volumen de transacciones del mundo real con distintos patrones de propiedad de los objetos. Realice un seguimiento de métricas como la latencia, el consumo de gas, las transacciones fallidas y el uso de la CPU y la memoria del validador. Compare los clústeres de Testnet o Localnet con mayor carga para identificar los cuellos de botella. Utilice contadores y eventos en Move para supervisar el estado interno y registrar tanto a nivel de aplicación como de red. Estructurar las transacciones en torno a objetos de propiedad exclusiva, evitar dependencias innecesarias y escribir por lotes son las mejores prácticas para escalar de forma eficaz.

0
Comentarios
.

Sabes la respuesta?

Inicie sesión y compártalo.