Investigación de tecnología blockchain de alianza de alto rendimiento (estudio de tesis)

1. Innovación de artículos

Dirección del artículo: descarga de PDF

① Arquitectura con separación de lógica empresarial y consenso
  • El flujo de trabajo de un sistema típico de cadena de alianzas:
  1. El cliente envía la transacción firmada al nodo de la cadena de alianza y el servidor HTTP verifica información como la firma y el certificado.
  2. Después de la verificación, la transacción se transmite atómicamente al módulo de consenso. Una vez que el módulo de consenso completa la clasificación de transacciones, pasa el bloque empaquetado al módulo de ejecución.
  3. El módulo de ejecución realiza la verificación de la firma y llama al módulo de la máquina virtual para ejecutar la transacción en el bloque.
  4. Después de que se ejecuta la transacción, el resultado de la transacción se almacenará en caché en el módulo de ejecución primero, y solo cuando el hash del resultado de la transacción pase el consenso del módulo de publicidad, finalmente se escribirá en el libro mayor.

1. madledgerAl Collectorrecopilar los resultados de ejecución de los pares, actualmente se adoptan la mayoría de las estrategias. Es decir, si más de la mitad de los pares tienen el mismo resultado de ejecución, el cliente cree que la transacción se ha empaquetado con éxito en la cadena.

Respuesta de Yihua:
a. El libro mayor de pares es consistente en escenarios no bizantinos, pero no se puede garantizar en escenarios bizantinos, y solo se puede garantizar el estado de los nodos bien intencionados.
b. En el escenario de balsa, el cliente solo necesita recopilar los resultados de ejecución de un par; en el escenario bft, el cliente necesita recopilar 2/3 n + 1 2 / 3n + 12 / 3 N+El resultado de la ejecución de 1 .
c. El madledger actual necesita proporcionar al usuario un atributo de configuración (con valor predeterminado) para establecer este umbral, que es configurado por el usuario.

Inserte la descripción de la imagen aquí

  • Arquitectura de sistema optimizada: desacople la ejecución de transacciones y el consenso, y delegue la tarea de ejecución de transacciones a un sistema comercial externo en lugar de utilizar contratos inteligentes.
    Inserte la descripción de la imagen aquí
  • ¿Por qué debería llevarse a cabo tal optimización?
  1. El proceso de generación de un bloque incluye: empaquetado de bloques, consenso y ejecución de bloques y envío de bloques. Nota: Paquete primero y luego consenso De hecho, al igual que en balsa, el líder empaqueta las transacciones en el orden en que las reciben y transmite un bloque como entrada para followeriniciar el consenso. En todo el proceso de consenso, la entrada es una cadena de datos de bytes, no es necesario preocuparse por el contenido específico, siempre que se acuerde esta cadena de datos.
    Inserte la descripción de la imagen aquí
  2. Las transacciones en los bloques se ejecutan en secuencia, lo que aumenta en gran medida el tiempo utilizado para la generación de bloques y es el cuello de botella del rendimiento de todo el sistema.
  3. El negocio de igualación de valores en el sistema de valores es muy complicado y difícil de implementar mediante contratos inteligentes.
  4. El contrato inteligente necesita recargar el contrato cada vez que procesa una transacción, y la eficiencia del procesamiento es baja y no puede cumplir con el rendimiento requerido para las transacciones de valores.
  • Ventajas de la lógica empresarial y la arquitectura de separación por consenso:
  1. Simplifica el proceso de consenso y mejora la velocidad del consenso.
  2. Mejore enormemente la escalabilidad del módulo de ejecución, puede optar por utilizar la máquina virtual integrada según las necesidades o utilizar la comunicación de red para acoplar el sistema empresarial original de la empresa.
  3. El enchufar y desenchufar el módulo de ejecución no solo reduce el costo de desarrollo, sino que también facilita la ejecución paralela de transacciones, de modo que la velocidad de ejecución de transacciones puede cumplir con los requisitos de procesamiento de transacciones de alta frecuencia en la producción real.
② Optimización del almacenamiento
  • Antes de la optimización, Hyperchainhay 3 partes que deben almacenarse:
  1. Información del bloque: contiene todo el contenido necesario para que la cadena de bloques se utilice LevelDBpara el almacenamiento.
  2. Información de transacción única y recibo de transacción: 交易hash como clave, el contenido de la transacción se almacena como valor y la información de transacción única 交易hash + 特定前缀作se almacena; como clave, el contenido de transacción se utiliza como valor y se almacena el recibo de transacción.

Usando una base de datos independiente (LevelDB) para almacenar la información anterior, 以空间换取时间una operación de lectura de la base de datos puede completar la consulta de información de transacciones y recibos de transacciones.

  1. Datos de la cuenta: al igual que Ethereum, los contratos inteligentes utilizan un modelo de cuenta para organizar los datos.
  • Optimización de almacenamiento:
  1. Adoptando la estrategia de separar la lógica comercial y el consenso, después de utilizar sistemas comerciales externos para ejecutar transacciones, el flujo de transacciones y la información de la cuenta se almacenarán en la base de datos de la Bolsa de Valores de Shanghai.

1. El flujo de transacciones del usuario y la consulta de información de la cuenta, el acceso predeterminado a la base de datos de la Bolsa de Valores de Shanghai.
2. Si el usuario especifica la Hyperchainconsulta, el primer intento de leer la información de la orden de la memoria, si necesita consultar la información histórica de la orden, analice la información del bloque para regresar al usuario.

