1

We are a medium size company building a blockchain application that requires us to interact with the Bitcoin blockchain (+ several other cryptocurrencies). One option is for us to use a 3rd party service that provides us with a uniform API to interact with the blockchain (some examples are BitPay, BlockCypher, BitGo & CoinPayments). The other option is to self host the blockchain node on our servers and natively interact with the blockchain (no middleman involved).

If we go with 3rd party services there’s usually a monthly fee and/or a small percentage charged for each withdrawal (between 0.25% - 1%). So this would be one big downside of going with a 3rd party service. On the other hand, if we host the blockchain ourselves we would be required to perform ongoing maintenance, server upgrades, implement extra security protocols and so on.

A colleague warned me that for every coin we wish to support, we will be required to hire a dedicated expert developer to maintain each node at a cost of $40,000 per year per node

To be clear, we are not concerned about the initial setup of the nodes as we have expert developers who will assist us with that. Our primary concern is related to the ongoing costs to maintain, upgrade, debug and deal with ongoing security concerns of running a large number of nodes on our own server.

It is cheaper for us to hire a developer who will setup all the nodes on our server vs. paying a monthly fee and/or withdrawal fee. Our only concern is related to the long term maintenance costs associated with self hosting nodes.

Are the concerns of my colleague valid or unfounded? Are there valid reasons to believe we will regret self hosting in the long term due to ongoing maintenance costs? If so, what are some issues that we are overlooking with self hosting?

Thank you

Note:

I did see this SE answer that partially addressees this issue. However, a big part of the answer is focused on the initial setup costs of self hosting:

Using RPC calls to your local bitcoin node requires then some developer knowledge, or a dev-team. That can add to costs in setting up your environment

As I stated in my question, this is NOT really a concern for us. Our only concern is related to the ongoing costs of self hosting vs. using 3rd party service.

5
  • 1
    Where could they have possibly got the idea that maintaining a bitcoin node costs $40,000 a year? – Anonymous Feb 5 at 18:52
  • 2
  • @Prayank No. I'm fully aware of the alternatives as I explicitly state in my question. My question is NOT about what alternatives exist but about the long term maintenance costs (maintaining, updating, scaling and securing) self hosted nodes vs. using a 3rd party service. – Design X Feb 5 at 19:21
  • Cool. I have answered the question below. – Prayank Feb 5 at 19:32
  • @Anonymous perhaps not for bitcoin, but for some poorly developed altcoins that number is maybe too low – chytrik Feb 5 at 22:02
2

The truth is somewhere in the middle. Your colleague is correct to point out that there is an ongoing cost for maintaining your own full nodes. Beside the employee cost, there is also the cost for the actual server infrastructure, which may be higher than you think if you consider that you will need to maintain high availability, redundancy, testing instances, and that you should sequester each foreign software from your own network and other nodes.

Overall, you can probably get away with having fewer infrastructure engineers than the count of supported cryptocurrencies, as maintaining a full node should not be a full-time effort. For example, the maintenance work between Bitcoin and bitcoin-derived altcoins such as Litecoin and BCH would have large overlaps. Cryptocurrencies with unrelated codebases and more strongly deviating APIs and data structures will be significantly more work. Frankly, the reference implementations of some "top 20" cryptocurrencies are inadequate for production use. If you deploy your nodes in the form of infrastructure as code, you have more development effort up front, but significantly less work later on.

However, the biggest cost difference is the time and effort you will need to invest to build out your own integrations with each different full node. The wallets packaged with full nodes usually do not scale to the needs of an enterprise, so you will likely need to invest in custom blockchain indexing, wallet software, address management, key management, transaction building, balance tracking, user management, etc. This is where the mentioned services can provide a lot of the heavy lifting. If you do end up developing your own integrations, I would definitely recommend having at least one engineer per supported cryptocurrency that is passionate about it specifically.

Even if you decide going with one of the mentioned service providers, I would heartily recommend that you run your own full nodes to reconcile the information the service provides with the corresponding blockchain data. This will still save you from doing your own wallet management, address management, transaction building, multisignature setup, simplify scaling, and let you focus on getting your business off the ground more quickly. You may even consider using a service provider intermittently, and then transition to self-hosting as you finish work on your own integrations.

Just to be clear: you fully entrust the future existence of your company to such a service provider. I hope that makes you at least a little bit uncomfortable and that you thoroughly take their approach to security and your counterparty-risk to them into account for your decision.

