General
Currently, Tornadocash does not have a reliable default RPC that is fast enough to offer a good user experience on withdrawals and support the special calls needed to display proposals properly.
@Theo suggested to spin up nodes on custom hardware in proposal 19.
We are professionally hosting RPCs for many years in geographic regions that do not require us to censor. We support all chains that Tornadocash needs from day one except BSC (more on this below).
Opinion on Proposal 19
In our opinion, spinning up RPCs for all those chains and optimizing them for the usage and scale of a project like Tornadocash is not an easy task. Especially not without extensive experience hosting blockchain nodes. On top of that, the hardware described by Theo is by far not enough to support hosting all the necessary nodes for Tornadocash (including archival) and would not support throughput high enough for the scale of usage.
See below for a preview of why the proposed node would not support the chains needed and the load:
Storage size
- Archival nodes are needed for tornadocash
- Ethereum Mainnet needs nearly 3TB storage as of this month with Erigon and lighthouse (most efficient)
- Polygon Mainnet needs ~7TB storage as of this month, again with Erigon (most efficient)
- Arbitrum needs 4TB storage as of this month
- Gnosis needs ~1TB
- BSC needs ~10TB with an experimental erigon version
That’s ~25TB of data, but because of deterioration of speed of SSDs, you would need to have ~20-30% more and outlooking the next year at least 50% more. So about 35TB are responsible.
Storage Speed
RPCs are intrinsically storage bound. This means that the bottleneck of nodes is nearly always the storage. Because of that it is required for good speed nodes (especially archival) to host purely on NVME drives (enterprise use only).
The best NVME drives are 8TB NVME enterprise drives. Hosted in a reliable data center this alone would be ~750-1000 USD per month, not including server costs. Including a high speed server it’s in the region of ~2000 USD per month.
Load balancing and distribution
Because one node can be out of sync or have other issues, plus the speed of one drive is sometimes not enough to support high loads, it is required to have at least 2 servers, better even 3 that do the same. Using the formula from before this would be up to 6000 USD per month for a reliable RPC infrastructure that is fast and responsive and supports the chains that Tornadocash needs.
Conclusion
In our opinion, starting an RPC service that is reliable and fast with no prior experience would be much more expensive than stated in proposal 19.
Therefore, we propose to provide access to Tornadocash to our enterprise RPC services that are ready and used by many businesses needing full speed nodes already. Tornadocash can utilize our load balanced, high speed infrastructure from day one.
We can provide the services for cheaper because we have a ready infrastructure and people paying for the services already. On scale it’s easier and cheaper to host RPCs.
Our experience
We are hosting Ethereum Mainnet, Optimism, Polygon, Arbitrum and Gnosis nodes and have been in the RPC business for enterprises for 2 years. Our nodes are highly optimized and load balanced, especially for trace calls and eth_getLogs, which is what Tornadocash needs the most.
We purposefully choose geographic regions for hosting our nodes that do not require any censorship as this is our number 1 priority, being in the Crypto space since 2012.
We would be able to provide IP rate limiting to prevent abuse and high-speed nodes to increase fetching speed on withdrawals for all users. Including no limits per second if usage spikes.
Pricing
For access to the already supported chains by us, we are proposing 500 USD per month, or 5000 USD for a full year. This would cover costs for existing users and there would be room to grow if necessary.
We refer to proposal 19 with an average TORN price of 7.19:
695 TORN for 12 months of RPC access to Ethereum Mainnet, Gnosis, Arbitrum, Polygon
BSC
Binance archival nodes do not censor Tornadocash and are fast and well-maintained to provide access for Tornadocash users as of now. If needed, we are happy to host BSC nodes as well and we can be live with BSC nodes within 2 weeks after this proposal passes.
As BSC is significantly harder to host, our pricing would reflect that with 1000 USD per month or 10000 USD per year.
We refer to proposal 19 with an average TORN price of 7.19:
1390 TORN for 12 months of RPC access to Ethereum Mainnet, Gnosis, Arbitrum, Polygon and BSC
Depending on feedback I will create the first or the second proposal.