The Internet Computer’s Road to Mercury Mainnet Launch
The Internet Computer’s mainnet is hosted by standardized node machines running across a decentralized network of independent data centers.
“The DFINITY Foundation was founded to pursue a big question: The internet is a decentralized network that connects everyone and everything, but can its functionality also be extended to become the primary platform on which humanity builds all of its information systems? In response, we have pursued the building of the Internet Computer to extend the functionality of the public internet using an advanced, novel blockchain network that also eliminates the need for legacy technologies such as cloud services, databases, and firewalls. Ultimately, the Internet Computer allows entrepreneurs and developers to reimagine both how and what they build — a paradigm shift that will change everything.”
— Dominic Williams, DFINITY Founder and Chief Scientist
After years of intensive research, development, and numerous breakthroughs in advanced cryptography and computer science, on December 18, 2020, the DFINITY Foundation initialized the decentralization of the Internet Computer’s public network (aka mainnet) as per the Mercury milestone, a scientific achievement that enables the Network Nervous System (NNS), an algorithmic governance system, to onboard thousands of independent data centers and millions of special node machines.
This means that the Internet Computer’s mainnet now exists, and is hosted by standardized node machines that are independently owned and installed within independent data centers. These node machines have been placed under the control of the NNS, the world’s first web-speed, internet-scale public blockchain. The Internet Computer is capable of increasing its capacity without bounds to host any volume of smart contract computations and store any quantity of data, all while being controlled by the NNS, an open, algorithmic governance system that will help ensure that the internet returns to its free and open roots.
The Internet Computer Protocol (ICP), an advanced blockchain computer protocol running across a network of independent data centers, has created a global computer that enables smart contracts to securely serve interactive web content directly into the browsers of end users. It is capable of running next-generation internet services, enterprise systems, DeFi, and dapps. DFINITY initiated the Internet Computer launch series during SF Blockchain Week in November 2019, when the Copper release introduced the DFINITY Canister SDK and Motoko programming language to the public. Then came our release of the Bronze demonstration network at the World Economic Forum in Davos in early 2020. The release of the Tungsten Developer Network last June welcomed third-party developers to the Internet Computer for the first time, and the following September’s Sodium launch event unveiled the NNS to the public as well as breakthroughs in cryptography, DeFi, and the token economics behind the Internet Computer.
Mercury is a momentous occasion. Similar to the birth of the internet in 1969, when ARPANET launched with four nodes based in Stanford, UCLA, UC Santa Barbara, and the University of Utah, the Internet Computer comes into existence as an initial network of seven independent data centers located across the United States, Germany, and Switzerland, allowing the ICP protocol to weave together the compute capacity of node machines running in these secure, professionally managed data centers. The Internet Computer has created more than 500,000 blocks since the launch of mainnet, and the NNS is in the process of onboarding 896 nodes by the end of Q1 2021, followed by thousands of nodes by end of 2021 and then into the millions by 2030.
To appreciate how far we’ve come, here’s a look at how we got to this point…
COPPER
Copper introduced the first public version of the DFINITY Canister SDK (V0.3.0) as well as Motoko, a new programming language that was optimized for creating tamper-proof software and open internet services for the Internet Computer using WebAssembly (Wasm). These tools equipped developers to:
- Author canister smart contracts in Motoko and compile to Wasm.
- Run a local instance or “node” of the Internet Computer — known as a replica — on their laptop.
- Deploy compiled programs as standalone canisters.
- Interact with the canisters using a command-line interface.
Developers could now begin building terminal-based apps. By downloading the SDK and creating a new project, they could access a template “Hello, World” program for constructing canisters in Motoko.
By design, Motoko helps developers write safer and more efficient code, compiles quickly, and communicates with Wasm modules written in other languages. It also enables developers to write sequential code even though Internet Computer canisters — code compiled into a Wasm module and ready to deploy onto the Internet Computer network — communicate with each other asynchronously.
A few key features of Motoko include:
- Native support for software canisters, which are expressed as actors — autonomous objects that encapsulate their state;
- The use of async and await syntax to enable asynchronous messaging as if it was synchronous processing; and…
- Orthogonal persistence, which eliminates the need to maintain and manage external databases or storage volumes.
Using Motoko makes it easier to quickly develop applications on the Internet Computer, but it isn’t the only language developers can use. The Internet Computer uses a Wasm execution environment, meaning that any language that can be compiled to Wasm, such as Rust, can be run on the Internet Computer.
BRONZE
Unveiled at the World Economic Forum in Davos, Bronze demonstrated an example of a new class of open internet services that can be powered by the Internet Computer — in this case, a social network for professional profiles called LinkedUp (an open version of LinkedIn) that runs on the Internet Computer.
Bronze allowed the Internet Computer to jump from a terminal-based stage to desktop web app development:
- Instead of one node running on a laptop, Bronze has a network of servers in an independent data center in Switzerland running full consensus and P2P/transport layers. In the design of our Bronze network, we ensured that apps built on the Internet Computer would provide a user experience comparable to centralized providers. We clocked 18-millisecond reads and two-second writes from and to the Internet Computer.
- Instead of terminal-based apps, canisters built with Bronze store their own front-end, meaning apps can store their state, backend logic, and front-end directly in a canister. Indeed, we built a web app with modern JavaScript. This represents a new and drastically simplified way of building apps for developers, and the beginning of a paradigm shift that we aim to usher in through the Internet Computer.
- Instead of canisters that can only be called from the terminal, canisters in Bronze can send messages to each other, exposing to developers the patterns for inter-canister messaging. This means that one canister can simply call, import, and access the methods of another canister — the first step toward building open and autonomous software.
LinkedUp: behind-the-scenes
LinkedUp: front end
TUNGSTEN
With the release of Tungsten, the Internet Computer is now running across multiple data centers worldwide and open to third-party developers who are building innovative applications and enterprise systems using the network’s expanding range of developer tools.
The Tungsten launch event provides a showcase of the Internet Computer. The presentations included a technical overview of the Internet Computer, demos in Motoko and Rust, and discussions about how decentralized computing architectures represent the next major stage of computer technology, making possible services and applications that create new engines of innovation free from platform risk.
DFINITY also demonstrated CanCan — an open version of TikTok that operates across distributed data centers, enabling it to quickly scale storage as needed — at the Tungsten launch event. CanCan was built with less than 1,000 lines of code to highlight the simplicity of building on the Internet Computer.
Tungsten represented the Internet Computer’s jump from desktop web app to mobile development, and challenged conventional assumptions about blockchain computers. The fact that CanCan is running on the Internet Computer across multiple data centers marks the Internet Computer as a new type of blockchain computer with infinite capacity and performance that rivals the traditional cloud.
SODIUM
Sodium unveiled the Network Nervous System, the open algorithmic governance system that controls the Internet Computer. The NNS oversees participation in the network, and is responsible for inducting and rewarding data centers. The Sodium launch event detailed how the NNS manages the token economics behind the Internet Computer and explained how ICP utility tokens will be used for “cycles” and governance.
Cycles fuel the running of software canisters on the network. Software operators worldwide must acquire ICP utility tokens and convert them to create cycles, which also disappear when used as fuel for computation. As ICP utility tokens are converted to create cycles, their supply will fall.
ICP utility tokens can also be used to participate in governance. It will be possible to lock ICP tokens within the NNS to create “neurons” that allow you to vote on proposals that affect the network’s operation. The NNS generates new ICP utility tokens to reward nodes that are being run by data centers and neurons that are voting within the NNS. Sodium showed how these dynamics will create a stable store of value within the ecosystem for DeFi, which has been a major challenge besetting the emerging sector.
The Sodium event also feature presentations and demos that detailed the advanced cryptography and consensus algorithms of the Internet Computer, the building of open internet services to operate as autonomous software with tokenized governance, how software canisters are an evolution of smart contracts, and much more.
MERCURY
The Mercury milestone now puts the Internet Computer on a short path to a final “Genesis” decentralization step, which involves the NNS releasing ICP utility tokens to holders in the form of voting neurons, which will occur after it processes a trigger proposal, possibly within Q1 2021. Once Genesis requirements are triggered, more than 50,000 ICP utility token holders will either begin participating in network governance or dissolve their voting neurons to release the ICP tokens inside, converting them into cycles to power computation or transferring them, however best suits their purpose.
“The Internet Computer is the third great innovation in blockchain,” says Dominic Williams. “The first innovation was Bitcoin, which introduced cryptocurrency, and is now playing the role of digital gold. The second innovation was Ethereum, which introduced smart contracts, which are now powering the DeFi revolution. This third major innovation, the Internet Computer, introduces the first true blockchain computer, which will enable the world to reimagine how we build everything — using a blockchain with seamless, unbounded capacity. Inside the Internet Computer Protocol, Chain Key cryptography makes this all possible — a combination of dozens of computer science breakthroughs such as Random Beacon, Probabilistic Slot Consensus, Advanced Consensus Mechanism, Network Nervous System, Subnets, etc. that allows the Internet Computer to be the first blockchain computer that runs at web speed with unbounded capacity.”
One of the primary complaints about blockchain technology is its lack of speed, and one of the greatest preconceptions is that it is intentionally slow. The roots of such thinking date back to the first blockchain, Bitcoin, which typically takes roughly 30–60 minutes to finalize transactions. Developed a few years later, Ethereum used an updated form of Proof-of-Work to speed things up, but it is still far from achieving the web speed that’s needed to deliver compelling online user experiences.
The Internet Computer has smashed these performance barriers through the application of Chain Key cryptography, which allows the Internet Computer to finalize transactions that modify the state of smart contracts (i.e., update data hosted in cyberspace) in 1–2 seconds. While this is an enormous improvement, it is still insufficient to allow blockchain developers to construct competitive user experiences, in which responses must be provided in milliseconds. As a result, the Internet Computer splits smart contract function execution into two different types, “update calls” and “query calls.” Update calls are those we are already familiar with, and take 1–2 seconds to finalize their execution, while query calls behave differently because any changes they make to state (i.e., the memory pages of a developer’s WebAssembly canisters) are discarded after execution. Essentially, this allows query calls to execute in milliseconds “on the edge.”
With Mercury’s initiation of the Internet Computer’s mainnet, developers and applications will now formally migrate to the decentralized public network. The mechanisms in place to support developers, entrepreneurs, and new dapps include potential investment from the Beacon Fund, which is managed by Polychain Capital and funded by Andreessen Horowitz and DFINITY.
We invite you to come see what’s possible…
Look out for important Mercury launch updates in the Internet Computer Review newsletter.
Join our developer community at forum.dfinity.org.