La forma más rápida de enviar transacciones

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.

Si está tratando de adelantar otras transacciones, ser un minero es la forma más confiable. (aunque esto está dentro del protocolo, algunos miembros de la comunidad pensarán en esto como "jugar sucio") Si está tratando de incluir dos de sus propias transacciones, debe combinarlas en una sola transacción. Si hay una tercera razón, sería útil saber cuál es.

Respuestas (3)

¿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.

Así que parece que quiero ejecutar un nodo completo y determinar los "criterios de inclusión automatizados" del minero. ¿Hay código fuente disponible en alguna parte para que pueda determinar esto? ¿Qué hay aparte de ordenar por precio del gas? ¿Ordenar por orden de llegada? ¿Es posible mirar directamente a todos los mineros? ¿Cómo haría para hacer eso? En cuanto al precio de la gasolina, supongamos que estoy compitiendo con otra persona por las transacciones de un contrato. Y supongamos que estoy usando un precio de gasolina muy alto, tan alto como docenas o cientos de Gwei.
¿Alguna idea de cuánto tarda un "salto"? ¿Estamos hablando de milisegundos o de segundos? ¿Y alguna idea de qué porcentaje de mineros clasifican por precio de gasolina frente a algo más como el orden de llegada?
No existe un único esquema de inclusión unificado. Podrías mirar lo que parity y geth hacen para inspirarte, pero los mineros tienen una amplia libertad para modificar esto de manera arbitraria. Podrían decir 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.
¿Es posible que alguien pueda sobornar a los mineros/piscinas para que se incluyan en la lista de amigos? Y si es así, ¿se incluiría la lista de amigos en el código fuente abierto?
Gracias compartir Tiene razón acerca de que algunas de estas preguntas son sus propias latas de gusanos. Parece que tengo más cosas divertidas para investigar.
La lista de amigos fue un ejemplo hipotético para demostrar cuán arbitrarias pueden ser las reglas. No sé si algún minero hace algo así. Sobre todo, puede aumentar el precio del gas y la esperanza. De lo contrario, puede intentar encontrar a los principales mineros y hablar con cada uno de ellos para conocer sus criterios de inclusión.

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 timeetc. Tiempo de ingrese la descripción de la imagen aquí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.

Creo que MetaMask usa Infura (según el hombre en las pruebas intermedias). Así que experimenté con el envío a través de Infura y Etherscan. Supongo que podría enviar mis transacciones a ambos con la esperanza de aumentar mis posibilidades de llegar a los mineros lo antes posible.
¡Sí, podrías hacer eso! Eso es si ejecutar un nodo completo no es una opción. Otra idea podría ser ejecutar el nodo en una instancia EC2 en AWS. ¿Asegúrese de que la región que contiene la instancia esté físicamente cerca de usted? Solo una idea. @Pantalla de lámpara
Tocar el asunto exacto. ¿Sería potencialmente ventajoso ejecutar muchos nodos en una variedad de regiones y luego transmitir mi tx a cada uno de ellos? ¿Para aumentar las probabilidades de que llegue antes a todos los mineros?

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 ).

¿Tenemos que pagar por ese token?
Puede obtener un token para fines de prueba de forma gratuita. Simplemente envíenos un correo electrónico.