Problema de manipulación de datos de Corda

Antecedentes: Aprendimos que corda no es a prueba de manipulaciones pero sí a prueba de manipulaciones. Entonces, si uno de los nodos manipuló un estado directamente en la base de datos, otros nodos podrán detectarlo y marcarlo si ese estado se utilizó en transacciones posteriores. Sin embargo, los resultados de nuestras pruebas no fueron según nuestras expectativas. Corda no marcó el estado que fue manipulado y, de hecho, registró el nuevo estado con datos manipulados en todos los nodos participantes.

Prerrequisitos: Comente las validaciones del contrato: Comentamos el código del contrato para verificar si la alteración de datos se detecta en Corda sin que la verificación se realice explícitamente a nivel de comando.

Pasos para replicar:

Iniciar obligación Cordapp.

Crear 3 obligaciones entre la Parte A y la Parte B (100 THB, 256 THB y 100 THB)

Edite la tabla VAULT_STATES en la base de datos de la Parte B, observando las diferencias entre los hexágonos.Las obligaciones con una cantidad diferente están a la izquierda y las dos obligaciones con la misma cantidad están a la derecha. Desde el editor, cuando están en la misma cantidad, hay 2 diferencias (probablemente relacionadas con la identificación lineal y la marca de tiempo) y cuando están en una cantidad diferente, la tercera discrepancia se muestra a la izquierda.

Sobrescriba la parte específica con la cantidad de menor valor, actualice la bóveda utilizando SQL en la bóveda de la Parte B:

Después de esta actualización, verifique la bóveda de la Parte B y las cantidades se cambian a 100 THB en las 3 obligaciones.

Sin embargo, la bóveda de la Parte A mostrará las cantidades originales (100, 256, 100) ya que los datos no se alteraron en la bóveda de la Parte A.

Transferir TODAS las obligaciones de la Parte B a la Parte C

Resultado de las obligaciones de transferencia: la Parte B no tiene más obligaciones

Resultado de las obligaciones de transferencia: la Parte C obtendrá todas las Obligaciones de la Parte B (100 THB para todos, es decir, los datos alterados se transmitieron a la nueva parte)

Resultado de las obligaciones de transferencia: la bóveda de la Parte A también se actualizará con datos alterados. No se pudieron identificar ni marcar datos alterados.

¿Cómo conseguir que los nodos participantes de Corda detecten estados alterados? ¿Me perdí algo de configuración al configurar el nodo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta