¿Cuál es el cálculo máximo que puede realizar una consulta o una función constante en Solidity?

Dado que las funciones de consulta o constante solo se ejecutan en un solo nodo, no hay dependencia del gas o el límite de gas. Estoy realizando Quicksort en el método de consulta/constante. EVM puede ordenar una matriz de longitud de hasta 50000. La función devuelve cero si aumenta el tamaño de la matriz.

Respuestas (1)

Cada operación ejecutada por la cadena de bloques cuesta gasolina. El número máximo teórico de operaciones que se pueden ejecutar es, por lo tanto, max gas/block .

De lo contrario, toda la cadena de bloques podría recibir spam (y eventualmente eliminarse) con while(true){}llamadas a funciones.

Las funciones constantes (las que no modifican el estado), se pueden ejecutar a pedido, en su nodo local y luego no costaría nada de gasolina. Pero si llama a esa función desde una transacción , le costará gasolina.

Every operation executed by the blockchain costs gas. The theoretical max number of operations that can be executed is thus the max gas/block.Esto no es cierto para funciones constantes.
Te di la razón por la que esto es cierto. Te publiqué el enlace a otra respuesta que respalda mi afirmación. Aquí hay una referencia a la documentación oficial de solidez donde puede ver que agregar 2 números consume 3 de gas. ¿Qué te hace pensar que todo el mundo te miente y que en realidad no cuestan gasolina?
Las llamadas a funciones a través del método RPC eth_callpermiten la lectura gratuita de los datos del contrato. La mayoría de las bibliotecas que usan RPC tienen una funcionalidad como esta. Consulte github.com/ethereum/wiki/wiki/JSON-RPC#eth_call . Es de solo lectura, por lo que, por supuesto, cualquier cambio de estado que provoque no será permanente.
@flygoing, tienes razón y eso es lo que quise decir con funciones ejecutadas en un nodo local . Sin embargo, si dicha función se llama desde una función de contrato inteligente, que no se llama a través de RPC, pero es ejecutada por la cadena de bloques, entonces cuesta gasolina.
Correcto, pero eso claramente no es lo que OP estaba preguntando, y solo estás siendo pedante para ser pedante.
Es posible que haya malinterpretado la frase ejecutada en un solo nodo en la pregunta original de OP y no me di cuenta de que se refiere exclusivamente a las llamadas a la función rpc.