In the past few years, I have observed a few companies being extremely successful and rapidly leveling up their UX by focusing just on Bitcoin and sidestepping altcoins altogether. You may even consider a hybrid approach where you build your own Bitcoin solution and use a separate service for whatever alts you must support to limit your exposure.

Disclosure: In my previous job I was the UTXO Coin lead at BitGo.

6
  • Thank you for your excellent analysis! "I would definitely recommend having at least one engineer per supported cryptocurrency that is passionate about it specifically" As you indicated, with self hosting option it's necessary to hire someone with a high skill set for each (loosely related) coin. And since it is a relatively uncommon skill set, this talent won't come cheap. The main problem, the way I see it, is that as a "startup" you are paying a very large sum of $$$ upfront, regardless of the number of transactions you process initially (cont) – Design X Feb 5 at 19:37
  • (continued) In contrast, while most 3rd party services charge a percentage of the withdrawal amount, you are not paying $200,000 upfront to use their service. You pay only based on the amount of $$$ you process in transactions. I think this is an important issue for startups. Also, the scaling issue you mentioned is important. Do you setup infrastructure to handle 1,000 transaction per day or 100,000? – Design X Feb 5 at 19:40
  • @DesignX: I agree, developers with a cryptocurrency background is not neither cheap nor abundant. Obviously, it depends on your location, but I suspect that you may find that $40,000 p.a. to be actually highly optimistic. In the US, you'd probably be looking at $150k+ per position (salary+rest). Even going with a service provider, you will not be able to provide the full palette immediately. Start with one or two, do those well, add what makes sense as you grow. – Murch Feb 5 at 19:58
  • I can't tell you at which volume your operation would break even, it depends on what amounts those transactions encompass, whether you are talking about on-chain transactions or trades, what your actual costs and revenue look like. – Murch Feb 5 at 20:00
  • Nice answer. Moderators of Bitcoin SE promoting altcoins. – Prayank Feb 9 at 19:34
0

Are the concerns of my colleague valid or unfounded? Are there valid reasons to believe we will regret self hosting in the long term due to ongoing maintenance costs? If so, what are some issues that we are overlooking with self hosting?

I don't think maintenance of a bitcoin core full node will be a difficult task if the developer is experienced enough and there is always help available on stackexchange or github or reddit or IRC if any issues.

I am not sure about other cryptocurrencies and it's also offtopic on this website. Some of the altcoins are not even secure enough to be used and maintain nodes. Few are scams. This is not my opinion but a fact. Even Bitcoin developers like Greg Maxwell have shared similar thoughts so many times on Reddit:

nullc-reddit-comment

Considering all the tradeoffs including cost, security, privacy, dependencies etc. It's always better to use your own bitcoin full node.

I have mentioned one incident from India in this answer: https://bitcoin.stackexchange.com/a/99881/

There is a remarkable number of businesses, people you'd never imagine, using blockchain.info or other centeralized wallet/node services.

Many businesses are remarkably allergic to running their own nodes. This violates an explicit assumption stated in the Bitcoin whitepaper (section 8, last sentences) and has a real impact on technical decisions made by the Bitcoin community. This has only become worse in a world with a zillion altcoins because it becomes prohibitively expensive to have expertise in many systems and some altcoins have extremely unreliable and/or resource hungry nodes.

The end result is a major poorly disclosed and diversified risk factor in many centralized services.

https://www.reddit.com/r/Bitcoin/comments/hpg9j3/336_btc_hacked_from_cashaa_they_were_using/fxrrbiw

I won't consider an exchange or project worth using and risking any funds if they can't run their own full node for bitcoin.

3
  • Thanks! A big part of your response focuses on the wider implication on the BTC network when too many people rely on 3rd party services vs. self hosting. I don't see you addressing the substance of the question that much: whether self hosting will cost more in the long run due to ongoing maintenance costs vs. 3rd party. Even if not a difficult task, you still need to hire 2-3 developers at $40K/yr if you support multiple coins. So you are still paying $120K upfront regardless of the number of transactions you process.. if we focus only on Bitcoin it's still $40K per year for one coin.. – Design X Feb 5 at 19:56
  • I have mentioned this in my answer: Considering all the tradeoffs including cost, security, privacy, dependencies etc. It's always better to use your own bitcoin full node. and I don't know about $40k because I don't need a developer to maintain bitcoin node for my project but if I had to I will not pay $40k per year for maintenance of node. For other cryptocurrencies: offtopic and not worth supporting each as well. Node is a basic thing to build a secure project. – Prayank Feb 5 at 20:03
  • OK great thanks for clarifying! – Design X Feb 5 at 20:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.