El TPS del sistema comercial de la Bolsa de Valores de Shanghai es de 150.000 y el de la Bolsa de Shenzhen es de alrededor de 300.000. En escenarios comerciales de alta frecuencia, la E / S puede convertirse en el cuello de botella de rendimiento de Hyperchain.
La transferencia de la ejecución de transacciones y las tareas de almacenamiento alivia la presión de lectura y escritura de la base de datos de Hyperchain.

  1. Las auditorías institucionales y las auditorías son de baja frecuencia y bajos requisitos de presentación El método de almacenamiento en bloque original se puede cambiar de almacenamiento LevelDB a almacenamiento de archivos.

1. Organice los bloques de una forma determinada y guárdelos en archivos con un sufijo específico.Cada archivo almacena un bloque de datos fijos.
2. Después de escribir el archivo o, el índice de bloque se agregará a la parte reservada del encabezado del archivo.
3. La complejidad de tiempo para acceder al bloque es O (1) O (1)O ( 1 ) , la E / S de disco es principalmente escritura secuencial, lo que puede mejorar la eficiencia de E / S.
La transferencia de la ejecución de transacciones y las tareas de almacenamiento alivia la presión de lectura y escritura de la base de datos de Hyperchain.

Inserte la descripción de la imagen aquí

③ Optimización de la verificación de firma digital
  • Punto de optimización 1: verificación de paquetes de varios pedidos
  1. Las transacciones de valores incluyen order per secondel concepto de OPS ( ), los pedidos y las transacciones no son correspondencia uno a uno, una transacción puede contener múltiples pedidos.
  2. Empaque varios pedidos en un todo para obtener una firma unificada y luego el servidor realizará una verificación unificada.
  3. El pedido empaquetado se considera una transacción, pero cuando se verifica la transacción, debe ser deserializada y cada pedido se ejecuta en secuencia en el orden de empaquetado del pedido.
    Inserte la descripción de la imagen aquí
  • Punto de optimización 2: algoritmo de verificación de curva elíptica acelerado por GPU
  1. Utilice una Tesla M40tarjeta aceleradora para acelerar la verificación de la firma del algoritmo SM2 (algoritmo criptográfico de clave pública de curva elíptica, una especie de secreto nacional).
  2. Para lograr el mejor rendimiento del sistema paralelo, el paralelismo del programa debe ser mayor o igual al número de subprocesos físicos paralelos del sistema paralelo ( Tesla M403072).
  3. Después de la transformación matemática, el paralelismo de la operación de firma es 6 y el paralelismo de la operación de verificación de firma es 12.
    Firma de tamaño de bloqueo B = 3072/6 = 512 Firma de tamaño de bloque = 3072/6 = 512B L O C K S I Z E nombre firmado=3 0 7 2 / 6=5 1 2
    Verificación de firma de tamaño de bloqueo B = 3072/12 = 256 Verificación de firma de tamaño de bloque = 3072/12 = 256Tarjeta de prueba de nombre firmada B L O C K S I Z E=3 0 7 2 / 1 2=2 5 6
  4. Al mejorar el rendimiento de la computación de campo finito e implementar la multiplicación escalar de curvas elípticas en paralelo , se realiza un algoritmo de cifrado de curvas elípticas acelerado por hardware.

2. Análisis de resultados experimentales

contenido Punto de comparación En conclusión
Separación de la lógica empresarial y el consenso frente a la arquitectura tradicional TPS y latencia en diferentes tiempos de ejecución del sistema La arquitectura separada mejora el TPS y reduce la latencia
Antes de la optimización del almacenamiento VS después de la optimización del almacenamiento TPS y latencia en diferentes tiempos de ejecución del sistema La optimización del almacenamiento mejora el TPS y reduce la latencia
Inspección de paquetes de pedidos múltiples Diferentes batch sizeTPS, OPS y latencia El empaque de pedidos múltiples hace que el TPS disminuya gradualmente y los retrasos aumenten gradualmente. Motivos: uno es porque la presión del ancho de banda de la red aumenta y el tiempo de reenvío se hace más largo; el otro es porque aumenta el número de pedidos procesados ​​y la deserialización es más lenta. El aumento de OPS se debe a la reducción del número de inspecciones debido a las inspecciones de paquetes.
Verificación de GPU VS verificación de CPU Diferentes batch sizeTPS y latencia El TPS y la latencia de la verificación de la GPU siempre son mejores que la verificación de la CPU
Numero de nodos TPS y latencia en diferentes números de nodos A medida que aumenta el número de nodos, el rendimiento del sistema primero aumenta y luego disminuye ligeramente. Motivo: el ancho de banda del sistema aún no se ha convertido en un cuello de botella cuando la cantidad de nodos está dentro de un rango determinado; después de demasiados nodos, el ancho de banda del sistema se ha convertido gradualmente en un cuello de botella en el rendimiento.
Tiempo de lote Diferentes Batch timeTPS y latencia Batch timeSin impacto significativo en el TPS del sistema y la latencia
Tamaño del lote Diferentes Batch sizeTPS y latencia A medida Batch sizeque aumenta el TPS , aumenta primero y luego disminuye gradualmente, pero el retraso ha ido aumentando. Razón: el tamaño del bloque ejerce presión sobre el ancho de banda de la red y el consenso y la presión de ejecución que más transacciones aportan al sistema.
Retraso de la red TPS y latencia bajo diferentes retrasos de red El retardo de la red aumentó, el TPS disminuyó ligeramente y el retardo del sistema aumentó en unas pocas frases; después de más de 500ms, no se pudo alcanzar el consenso, lo que hizo que el sistema no pudiera funcionar normalmente.
Ancho de banda de la red TPS y latencia en diferentes anchos de banda de red El ancho de banda de la red es uno de los factores más importantes que limitan el rendimiento de la cadena de alianza y provocan retrasos en el sistema .

Supongo que te gusta

Origin blog.csdn.net/u014454538/article/details/103678793
Recomendado
Clasificación