By Ria Bhutoria and Wilson Withiam
We spend a lot of time discussing barriers to entry as it relates to user experience in crypto. We do not spend enough time discussing barriers to entry around developer experiences in crypto, so we’d like to take this opportunity to do just that.
Ethereum is supported by one of the most active developer communities among open cryptocurrency networks. According to Electric Capital’s Dev Report, an average of 216 developers contribute code to Ethereum’s repositories every month, 166 more than the monthly average of Bitcoin – the next highest by developer activity. This total may even be understated as it does not factor in contributors to the various infrastructure projects and dev tools built atop the base Ethereum protocol. A key reason that dapp developers are drawn to Ethereum is the variety and availability of supplementary infrastructure services and developer tools, which simplify application deployment and maintenance processes as well as enhance overall developer and user experience.
Infura is one such utility aimed at making the process of building and deploying dapps on Ethereum as easy and seamless as possible. Infura is a ConsenSys spoke that started off as an internal service and opened itself to the community in 2016. It provides an API connection to a cluster of nodes to facilitate the connection between dapps and the Ethereum network along with distributed storage via IPFS. It also introduced a service layer to improve efficiency (formerly known as Ferryman) and an analytics/monitoring dashboard. Infura hosts full Ethereum and IPFS nodes on Amazon’s cloud servers, targeting 24/7 uptime. Dapp developers can bypass the process of setting up and maintaining a full node locally by connecting to Infura. Infura was first to market in addressing this major pain point, and, as a result, has become one of the most pervasive pieces of infrastructure within the Ethereum ecosystem. We recommend this post on Stack Exchange for a better understanding of nodes on Ethereum. In a nutshell, a full node stores Ethereum’s transaction history. It is separate from an archive node, which stores the full history of Ethereum states.
The company claims to process more than 13 billion code requests per day (though this has been challenged, see: Infura’s drawbacks), more than double the amount of traffic it handled two years ago. In terms of annual monetary volume, Infura relayed transactions that moved over 7 million ETH in 2017 and 9 million ETH as of April 2018 — we were unable to find data around the volume routed through the platform as of the end of 2018 or year to date 2019. Considering the upward trend in Ethereum activity (i.e. transaction count, active address count, etc.), volume routed via Infura may be even higher today.
Infura is the preferred method of interacting with Ethereum for hundreds of companies and over 50,000 dapps and developers. According to a survey by Fluence, 63% of respondents elected Infura as their primary way to connect to Ethereum. Wallet providers like MyEtherWallet and Metamask are two applications that, combined, are responsible for a large share of transaction traffic. Other popular dapps such as uPort, CryptoKitties, and MyCrypto also use or have used Infura — CryptoKitties has since migrated to Alchemy as well, which we discuss below. Truffle, the standard toolkit for smart contract development, enables developers to build dapps with Infura.
During the 2017 crypto mania, the team indicated that it operated about 1,200 nodes (and routed ~20% of global Ethereum transactions). According to more recent comments from Infura’s co-founder, Michael Wuehler, Infura operates 5% to 10% of Ethereum nodes. Its use within the Ethereum ecosystem as either a developer or a user has seemingly become unavoidable.
However, the success of Infura is accompanied by criticisms that it presents a single point of failure for a significant number of dapps on Ethereum, which is antithetical to the decentralized platform the Ethereum and crypto community envisioned. On the other hand, infrastructure that enables developers to subvert the complexities of building on and interacting with the networks and other decentralized platforms like IPFS has played a major role in attracting a large developer community, and Infura is no exception. In fact, Infura’s services in connecting dapps to Ethereum have been essential to date.
Infura is the primary focus of this Insights piece, given that a majority of Ethereum dapps and developers rely on the provider. However, in the second part of the piece, we highlight infrastructure-as-a-service providers of mission critical solutions that have launched more recently and have the potential to take share, expand the market and reduce reliance on a single provider. They similarly recognize the gravity of the challenges web 3.0 developers face on Ethereum and other networks and are addressing these hurdles in new and unique ways.
Block explorers like Etherscan support many types of read requests — they allow users to view address balances, the status of a transaction, and even query contract states. However, dapp developers have more complex needs that explorers like Etherscan do not satisfy. First, block explorers like Etherscan do not fully support write operations – transactions that change the state of the blockchain (though they are starting to get more sophisticated). Additionally, they limit the rate of conducting read operations and have limited flexibility and customizability in monitoring events, making them ineffective at meeting the needs of developers given the types and volumes of requests they require.
Prior to Infura, the only way that developers could interact with (read and write) blockchain data was to sync with the network and run a full node of an Ethereum client (e.g. Parity, Geth). Full nodes download and validate all Ethereum transactions since the genesis block and, once synced, execute each mined transaction. Consequently, operating these nodes requires nontrivial overhead related to storage, bandwidth, and memory at a high level. Thus, downloading clients and keeping the software up to date consumes a considerable amount of time and resources, especially given continuous growth in the size of the blockchain.
These resource and time commitments increase in conjunction with the size of the network and the amount of traffic being routed through the node. For instance, Geth client storage requirements have increased 48% YTD, in line with Ethereum network activity (as measured by transaction count) to almost 268GB. Parity clients have fared better comparatively (as they offer the ability to prune Ethereum state tries to save some space), increasing 25% YTD, but still require over 187GB of available disk space (see figure below). Aside from storage concerns, initial node synchronization — ensuring the copy of state changes stored by the node matches that of the main chain — can take hours or even days depending on the type of sync selected1, and success isn’t guaranteed. As a result, operating a node is becoming prohibitively expensive and time consuming, especially for independent developers and small teams looking to launch their smart contracts — though it is important to note potential solutions are being researched and discussed within the Ethereum developer community as it prepares for the transition to ETH 2.0.
To complicate matters, there are no incentive models in place to encourage Ethereum full node operation and upkeep. With compounding storage costs and maintenance complexities, node operators have been abandoning their efforts at an increasing rate – the number of live Ethereum full nodes has dropped from almost 12,000 in Dec 2018 to about 8,000 today2. For dapp developers, these infrastructure costs will rise as the size of the network grows regardless of their application’s success and user generated volume. This is likely a reason for the downtrend in full nodes, as developers seek alternative solutions that are not as time and resource intensive.
Light nodes (or light clients) have been discussed as a potential lightweight alternative, and a way for low power devices to connect to the network. These nodes do not interact directly with the main chain, but rather rely on full nodes to read and write information to the blockchain. By using full nodes as an intermediary, light clients only need to download the minimum amount of transaction data required to meet the demands of its operator. Thus, in theory, light node disk space requirements should be significantly lower – in some cases, a few hundred megabytes – and syncing should be completed in minutes. Despite these advantages, a light client is only able to join the network if it can find and connect to a compatible full node. Light client reliance on full node accessibility increases the risk of a delayed or failed network sync – an inconvenience for users but a potential catastrophe for developers. For instance, dapp developers may not be able to deploy or issue updates in a timely manner if the underlying full node disconnects or if a surge in light client demand for access to the network exceeds supply. Access available to light clients is further constrained by the declining number of full nodes as well as a lack of an incentive model for full nodes to support them (we discuss a project, VIPnode, that is trying to tackle this design flaw).
The development of popular Ethereum clients like Parity and Geth is also constantly evolving as the software is relatively young (Ethereum is only four years old!) and has not been battle-tested. Thus, developers running full nodes must maintain and upgrade their node software manually (there’s no such thing as auto-update) to ensure that nodes reflect the latest security patches and protocol updates. While this is crucial to the safety and smooth functioning of applications, developers are not always able to successfully track and deploy these changes, and nodes may go down or fall out of sync. This creates security holes and is disruptive to end users of the applications. Moreover, these challenges divert developer attention away from actual application development towards DevOps type responsibilities such as configuring and maintaining basic infrastructure.
The solution to date
Enter Infura. Infura is an infrastructure-as-a-service project operated by ConsenSys that provides developers with a gateway to the cluster of Ethereum nodes it runs and maintains. As we explain above, it is often challenging, risky, time consuming, expensive, and inefficient for developers to set up their own node infrastructure, and, beyond connecting to the Ethereum network, there is no economic incentive to run a full node. Service providers like Infura allow developers to focus on dapp development as they handle the configuration, maintenance and upkeep of nodes. The process of connecting to Ethereum via Infura is much quicker than downloading and syncing a cluster of full nodes. Infura is a free service (for now) that significantly reduces economic and other costs of maintaining a connection to Ethereum. Developers do not need to concern themselves with manually updating and running the latest version of their client, keeping a client synced with the network if it is offline for some time or restarting their Ethereum client if it gets stuck. All in all, Infura provides developers with improved reliability and accessibility to Ethereum and off-chain storage on IPFS.
Infura hosts Geth and Parity nodes that allow dapps to connect to the Ethereum mainnet and its testnets (Ropsten, Rinkeby, Kovan and Goerli). One of the core pieces of the Infura infrastructure is its service layer, formerly known as Ferryman, which provides some advancements beyond what developers would receive if they ran their own node(s). These basic services include smart routing and caching, load balancing, and an analytics dashboard that developers can use to monitor how they’re using the network.
Smart routing is the process of making high performance and low latency routing decisions based on current traffic conditions. Infura uses Ferryman to choose the most efficient path for requests. For example, certain requests are more intensive to process than others. In this blog post, Michael Wuehler describes the difference between the API method call, eth_blockNumber versus the relatively heavier eth_getLogs request. If induced, “getLogs” can bring “that particular node to a crawl for several minutes.” To avoid slowing down the entire service, Infura uses Ferryman to direct such requests to client backends dedicated to handling heavier requests.
Caching refers to the process of storing data related to prior computations offline. With caching, not all incoming requests need to hit a live node, which can reduce response times. Using the prior example, eth_blockNumber lends itself well to caching. Ferryman also facilitates load balancing, which distributes computation across multiple servers so that no single server is burdened with handling too much demand.
Infura operates a small portion of all nodes on Ethereum. However, due to the reliability guarantees Infura heralds over operating infrastructure internally, a disproportionate amount of traffic is directed through the provider. For example, any dapp that relies only on Metamask has a second order reliance on Infura. In February 2018, Wuehler highlighted, “Initially, CryptoKitties made the decision to depend completely on MetaMask, and funnel everybody through the MetaMask browser to use the dApp, and all of that traffic goes through Infura nodes on the backend. As a result, we were supporting all of that traffic.” This brings us to the drawbacks of relying on a single provider.
Single point of failure
Perhaps the most poignant concern the community has raised about Infura to date is the centralized nature of its operations. Infura nodes are run by a single provider, ConsenSys, that outsources its node operations to AWS. Cloud infrastructure providers like AWS can offer superior uptime, storage, speed, threat detection, load balance and more compared to individual full nodes. These performance and reliability guarantees give Infura a competitive edge relative to running your own nodes. But routing a significant percentage of transaction volume through a single centralized provider creates a single point of failure as well as unfortunate optics for a platform marketed as decentralized.
Since Infura processes the majority of Ethereum dapp traffic, a disruption in Infura or AWS services could render many dapps unusable. And while AWS servers boast a high degree of reliability, its data centers are not immune to downtime – most recently, an AWS data center in Virginia went down for four hours in May 2018 affecting customers up and down the U.S. east coast. A more sinister threat is that Amazon and other enterprise cloud infrastructure providers (i.e. Google, DigitalOcean, Microsoft Azure, IBM, Oracle, etc.) could deny Infura access to their services. It’s an unlikely outcome, but the scenario highlights the issues associated with relying on a single entity for vital resources.
The Infura team recognizes the long term “health” of Ethereum necessitates a shift towards a more decentralized node arrangement and that the company needs to play a critical role in facilitating this evolution. As such, the team has issued over $140k in grants to support projects pursuing a similar vision, including Turbo Geth, a project looking to lower the cost and complexities associated with running a full node, and VIPnode, an open source development that introduces incentives for full and light node operators (see: Emerging landscape of node infrastructure providers below). Both initiatives aim to encourage users and developers alike to operate their own full node infrastructure, thereby increasing Ethereum’s architectural decentralization and reducing general dapp reliance on Infura and AWS. Infura’s funding efforts become even more prescient as the number of live Ethereum nodes continues to fall and, consequently, Infura nodes assume a larger share of the available full node market. As Afri Schoedon points out, “If we don’t stop relying on Infura, the vision of Ethereum failed.”
Privacy & network security
The impact of Infura offering a better infrastructure experience at no cost is that users and developers are less likely to operate their own full node. In addition to the centralization concerns, this migration away from running local software and hardware in favor of outsourcing operations to larger providers introduces potential threats to data privacy and overall network security. In terms of privacy, running a full node helps keep the most sensitive activity local, whereas routing transactions information through a third party service risks leaking information to these node providers such as public addresses, IP locations, and in Infura’s case, project IDs. Sizable infrastructure operators like Infura could further track and aggregate this information via transaction mapping. However, to date, data harvesting has not appeared to be a core component of Infura’s business model as API access can still be requested anonymously.
A declining base of full nodes can also compromise network security. Full nodes play a critical role in preserving network integrity by helping audit and verify transaction history and ensuring miners are acting in good faith. Furthermore, the strength of the network increases in conjunction with the number of individual participants as the potential for collusion goes down. But if the number of individuals running a full node continues to fall (due to prohibitive resource requirements or more attractive alternative solutions), large node operations will gain a greater share of network influence (a phenomenon that Vitalik Buterin refers to as political centralization). A continuation of this trend could result in a similar situation to proof of work mining pools, where only a small minority would represent a majority vote in determining, for example, transaction validity or which improvement proposals to implement. We are not saying that solely Infura is responsible for this, but its success may be one of multiple indirect catalysts (which the team recognizes and is working towards a solution).
Reliability of performance metrics
Since Infura node infrastructure is privately maintained, only Infura team members have access to platform metrics. As a result, some in the community have questioned the reliability of the performance statistics shared by the team, in particular the claim Infura processes over 10 billion API requests per day. Last year, Joe Lubin (co-founder of ConsenSys) mentioned that these 10 billion daily requests were twice the number of queries processed by Google in the same time period (~3.5-6 billion per day). The claim was met with skepticism from the likes of Preston Byrne and Riccardo Spagni, with Byrne citing the comparatively low number of Ethereum daily active users. Byrne continued by saying, “there is no way that’s genuine, de novo traffic in the same sense that Google gets it.”
Effectiveness in handling enterprise-grade demands
Infura is a free service as of now. It is, first and foremost, a cluster of nodes targeted at making it easy for anyone to connect to Ethereum without having technical know-how, time, and funds to deploy. It also provides additional services and functionality beyond what users and developers can expect by operating their own nodes, such as smart order routing, caching, load balancing, and basic analytics. However, these services alone may not suffice in satisfying the demands of production traffic, enterprise-grade applications, larger blockchain companies, or constituents such as funds that have significant monetary value at stake. Such stakeholders require significantly higher levels of support, reliability and speed guarantees than crypto enthusiasts and hobbyist dapp developers.
All that being said, it is impressive to see what Infura has accomplished in such a short period of time with a lean team, completely free of cost. Moreover, Infura is aware of these flaws and has been working towards becoming more distributed by reducing its dependence on a single cloud service provider. Additionally, the team has indicated that there are efforts underway to structurally increase decentralization of the platform while simultaneously providing funding for relevant projects striving to achieve a similar mission.
The Infura team also recognizes the gravity and precariousness of the current situation: “If every single dapp in the world is pointed to Infura, and we decided to turn that off, then we could, and the dapps would stop working. That’s the concern and that’s a valid concern.” As a result, they claim to be taking steps to make the platform more robust, agnostic and decentralized for end users. According to Wuehler, their “efforts are mainly about continually trying to push more and more decentralization into the way that [the] technology stack is delivered,” though we have yet to receive concrete details on how they intend to do so.
The team has discussed monetizing the platform at some point down the line — running this kind of infrastructure for free forever is likely not sustainable. Michael Wuehler mentioned that Infura could implement a freemium model as one path to earning revenues. He said the team will likely always provide a free service for connecting to the network to developers that are dabbling in building applications on Ethereum, though with limited functionality. As projects that enter the pipeline in this way mature and increasingly need a provider that can handle production traffic, Infura could charge for offering premium tools, services and support. Further, according to this reddit comment, Infura already offers commercial support companies that need it. Additionally, Infura has taken a collaborative approach in providing consulting services to peer node infrastructure providers, including Cloudflare, whose solution we discuss below.
Emerging landscape of node infrastructure providers
In the meantime, numerous node infrastructure-as-a-service initiatives and companies have cropped up that have the potential to not only reduce reliance on Infura, but also lead to the expansion and greater maturation of the market. In the thick of crypto winter, members of the community who experienced or became aware of the perils of running full nodes locally, especially in times of significant volume and congestion, saw an opportunity to start building base layer infrastructure that would better prepare the ecosystem for an uptick in activity.
Developer-focused node infrastructure providers
Recently, Cloudflare announced an Ethereum gateway structured in a similar fashion to Infura that leverages Cloudflare’s existing network to help developers access Ethereum and deploy smart contracts without downloading any software locally. Cloudflare also offers an IPFS gateway, which, combined with the Ethereum gateway creates Cloudflare Distributed Web Gateway. Cloudflare is a web 2.0 incumbent that has been praised for democratizing access to basic infrastructure services on the internet. It provides cloud infrastructure and internet security services to smaller websites and online businesses that don’t have the resources to deploy custom equipment “to improve 1) performance, 2) load balancing, 3) WAN Optimization, 4) secure the perimeter (firewalls), 5) fend off DDoS attacks and malware.” Given this track record, and the experience and trust web 2.0 developers have garnered in Cloudflare, the company may have an upper hand in attracting these developers that are exploring web 3.0 and its infrastructure service providers. Initially, Cloudflare plans to offer the service for free but has said there could be opportunities to generate revenue down the line. It is unclear how distributed Cloudflare’s Ethereum gateway is relative to Infura (it is arguably just as centralized), but the idea is that it provides an alternative option and, if it achieves adoption, could reduce the ecosystem’s reliance solely on a single provider.
Bison Trails has built a best in class multi-cloud, geographically distributed platform with enterprise-grade security, orchestration, redundancy, and scaling that intends to make it easy for clients to run highly efficient node infrastructure on the proof-of-stake networks they support. These currently include Cosmos, Decred, Livepeer, Tezos, and Algorand with support for additional networks (including Libra) in the pipeline. Their primary customers are exchanges, custodians, and investors, and while it is not advertised on the website, Bison Trails also helps developers deploy full nodes on Ethereum. In this post, Viktor Bunin, Protocol Specialist at Bison Trails, highlights how Bison Trails addresses the main obstacles that developers and other stakeholders face in setting up their own node infrastructure so that they can focus their attention on their area of expertise. Theoretically, Infura could leverage Bison Trails services to build a more distributed version of its platform.
Alchemy provides infrastructure services to companies and developers interfacing with Ethereum. Alchemy started off as a data and insights provider to some of the largest crypto companies, hedge funds, and venture capital funds as well as traditional investors. In the process, the founders realized how challenging it was for them, who had engineering backgrounds and expertise, to configure and maintain local node infrastructure. Simultaneously, they realized this was a challenge that many blockchain companies and developers were facing as well and one they could address by opening up their proprietary configuration.
Since going live, Alchemy has already become the infrastructure provider of choice for many popular dapps on Ethereum, including open finance applications like 0x, Kyber Network, Augur, Set Protocol, Radar Relay, KyberSwap and game dapps like CryptoKitties (which previously used Infura), Gods Unchained, Cheeze Wizards, and Axie Infinity. Alchemy wants to handle the DevOps function, which requires specific knowledge and resources, on behalf of its clients for less than it would cost them to deploy the function internally. Alchemy’s target market consists of larger blockchain and crypto companies and projects that require enterprise-grade services, uptime, and reliability. Based on client testimonials Alchemy displays on its website, praises include superior customer service and support, reliability and speed — according to the founders, customers have told the company that running queries through Alchemy is twenty times faster than through Infura right now — though it is unclear the degree to which they rely on a single or multiple enterprise cloud providers.
Blockdaemon is a somewhat different multi-cloud node infrastructure and deployment platform that supports multiple public and private protocols including Ethereum, Stellar, Aion, Quorum, Hyperledger Fabric, Algorand, Cosmos, Livepeer and more. The company uses a SaaS based revenue model to monetize its services, charging per node per month. Blockdaemon deploys nodes on behalf of clients across enterprise cloud providers like Amazon, Azure, Google Cloud, and DigitalOcean or on-premise. The company’s core clients consist of the supply side — protocols, as well as the demand side — large funds and financial institutions, exchanges, large Fortune 500 companies and media companies. Clients on both sides are firms with more sophisticated, custom requests. They also offer solutions for crypto aficionados looking for a more hands-on way to engage with their network of choice. Infura offers users a connection to shared Ethereum nodes. Blockdaemon, on the other hand, helps clients run their own set of nodes that are specific to them, “Each user who launches a node has an individual billing relationship with Blockdaemon. This means that they control their own node, and it cannot be taken down by another user’s administrative action.”
Blockdaemon also calculates a “decentralization score” for each of the networks it supports. The parameters it evaluates to come up with the score include nodes, users, clouds, geography, and external nodes.
QuikNode is another cloud-based node infrastructure provider that supports Ethereum and its testnets (Rinkeby, Roptsten and Kovan) as well as Ethereum Classic. The company started in 2017 during the ICO craze to offer a full node service that would make wallets more functional, as wallet providers using local nodes were struggling to keep up with customer demand at the time. It has since expanded to become the preferred infrastructure option for a number of Ethereum dapps, including DAOstack, Ethermon, CanYa, and Enclaves, among others.
QuikNode deploys and manages full Ethereum nodes (including archive nodes) on behalf of customers and hosts these nodes on DigitalOcean cloud servers. Each customer is directly connected to their own private node, which can provide more consistent access to blockchain data for front-end applications. QuikNode also offers the ability to batch transactions without set limits to account for potential scalability constraints. Infura, on the other hand, hosts shared public nodes and leverages caching for data storage management and Fastly to process static requests. This feature stack is suited for scalability but can lead to inconsistent or even out-of-sync data feeds — not ideal for certain users, like traders.
QuikNode uses a subscription based model to generate revenue, with each private node priced at about 1 ETH per month. Payments are still only accepted in ETH, though the team said it is planning to support fiat transfers via Stripe and may look into accepting DAI. Also in the pipeline is the potential support for other networks beyond Ethereum and Ethereum Classic, including IPFS, NEO, Risk, and EOS. In fact, the QuikNode team has been testing EOS and claims QuikNode’s technology can expedite the process of spinning up new EOS nodes without having to sync from scratch. The company hopes to eventually support dapps that may leverage multiple blockchains.
User-focused node infrastructure providers
DAppNode is a community funded and fully open source project that has received support from Ethereum Foundation, Ethereum Community Fund, Aragon NEST, GitCoin and other donors. Its ethos is to help dapp users shift from using centralized platforms to access decentralized networks and services. DAppNode provides software that users can easily deploy on their own server to spin up their own node and also provides hardware that comes pre-installed with a full Ethereum node. Once configured, DAppNode users can share access to their node with others. Developers that have already built dapps can use the team’s DAppNodePackages (DNP) to allow end users to access their application via DAppNode. It is important to clarify that the project is targeting everyday dapp users rather than dapp developers — DAppNode is based on the idea that it should also be easy for dapp users to run their own nodes to allow for greater decentralization of web 3.0. They released v0.2.0 in May.
Vipnode is another grassroots, open-source project that creates incentives for running a full node and catering to light clients. Economic incentives could make it more attractive and sustainable for full nodes to incur the expenses of providing a gateway to light clients that need to connect to a full node to engage with the Ethereum blockchain and are willing to pay for priority access. If it gains traction, it could incentivize an increase in the deployment of full nodes or, at the very least, greater use of light clients connecting to existing full nodes. As previously mentioned, Vipnode is one of the projects receiving financial support from Infura, and its creator, Andrey Pretrov, was recently hired by the Infura team to continue development.
DAppnode and Vipnode announced a partnership that will allow users of DAppnode software and hardware enter Vipnode’s full node pool and earn income for allowing light clients to connect to their node.
Many of the alternative node infrastructure providers we highlight here are also not fully decentralized or open source and may face similar scrutiny around privacy and security that we highlight in the drawbacks section. That is not ideal and the community should continue to strive towards increasing decentralization at the infrastructure level. However, it will take time before it is feasible, logical and efficient for crypto applications and companies to deploy their own network of full nodes on Ethereum and other next-generation smart contract platforms.
Meanwhile, the growing landscape of advanced infrastructure services does reduce the ecosystem’s reliance on a single solution, which is a substantial improvement over the current state. It is important for service providers to abstract away the infrastructure layer that requires specific knowledge and expertise to configure and maintain so that developers can focus their time, resources, funds, and attention on what they do best — building high quality applications with high quality user experiences. Additionally, these service providers have plans to expand the types of tooling they offer to clients, which could broaden the market to include larger participants as well as provide existing participants with the opportunity to mature and scale.
In his essay, The Challenges of Running Blockchain Infrastructure, Viktor Bunin draws the analogy, “Netflix is an expert in algorithmic content curation and Lyft is an expert in ride sharing — both use AWS.” Given the current state of crypto networks such as Ethereum, it is tough to deny the immense value that can be created by separating infrastructure from dapp development and providing developers with composable building blocks. As it stands, it is inefficient for everyone to be working on everything — it’s a poor and ineffective use of everyone’s time and, as we’ve discussed throughout the piece, can leave each stakeholder worse off.
1 Both Geth and Parity recognize multiple modes of syncing a full node. For instance, Geth offers a full and fast sync. A full sync downloads every blockchain element starting from the genesis block and can take a couple of days to complete. Fast syncs only process transactions starting a more recent block and as a result, can finish syncing in a few hours. Partity’s warp sync mode is considered to be similar to Geth’s fast sync.
3 These are Ethereum’s two most common clients, which collectively make up 95% of all Ethereum clients.