es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Validación de entrada en Solidity

Estoy programando una Dapp. Necesito calcular el área de unas coordenadas geográficas (geo polígono). ¿Puedo calcular el área de estas coordenadas geográficas en el lado del cliente? ¿Es posible que el usuario lo falsifique? ¿Me sugieres que lo haga en Smart Contract?

Puedo realizar fácilmente estos cálculos en el lado del cliente (utilizando la biblioteca TurfJS), pero dado que Solidity no admite el tipo Float y también debido al costo, puede que no sea una buena idea realizar estos cálculos en Smart Contract. ¿Cuál es tu opinión?

En Smart Contract, dado que no se admiten variables Float, tengo que almacenar las lat/lon (coordenadas del polígono) como String o UINT. Quiero calcular el área del polígono seleccionado.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Calcular el área de un polígono geográfico implica realizar operaciones matemáticas que pueden estar sujetas a manipulación o alteración por parte de los usuarios si se realiza en el lado del cliente. Por lo tanto, se recomienda encarecidamente realizar dichos cálculos en el Smart Contract en lugar de confiar en el lado del cliente, ya que proporciona un enfoque más seguro y transparente.

    Aunque Solidity no admite el tipo Float en este momento, existen métodos alternativos para aproximar el área de un polígono utilizando coordenadas enteras. Uno de esos métodos es descomponer el polígono en múltiples triángulos y calcular sus respectivas áreas utilizando la Fórmula del cordón de zapato. Esto requerirá convertir las coordenadas del polígono a enteros y realizar los cálculos necesarios en el Smart Contract.

    Si bien este enfoque puede aumentar el costo de ejecución del Smart Contract, proporciona una forma más segura y confiable de calcular el área de un polígono geográfico. Por lo tanto, se recomienda realizar estos cálculos en el Smart Contract en lugar de confiar en el lado del cliente.

Comments are closed.