Sending Raw Transactions Fast: Measuring How Much Improvement bloXroute Can Bring to Node Service Providers

bloXroute Team
bloXroute Labs
Published in
5 min readOct 6, 2020

By bloXroute Co-Founder and COO Eyal Markovich

Our test results show that if node infrastructure as a service providers, Infura and Alchemy, use bloXroute, their users are able to send transactions faster to the Ethereum network. We saw a speed differential of up to 600ms faster for transactions that used the bloXroute BDN. This translates into real money for Ethereum users.

In a recent post, bloXroute’s Co-Founder and Chief Architect Professor Aleksandar Kuzmanovic estimated the value in USD that bloXroute’s fast transaction propagation brings to bloXroute users. The TL;DR: Even a 600ms speed improvement translates into an 8% improvement in one’s trading strategy.

bloXroute’s fast transaction propagation is carried out using a single endpoint called blxr_tx that accepts raw transactions and propagates them quickly to the Ethereum nodes that are connected to bloXroute. But how fast is this propagation? In this post we will share some early results and document the test methodology we used for the benchmark.

The Results

We benchmarked the performance of blxr_tx versus sending transactions to two different node infrastructure as a service providers — Infura and Alchemy. We looked at two measurements:

  • How many times transactions (tx) sent via bloXroute (blxr_tx) was faster than transactions sent without bloXroute
  • When bloXroute service was faster, by how much was it faster? That is, how long after the tx message arrived from blxr_tx did it arrive from the other service?

The table below summarizes the results. Users that want to achieve faster transaction propagation can contact the providers directly to enable BDN integration. All users can get better transaction propagation by using bloXroute’s Cloud-API blxr_tx directly.

How fast can node infrastructure providers propagate transactions using the BDN?

To test the effect of such an integration, we completed another round of testing, integrating the BDN with Infura. Every transaction that was submitted to Infura was sent by the Infura node to the BDN as soon as possible. The results show an impressive improvement of 350–400ms.

Test Methodology

To perform the test, we used a transaction generator to send transactions to the Ethereum mainnet and used a few scripts that report when the transactions were received by the nodes.

Tx Generator: The generator creates pairs of transactions and sends them to two services: to bloXroute (blxr_tx endpoint) and to the node infrastructure service (eth_sendRawTransaction endpoint). The two transactions in each pair used two different ETH accounts (one for each service) and have similar fee structures that are different from the previous pairs. The two transactions in each pair were sent at the same time to both services. The generator then slept for a short interval before processing the next pair. The generator was running in Chicago for the above test with RTT of 38ms to the bloXroute Cloud-API.

The Receiving Script: The receiving script subscribes to the Ethereum node newPendingTransactions stream. The newPendingTransactions stream reports when a new transaction is added to the Ethereum txPool. The script can match the transactions received from the two accounts used by the generator to submit the transactions (one account was used for bloXroute and one for the node infrastructure provider) with their matching fee. Based on the account of the transaction that arrived first for each pair, it knows which endpoint was faster and can determine the delta duration. We ran the scripts against three nodes in the US, EU, and AP. You can think of the receiving nodes as miners that are connected to the BDN.

Conclusion

bloXroute’s BDN propagated transactions faster when the node infrastructure as a service provider was connected to the BDN. bloXroute is already integrated with Chainstack and will provide updates on the progress of integration with Infura and others in the coming months.

Get Started Today.

Anyone can take advantage of bloXroute’s BDN — today. There are three ways to connect.

1. Through a node as a service provider

Please contact your provider directly to add in bloXroute.

2. Gateway

For those that run full nodes, the Gateway offers an entry point to the BDN. Your full node peers with a Gateway, which is connected to the rest of the bloXroute Blockchain Distribution Network. The Gateway then sends and receives transactions and blocks to your node.

You can also bypass your node and speak directly to the Gateway-API, which supports receiving commands that can be invoked directly from users’ application or via the bloXroute-cli utility..

3. Cloud-API

The bloXroute Cloud-API is a set of endpoints that allow users to send and receive data from the BDN. This option is perfect for users who do not run a full node. Transactions can be sent from the bloXroute-cli or directly using a curl / https request and received from the BDN by subscribing to the Transaction Stream.

To Begin:

  1. Register an account.
  2. Select a tier based on your needs (all plans come with a 14-day free trial). All plans can be paid for in cryptocurrency, including DAI, ETH, BCH, and BTC.
  3. After downloading the artifacts, unzip the content of the archive to a folder. The archive contains the certificate and the key file in a pem format. (The files are stored in the sub folder external_gateway\registration_only. You should not change these folder names.)

Use blxr_tx to send transactions fast via the Cloud-API or Gateway-API

  • Method: blxr_tx
  • Params: a json that consists of the mandatory raw transaction string and optional flags

Have a problem? Email our team at support@bloxroute.com or post your question in our Technical Support channel on Discord.

Get Started Today For Free.

--

--

bloXroute Team
bloXroute Labs

Scaling blockchains to thousands of on-chain transactions per second. Today.