The DFINITY Foundation developed CanCan, a Douyin-like on-chain application with less than 1,000 lines of code, which proved its usability and attracted a number of outstanding developers to test the waters.
2020 is the year of the explosion of DeFi, which not only produces new wealth creation effects, but also proves the value of blockchain. DeFi applications continue to set sail after experiencing de-bubbles, "attacking the city" in CeFi's original territory. From the perspective of market value, the new DeFi leaders have also surpassed many "old mainstreams".
However, from an application perspective, Dapp scenarios currently mainly focus on financial services such as trading, lending, and financial management. Public chains are also attached to DeFi hotspots, trying to copy the Ethereum ecosystem. On the contrary, more frequent "traditional Internet applications" such as Douyin, Didi, and Meituan have not been moved to the chain because the current blockchain infrastructure is difficult to support.
With the maturity of DFINITY, an Internet computer based on blockchain was born. This system, which takes into account both on-chain governance and traditional development habits, hopes to lower the entry threshold for developers and at the same time amplify the business imagination of entrepreneurs, thereby shaking up the era of traditional Internet applications and creating the next huge outlet for on-chain entrepreneurship. .
Just like Uniswap, which has only a few hundred lines of code, launched an impact on CEX through Ethereum smart contracts, the DFINITY Foundation developed CanCan, a Douyin-like on-chain application with less than 1,000 lines of code, proving its usability and attracting A group of outstanding developers came to test the waters. But in 2021, when public chains in the new era are all accelerating, whether DFINITY can keep up with the rest is also the focus of developers.
Considering that DFINITY is an extremely large blockchain computer engineering project, we will first take readers to take a bird's-eye view of the general architecture of DFINITY from the outside (readers who have a certain understanding of its technology can jump directly to the second part), and then compare The similarities and differences between DFINITY and other public chains and the traditional Internet. Ultimately, based on understanding the architecture of DFINITY and the revolutionary changes to the on-chain development experience, a magnificent blueprint for the future Internet will be presented to everyone.
Here, Odaily Planet Daily would also like to express special thanks to many senior blockchain developers, including SNZ technical director NEO, DfinityFun community manager/OureaGroup co-founder Punk, HashQuark senior blockchain R&D engineer Flanker, and DFINITY core developer Paul (listed in no particular order) evaluated DFINITY from a different perspective and provided valuable perspectives and insights.
Understand DFINITY from the technical architecture
The original idea of DFINITY began in 2015. The team founded the DFINITY Foundation in October 2016 and established the network layer in January 2017. At that time, the core goal was to solve some of the shortcomings of Ethereum. As technology develops and the team receives more financial support and absorbs more talents, DFINITY resets its vision based on the previous one and is committed to becoming an Internet computer.
DFINITY operates based on the blockchain computing protocol ICP and adopts a hierarchical structure, which mainly includes software containers, subnets, nodes and data centers. It can be seen as consisting of many subnets (Subnets), and there are multiple software containers in each subnet with specific functions and attributes (Note: The software container Canister is an interoperable basic unit in DFINITY). In the software The container contains the code and status uploaded by the user. The bottom layer of DFINITY is an independent data center hosting dedicated hardware. Nodes run on the data center. The nodes are responsible for processing data and state execution in subnet containers.
DFINITY structure diagram
We can borrow the "composition of life" from biology books to understand the architecture of DFINITY: the data center is like the basic material elements that support the composition of life, and the nodes are like neurons, which connect and control many organs and tissues. Each software container is like an independent cell, and the subnetwork formed by a group of software containers is like an organ formed by a group of cells. Different organs have different functions. When many organs and neuron networks are connected, a complete Individuals that implement very complex functions and operations.
"Ethereums" go to the left, DFINITY goes to the right
On January 10, 2021, EOS founder BM announced his resignation from his position as CTO of EOS parent company Block.one. The Ethereum competitor that had the most high hopes at the time has just taken a back seat. The former Ethereum competitors have gradually lost their ability to subvert Ethereum. The emerging public chains that tell stories of cross-chain expansion are more like complementors to Ethereum, repeating the architectural style of the Ethereum ecosystem.
Punk, DfinityFun community manager and OureaGroup co-founder, said in an interview with Planet Daily that many public chains, including Ethereum, still focus on issues such as TPS, but if the user experience and fragile centralized connections are not solved, None of these issues can bring about big changes. But DFINITY has made huge innovations from the bottom up, introducing blockchain to the world from the perspective of a new track.
Dominic Williams, founder and chief scientist of the DFINITY Foundation, said at the "2020 FAT Value Era Summit Forum and Awards Ceremony": "Internet computers are the third great innovation of the blockchain. The first innovation is Bitcoin, which introduced The concept of currency is now playing the role of digital gold; the second innovation is Ethereum, which introduces smart contracts and promotes the DeFi revolution in decentralized finance; the third major innovation is the Internet computer. This is the first true, universal blockchain computer that allows us to reimagine the way we build everything, a seamless, unlimited performance blockchain."
Dominic’s words briefly describe the three major features of DFINITY: the ability to build various applications, seamless connections, and unlimited performance. We will also elaborate on these three dimensions.
1. DFINITY can build various applications. The blockchain ecosystem dominated by Ethereum is currently concentrated in fields such as DeFi, crypto art, and games (the latter two are relatively early), and these Dapps are still relatively basic in terms of functional implementation. The current public chain market has not yet seen a bottom layer that can support various types of multi-functional applications.
DFINITY challenges this status quo “by example.” In order to prove that developers can build any application on it, the DFINITY Foundation developed CanCan, an application similar to Douyin, with less than a thousand lines of code. Different from DeFi, short video applications receive massive amounts of data uploaded by C-end users all the time, and they also need to process this data at any time to allow videos to play smoothly and users to interact freely. This is a good example of “using a leading product to prove the underlying possibilities.”
So assuming that Ethereum realizes all the functions of 2.0, can it also support the smooth operation of short video DAPP?
SNZ technical director NEO said in an interview that if all Ethereum 2.0 functions are implemented, it is possible to produce some more complex applications. However, Ethereum does not have its own data storage layer in the underlying architecture. Currently, blocks can only store a series of data such as token transfer transactions. In the future, it will be difficult to store massive data like Douyin. When developing and designing DFINITY, it designed native data storage functions at the bottom layer (Note: DFINITY has automatic storage and orthogonal persistence functions, which will be further introduced later). This also gives DFINITY a strong late-mover advantage.
In this regard, we asked about the possibility of combining Ethereum and IPFS. NEO believes that currently, IPFS is more for static data storage. People have doubts about its network availability, and it is not suitable for large-scale application-based dynamic data storage. On the whole, Ethereum is currently more suitable as an asset settlement layer, and storage is more focused on centralized storage; in the future, Ethereum may also adopt a more decentralized storage solution based on the principle of decentralization.
In addition, Punk believes that compared to development on public chains such as Ethereum, DFINITY is very flexible and efficient in code implementation. Smart contracts on the public chain are "dead" things and require external triggering; but the container on DFINITY is always in an activated state, and the written program can achieve active triggering through a communication protocol.
It can be seen that the initial settings of DFINITY take into account the needs of more types of applications.
2. DFINITY can achieve seamless connection. On DFINITY, developers can build programs and applications directly on the Internet without the need for cloud services, databases or payment interfaces. Developers can build applications seamlessly because they don't need to worry about a lot of middleware.
Punk talked about such a thing: "A few days ago, Metamask was updated, and its interface has also changed. Because my front and back ends are separate, they need to be repaired. It took a long time. As an independent developer , if I want to develop a very complex application, such a thing will take up most of my time, and then I basically can’t do anything. On DFINITY, which integrates front and back ends, there is no need to buy a front-end server or deal with intermediate issues. Dirty work of connection.”
Punk further added: "When building applications on Ethereum, it is difficult to avoid the problem of centralization of connection points. In order to facilitate ordinary users, most applications currently need to build a Dapp front end, which requires purchasing a server or hosting On IPFS, a 'bridge' needs to be built in the middle to connect. For developers, building it will be time-consuming and laborious; more importantly, if you want to develop social applications and other applications, the user experience will be very poor. If it is DeFi mining , it’s okay if it takes a while; if it’s chatting, many users can’t stand it.”
Compared with the traditional Internet, it is very convenient to develop on DFINITY. There is no need to worry about the database, load balancing, network distribution, firewalls, etc. This frees up more time and energy for developers.
3. DFINITY has strong performance advantages. When applications on DFINITY need to expand performance, the original container can create a new container or fork itself. Each additional container increases the overall memory capacity, increasing the number of containers while also increasing the overall update and query call throughput. This is called unlimited performance.
In addition, although there is only one execution thread for container update, DFINITY allows the application to execute many containers in parallel. This is because different containers in DFINITY have different functions. An application will involve multiple containers. Some containers may be data containers, some may be trust containers, etc. The containers call each other. When the application is updated, They don't affect each other either.
In addition, DFINITY distinguishes between "update requests that need to update the container status" and "query requests that will modify the container status." The latter does not make permanent changes to the memory. This way, there can be any number of concurrent threads within the container processing query calls at any given time. These query calls are run against the memory snapshot recorded in the last determined state root. When making a cross-container update call, DFINITY allows the execution thread to be moved to a new update call if the call blocks.
A development experience close to the traditional Internet and features superior to the traditional Internet
I wonder if you have noticed that Dominic’s description of the advantages of DFINITY above is mainly aimed at the developer community. This is all due to the transmission path of the public chain B2D2C. In the development process of underlying infrastructure, if you win the developer, you will win the world. For DFINITY, conquering a "small group" of other public chain developers is only a small step, while "recruiting" the majority of traditional Internet developers is a big step.
We asked several veterans with both Internet and blockchain development experience what their core considerations were when choosing a certain underlying layer. Among the answers we collected, development thresholds (including language, environment, middleware) and migration costs are two highly overlapping points. Several developers also had something to say about the development experience on DFINITY.
1. DFINITY greatly reduces the difficulty of development by simplifying the technology stack and simplifying development storage. DFINITY core developer Paul explained this in detail: "Programmers are very complicated when programming on the traditional Internet, because many traditional technologies are limited by reliability and security, but after DFINITY effectively solved these two problems, many Middleware is no longer necessary, so development difficulty can be effectively reduced by simplifying the traditional technology stack (note: technology stack generally refers to the combination of N technologies together to achieve a certain function as an organic whole). Further simplification lies in storage. In the past, due to the instability of storage, we needed to make backups on the hard disk, but this is completely unnecessary. The latest hardware technology can already solve this problem. DFINITY has made greater progress in this field Developed and released a data persistence solution. This solution eliminates the need for developers to worry about persistence issues. As long as the program is written and not deleted, it will always run. This is logically a huge problem for developers. With the simplification, they no longer think of the program as an application that exists in a complex environment, but can continue to run in the virtual space.”
2. DFINITY’s development language is very concise and very inclusive. The two main languages currently used for development on DFINITY are: Rust and Motoko. According to official reports, DFINITY will support all development languages in the future. Flanker, senior blockchain R&D engineer at HashQuark, said in an interview that based on the recent experience of developing on DFINITY, the new programming language Motoko is the first to be introduced. Of course, it also supports many other languages, such as C and Rust, etc. "Generally speaking, it is relatively comfortable to develop, and we can directly write the front-end and back-end code together, much like developing an ordinary application. After the development is completed, deployment is also very simple, and it can support one-click deployment, and then return Testing and debugging can be done through the front-end page.”
It can be seen that just being close to the Internet is not enough to attract a large number of developers. In addition to a friendly experience, it also needs to have features that are better than the Internet, so that entrepreneurs "have" to choose a new bottom layer. We also summarize the advantages and features of DFINITY in the eyes of developers collected as follows:
1. DFINITY provides a secure randomness channel and expands the boundaries of Internet applications. Although Bitcoin is gradually becoming mainstream, DeFi applications on Ethereum are booming, and the ecosystem of various blockchains is becoming richer, it is still not perfectly connected or compatible with the traditional Internet. DFINITY's secure randomness channel may be a bridge between the two worlds, using APIs to sign Bitcoin and Ethereum contracts, creating a new Internet that is more in line with the digital age.
2. DFINITY is highly fault-tolerant and will not crash due to faults. From a background perspective, the biggest difference between a process and a container is that the container has a copy on all nodes in the DFINITY subnet, so it is highly fault-tolerant. This means that when a process fails, it will crash, but when the container encounters this situation, the state will be rolled back to before the current message request starts to be executed. After the rollback, the container can continue to execute new message requests.
3. DFINITY has automatic storage and orthogonal persistence functions. DFINITY's underlying data center uses a professional memory server. The container is equivalent to running in the memory environment. When developers program in the container, it will automatically be stored on the underlying layer and can be called directly, which means that the developer's reading and writing are all in Completed in the container, it does not need to be stored in the hard disk first like the traditional Internet, and then called from the hard disk when needed. In DFINITY, developers don't have to think about persistence, they just write code.
4. DFINITY demonstrates more mindless Internet design principles while protecting privacy. On the (traditional) Internet, trying to connect to some software requires knowing the IP address of the computer running the software and the TCP port the software is listening on. On DFINITY, if you wish to call a function, you only need to know the container's identity and function signature. In addition, in order to run the hosted code, the data center charges application developers in the form of cryptocurrency, but cannot access the data, which makes it difficult for advertisers to collect user activities on the Internet and protect privacy.
The new entrepreneurial outlet brought by DFINITY
Since DFINITY has so many advantages compared to the traditional Internet, how will developers/entrepreneurs use the "artifact" to create great changes?
Flanker replied: "You can imagine running a public, virtual computer on our huge Internet. Its computing resources are large enough, and we can fully trust the use and data security on it, because it is Decentralized, tamper-proof, and trustless. People can freely upload and deploy their own applications on it for others to use without investing in huge server rental costs. I think the most essential difference between DFINITY and the traditional Internet is that It has no operating entity and anyone can use the applications above without trust.”
Dominic has said that perhaps the biggest opportunity for entrepreneurs and investors is related to building "open Internet services." The release of CanCan is also intended to use this as an application template to provide entrepreneurs with some code demonstrations, and encourage everyone to implement the various applications and functions they want to implement on DFINITY and create high-value applications.
If other applications involving massive data and transactions can be built more quickly on DFINITY, entrepreneurs can quickly try and make mistakes without high startup costs and devote their energy to business logic outside of code.
Flanker agreed with this view: “The reason why I am optimistic about DFINITY is that DFINITY has three basic foundations: excellent blockchain consensus mechanism, faster block final confirmation, and unlimited expansion capabilities, so it can support the development of DFINITY on it. For enterprise-level applications, the projects produced are more likely to be killer products that can truly enable blockchain to be implemented in the real economy."
On February 18, the "Trillion Dollar Opportunity: How the New Internet Is Reshaping the Imagination of Business Models" online event co-organized by Forbes and DFINITY will focus on this topic. Confirmed guests include Dominic, EFF Executive Manager Cindy Cohn, Mediapolis Dean Alan Emtage, ClariNet founder Brad Templeton, and Forbes Crypto and Blockchain Channel Deputy Editor Michael del Castillo.
The road is long and far away, I will search up and down
Objectively speaking, although it has received considerable technical recognition, in 2021, when the new generation of public chains are surrounding it, DFINITY, which is still in its early stages, needs to speed up and prioritize urgent and important matters.
In the process of communicating with developers, Odaily Planet Daily also learned about the problems that DFINITY needs to solve in their eyes, as well as the shorter path to the long-term goal.
Flanker believes that before choosing a base layer, in addition to checking whether the development environment, auxiliary tools, guidance documents, and sample program code libraries are complete, the most important thing is whether there is continuous incentives and support for development. No matter how excellent an Internet product is, it will not be successful if not many people use it. “Therefore, DFINITY must not only attract developers, but also find ways to attract users to use it. Continuous incentives and support are a very important way of promotion.”
Punk said that DFINITY's data center must be a professional memory server (no hard disk), and traditional servers cannot be used, so the threshold and cost will be relatively high, blocking a group of people from entering. Although when the ecosystem matures, the cost reduction for subsequent developers can completely cover the high investment in data centers, there will still be centralization issues at the beginning. Fortunately, DFINITY’s governance system (neural network element) is fully decentralized and can make up for the shortcomings. At present, everyone is paying more attention to when DFINITY will open source source code. This will, on the one hand, dispel some doubts in the market, and on the other hand, it will also allow developers to build ecological applications around DFINITY as soon as possible.
NEO also expressed concern about the open source progress of DFINITY. At the same time, he pointed out that in the early days, he was more concerned about the completeness of DFINITY ecological tools; secondly, he hoped that the planning of the entire product would be very clear, such as community building, developer copying, and technical documentation. If it is like It is very difficult for many projects to develop only by relying on the community. Officials need to do more guidance work. Furthermore, we hope to see one or two phenomenal applications run on DFINITY, so that everyone can better understand DFINITY, thereby attracting more people. Many people are involved; finally, what I am more concerned about is the migration cost and good migration tools. For example, whether the applications and tools on Ethereum can be easily migrated to DFINITY; in addition, if the cost is controllable, for the traditional Internet Can some applications be easily migrated? For example, by designing a "one-click migration" function, the code of traditional applications can be deployed directly on DFINITY. If so, it will produce very good results. DFINITY can quickly obtain part of the traditional Internet. Value and ecology will be well constructed and developed.
Since during the interview, many developers and early project participants were keenly concerned about the progress of DFINITY, we will also briefly review DFINITY’s recent results and future plans below.
According to officials, DFINITY has five major milestones: brass, bronze, tungsten, sodium, and mercury mainnet online.
On December 18, 2020, the first phase based on Mercury was completed, and the DFINITY Foundation initially realized the decentralization of the DFINITY main network, which enables the Network Neural System (NNS), an algorithmic governance system, to carry thousands of independent Data centers and millions of specialized node machines.
On January 6, 2021, the first phase Alpha of DFINITY mainnet Mercury was officially released, which means that Internet computers will become part of the public Internet, using ICP as a supplementary Internet protocol to TCP/IP. Since the launch of its own network, DFINITY has created more than 400,000 blocks. NNS is preparing to settle in 32 independent data centers by the end of the first quarter of 2021, and plans to settle in 100 by the end of 2021 and thousands by 2030. The goal of independent data centers.
The Mercury milestone now puts the Internet Computer on the short path to the final "genesis" decentralized phase, involving NNS releasing ICP functional tokens to holders in the form of voting neurons, which will be opened upon processing of the triggering proposal, opening time It is expected to be in the first quarter of 2021. Once the "genesis" demand is triggered, more than 50,000 ICP functional token holders will begin to participate in network governance or dissolve their voting neurons to release ICP functional tokens and convert them into Cycles for use Strengthen calculations.
Summarize
DFINITY is not just a public chain project, but a more complete Internet service based on blockchain. This is a huge innovation no less than Ethereum and Bitcoin.
DFINITY changes the paradigm for developers to build applications, so that developers no longer need to worry about databases, load balancing, network distribution, firewalls, etc., but can spend more time thinking about code logic implementation. This is like putting developers Liberated from the "agricultural era", using machines to replace tedious work, and the brain to create more, this may lead to an explosion of more creative applications.
For entrepreneurs, DFINITY provides a huge opportunity. A talented developer can build any innovative application at low cost on an Internet computer. Once successful, it will be difficult to surpass. In the Ethereum era, the success of Uniswap is a good example. Only a few hundred lines of code are needed, and genius creativity will not be let down. We'll be eagerly anticipating the next great application on Internet computers.
Author: Twenty-three Painters (Odaily Planet Daily)
Typesetting: Catherine
IC content you care about
Technology Progress | Project Information | Global Events
Collect and follow IC Binance Channel
Answer questions at any time