Actualmente estoy realizando mi lógica Ethereum usando pyethereum y luego enviando transacciones a través de un nodo remoto usando https://infura.io/ . No es lo suficientemente rápido para mis necesidades. ¿Qué puedo hacer para asegurarme de que mis transacciones lleguen a la cadena de bloques lo más rápido posible? ¿Debo ejecutar un nodo completo yo mismo? ¿Hay algo mejor?
Ignore el precio del gas para esta discusión.
¿Qué puedo hacer para asegurarme de que mis transacciones lleguen a la cadena de bloques lo más rápido posible?
De manera más simple, el minero que encuentra el siguiente bloque debe tener su transacción en su grupo y elegir incluirla. Debido a que eligen, no puede "garantizar" la inclusión, solo aumentar sus posibilidades.
En un mundo ideal, para obtener la máxima velocidad, se comunicaría directamente con todos los mineros y conocería sus criterios de inclusión automatizados por adelantado. (No siempre es exclusivamente el precio)
¿Debo ejecutar un nodo completo yo mismo?
Pasar por infura significa un salto adicional entre tú y los mineros... pero tal vez infura esté más de un salto más cerca de los mineros de lo que estarías si ejecutaras un nodo completo. Además, nada le impide enviar tanto a infura como a su nodo completo ejecutado localmente, lo que aumentaría sus posibilidades de que la transacción llegue al siguiente minero antes de que encuentre el bloque.
Ignore el precio del gas para esta discusión.
No sé cómo puede hablar de incluir su transacción rápidamente sin discutir el precio del gas. Es un componente crítico.
¿Estás asumiendo que estás pagando lo suficiente como para que todos los mineros acepten tu transacción? (entre los mineros que alguna vez aceptan transacciones) De acuerdo con estas estadísticas de gas actuales , eso significa al menos 50 gwei, que cobra el percentil superior de los mineros.
¿Está bien una cobertura del 99 %? Si necesita una cobertura del 99,9% de los mineros, es posible que deba recopilar sus propias estadísticas sobre el precio del gas que debe incluirse.
¿Hay algo mejor?
Fundamentalmente, necesita transmitir su transacción. Si tiene una buena máquina host, conexión a Internet, cliente y conexión a mineros destacados, entonces nada será más rápido que ejecutar su propio nodo completo.
if sender in friend_list: include_transaction()
. El papel amarillo impone solo algunas restricciones, como la validez de la transacción. Varias de estas preguntas de seguimiento están lo suficientemente matizadas como para ser su propia pregunta SE.MetaMask puede actuar como intermediario y publicar transacciones en su nombre.
Etherscan permite a los usuarios enviar transacciones sin procesar a través de una API .
Sugeriría leer esta pregunta ya que tiene buena información.
Además, si el factor limitante está en el extremo de Infura, le sugiero que considere la propagación de transacciones. No estoy al tanto de la configuración de Infura para sus nodos, pero pueden restringir la cantidad de pares a los que están conectados. Esto podría ralentizar la propagación de transacciones en la red y, por lo tanto, aumentar en promedio el tiempo que se tarda en incluirse en un bloque.
Aquí hay algunos detalles más sobre el tiempo de inactividad y los tiempos de respuesta de Infura . Esto debería ayudarlo a cuantificar sus necesidades en términos de response time
etc. Tiempo de respuesta actualmente en
408ms
.
Creo que ejecutar un nodo completo es una opción viable si le preocupa el rendimiento; simplemente porque tienes más control.
Puedes darle una oportunidad a Fosha.org .
Si necesita un token de acceso para la prueba, puede enviarnos un correo electrónico ( support@fosha.org ).
tallista