Risk Warning: Beware of illegal fundraising in the name of 'virtual currency' and 'blockchain'. — Five departments including the Banking and Insurance Regulatory Commission
Information
Discover
Search
Login
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
View Market
Dialogue with official DFINITY engineers: Interpretation of how Internet computers lead the Web3 era from the bottom of technology?
星球君
Odaily资深编辑
2021-08-20 02:04
This article is about 20546 words, reading the full article takes about 30 minutes
How to take the road leading to a new world, "Internet Computer" gives the answer.

With the gradual popularization of communication and visualization mobile terminal devices, people flock to the concept of web3 or metaverse. And how to take the road to a new world? But there is no clear answer. DFINITY has explored the road of "Internet Computer" in 5 years of exploration experience. Will it become an effective solution?

The following is the essence of AMA, enjoy~

The following is the essence of AMA, enjoy~

Odaily: DFINITY is positioned as an "Internet Computer". Compared with traditional computer networks, what are the differences between Internet Computers at the physical layer and the basic Internet protocol level?

Paul Liu:As the creator of the Internet Computer platform, DFINITY's vision is blockchain singularity, which means that all applications that can run on the Internet should be built with blockchain technology.

The entire project belongs to the holder of the governance token, that is, the entire community. DFINITY will continue to participate in the development and promotion of the entire platform as a major technical contributor, but we are only one of the contributors. In just over three months since its launch, many other community teams have already participated. The development of this platform is inseparable from the contribution of the entire community. Further promoting decentralization is our main goal at the moment.

As the creator of the Internet Computer platform, DFINITY's vision is blockchain singularity, which means that all applications that can run on the Internet should be built with blockchain technology.

In order to achieve this, we have added a layer of protocol based on blockchain consensus technology above the TCP/IP layer and below the application layer, which we call Internet Computer Protocol (ICP). This set of protocols builds a virtual subnet by exchanging data between multiple physical nodes (computers). The nodes inside the subnet reach a consensus on the input and output, mutually verify the calculation results, and can communicate with other subnets. Multiple subnets are combined to build a virtual computer. The capacity can increase with the increase of subnets. Anyone can run programs on it, access other people's programs, and so on.

But it sounds like our current Internet is no different, especially the concept of micro service. Then why can't the current Internet be called Internet Computer? The difference lies in the protocol of this set of ICP. The purpose of this protocol is to ensure that all programs are executed correctly, their state cannot be tampered with, and when a program calls another program, it can trust that the call will be executed correctly. Due to the lack of this layer of protocol in the current Internet, all programs have to solve cumbersome problems such as availability, reliability, and mutual authorization by themselves, and thus bring various incompatibilities and security burdens.

The core of this is trustworthy computing. There is a saying called trustless trust. I think it is very appropriate, and there is no need for trust (partial) trust (whole). The development of blockchain from Bitcoin to today has also proved the power of trusted computing. However, most of the applications are still concentrated in the financial field, and our goal is to expand to a broader Internet field. Why can't the website run directly on the blockchain? Why does verifying computations on a blockchain require historical data for the entire chain? Only by solving these problems positively can the blockchain become the core technology of the Internet, not just at the level of recording and transferring money.

Odaily: Internet Computer provides a brand-new programming paradigm and has its own set of "jargon". Can you briefly introduce these "jargon" and what infrastructure do you think is the most useful for developers?

Paul Liu:The cost of operating an application, including computing and storage, is measured in cycles, the native token of Internet Computer. The price of cycles is pegged to SDR, 1SDR = 1 Trillion Cycles. The price of SDR is weighted by a basket of currencies set by the International Monetary Fund, including the US dollar and RMB, and is relatively stable.

The cost of operating an application, including computing and storage, is measured in cycles, the native token of Internet Computer. The price of cycles is pegged to SDR, 1SDR = 1 Trillion Cycles. The price of SDR is weighted by a basket of currencies set by the International Monetary Fund, including the US dollar and RMB, and is relatively stable.

Back to the user's point of view, they don't have to care about the concept of cycles. However, many applications need to process user login. For this reason, Internet Computer also launched an anonymous identity management system, which we call Internet Identity. This system is completely based on web standards, and users do not need to install wallet software to use it. All of these are to lower the threshold for users to use, so that the application of blockchain can really go out. Internet Identity is mainly to solve the problem of one identity logging in on multiple devices. Moreover, in different applications, the codes obtained by the applications are different, which can prevent the user's behavior from being maliciously tracked. Finally, Internet Identity itself is also an upper-level application, and has no special permissions in the entire system. Other applications can choose to use it or not. We now also see that wallets and identity authentication systems developed by other developers can be chosen and are all feasible.

Finally, users may also be interested in participating in Internet Computer's governance. This is a neuron voting system called NNS, which is one of our innovations. It is also at the application level, but it has a special authority, that is, it can manage all Internet Computer subnets and all aspects of the entire system, including the code running on nodes, version upgrades, creating new subnets, accessing new nodes, etc. wait. To participate in voting, you first need to hold ICP tokens and lock a certain amount of ICP to get a neuron. The weight of voting is related to the number of locked positions, the length of locked positions, and the age of neurons. Participating in voting will also be rewarded, and the amount of reward has nothing to do with voting for or against. It can also follow the decisions of other neurons to vote automatically. Overall, these settings are designed to link the behavior of users to vote with the long-term interests of the platform and to reward users for their contributions.

After talking about the user's perspective, let's look at it from the developer's perspective. The application program running on the Internet Computer is encapsulated in a lightweight container called canister. The concept of a docker container that is usually familiar to everyone is a bit different. Canister not only encapsulates the code, but also automatically persists the state of the container. It can be simply understood as a long-running operating system process. The state of the process, including memory and message queues, is automatically saved and will not be lost due to power-on and power-off. This means that the concept of the file system has been stripped from the Internet Computer, and developers do not need to consider reading and writing files and hard disks to save data, which is a considerable simplification.

Another thing developers need to understand is that the communication mode between canisters is asynchronous and belongs to the actor model. That is, each canister is its own process, and communicates with other canisters by sending messages, that is, asynchronous method calls. The processing of a canister's internal message queue is single-threaded, no need to consider locks, and each method call is atomic. It is easy to get started if you are familiar with actor model programming.

Another thing developers need to understand is that the communication mode between canisters is asynchronous and belongs to the actor model. That is, each canister is its own process, and communicates with other canisters by sending messages, that is, asynchronous method calls. The processing of a canister's internal message queue is single-threaded, no need to consider locks, and each method call is atomic. It is easy to get started if you are familiar with actor model programming.

To develop an application, usually the canister container is used as the backend, and the frontend interaction can be in the browser or a separate APP. It was also mentioned before that Internet Computer can directly run the website, which means that the canister can implement the http request interface by itself, and return the webpage including Javascript to the user's terminal. The front-end and back-end can be packaged together into a canister and deployed on the Internet Computer. We have ready-made libraries for front-end development, both Javascript and Rust. When the front-end needs to call the back-end code, just make an asynchronous function await call directly, and the bottom layer has been implemented by library functions. If you need to know more, there is an interface and data encoding format called Candid, which supports the implementation of multiple languages. Canister uses Candid to describe external interfaces and data types.

This information is very detailed, involving all aspects of the entire system, and we have made a lot of formal efforts to define the semantics of the interface, which is convenient for developers to understand the behavior of the system in depth.https://sdk.dfinity.org/docs/interface-spec/

This information is very detailed, involving all aspects of the entire system, and we have made a lot of formal efforts to define the semantics of the interface, which is convenient for developers to understand the behavior of the system in depth.

If you are doing system-level development, such as consensus protocols, virtual machines, etc., then you can talk more. You can watch the video series of the technical library on the DFINITY official websitehttps://dfinity.org/technicals

Odaily: Compared with traditional Alibaba Cloud, Tencent Cloud, AWS and other platforms, what is the difference between Internet Computer? They are also private cloud services built by the company, and they also use data centers, remote backup, and multi-node operation.

Paul Liu:The current cloud service platforms are all based on a basic assumption that you must rely on the platform provider to maintain the security of the platform, maintain network connectivity, uninterrupted computing, and data loss, etc. Although most of the time there is no conflict between the interests of the commercial platform itself and the interests of the users it serves, they are not completely consistent. There is a concept Platform Risk that everyone should be familiar with, so I won’t talk about it here. But the most important point is that these cloud platform infrastructure providers do not want to become commodities (replaceable commodities), and they are doing their best to retain and lock customers.

Internet Computer first existed as a decentralized network. The nodes inside are all operated by third parties and run in different data centers. The management of the real network is handed over to users, not dominated by node operators or data centers. So there is no centralized business organization to make all the decisions. The design of the entire governance system is also based on a long-term perspective, hoping to maintain the consistency of user interests and platform development. This platform is paid to the node operator. Whether a certain node is operated by Zhang San or Li Si does not matter at all. This is a free market. So for Internet Computer, infrastructure such as hardware and network has become a commodity.

Looking back at the development history of the entire PC industry, we can actually see that it is an inevitable law of history that infrastructure (such as PC hardware) becomes commodity, and I believe it will not be an exception in cloud services.

It can be said that a computing platform such as Internet Computer has been separated from the hardware infrastructure. This kind of business model is unimaginable without decentralization and blockchain technology. But today it can become a reality, which is the best interpretation of the progress of the times. Along the way from Bitcoin and Ethereum, some people have a negative attitude towards this emerging thing just after seeing the currency price hype and the Ponzi scheme. In fact, the change of the times is just around the corner.

The third point is tokenization, which is the tokenization of applications. This can be said to be the next trend in the development of the entire Internet application, which is unstoppable. Traditional cloud service providers also provide bridging components with the blockchain at most, and its architecture is inevitably quite bloated after a complete set. Since Internet Computer can directly run websites and applications, as a native blockchain, it is very easy to integrate tokenization.

The third point is tokenization, which is the tokenization of applications. This can be said to be the next trend in the development of the entire Internet application, which is unstoppable. Traditional cloud service providers also provide bridging components with the blockchain at most, and its architecture is inevitably quite bloated after a complete set. Since Internet Computer can directly run websites and applications, as a native blockchain, it is very easy to integrate tokenization.

Odaily: Every smart contract on Internet Computer is "extensible". Specifically, how does the extension of the protocol work at the technical level? Are there any cases of extension?

Paul Liu:Of course, there are various optimization solutions at the system level that can improve performance, and we have been working on this, hoping to give full play to the performance of the hardware.

The main design idea of ​​Internet Computer is to scale out, that is, to solve bottlenecks by adding resources and creating new subnets. This idea is basically the same as that of mainstream web applications. When an application cannot handle all user requests through one canister, it is reasonable to use multiple canisters to process part of the user requests at the application level. That is to say, when designing the application, you need to take this into consideration, and at least leave a possibility of migrating to the new architecture. At present, I know that OpenChat is designed to use multiple canisters, and DSCVR also leaves room for this, but it still focuses on one canister.

From the system level, through canister expansion, the current threshold of 4G memory can be surpassed. In terms of computing, it also starts from the guiding ideology of concurrency, and does not choose the global atomic design of Ethereum. Therefore, different canisters process their own messages in their own threads. As long as the hardware load allows, it will not affect the performance of other canisters. As for the network, bandwidth basically determines the upper limit of expansion. Any blockchain cannot avoid this physical bottleneck. It can only use fragmentation, which corresponds to different subnets for Internet Computers.

Of course, there are various optimization solutions at the system level that can improve performance, and we have been working on this, hoping to give full play to the performance of the hardware.

Odaily: Which types of Dapps are more suitable to be carried on it? We found that there are relatively few DeFi protocols on the Internet Computer at present. What are the directions for the Dapp track on the Internet Computer in the future?

Paul Liu:In the final analysis, which track has a future depends on whether its application can quickly gather value. This value does not mean how much your project is locked, because this amount can change at any time. It's about how many connections you have established with users and other applications. This association will become more and more valuable as trust deepens and uses increase. Code can be pasted, but this association cannot be copied. And if used properly, tokens can accelerate the accumulation of value to a certain extent, but in the end it depends on the intrinsic value of the project itself.

Personally, I am still very optimistic about the current social dapp on Internet Computer. Once this track has the blessing of tokenization, it will grow very rapidly, and it will definitely not be inferior to DeFi and NFT games. There are also some dapps with social attributes on other blockchains, but they are all subject to the threshold of starting. After all, the step of using the wallet correctly has stumped many users. The dapp on the Internet Computer uses Web standard technology and can be accessed by any browser.

Another direction that I am optimistic about is the application for individual users and small and medium-sized enterprises. For project management, file sharing, creator economy (podcast, vlog, web articles, etc.), although there are relatively mature solutions on the Internet, platform risks always exist. I also mentioned the platform risk of cloud services earlier. I believe everyone has a certain experience of giant monopoly in various other fields. Now the decentralized structure is a new possibility, the platform itself should become a transparent existence, instead of being entrenched in the upper reaches of the food chain and devouring the interests of users with overlord clauses.

In the final analysis, which track has a future depends on whether its application can quickly gather value. This value does not mean how much your project is locked, because this amount can change at any time. It's about how many connections you have established with users and other applications. This association will become more and more valuable as trust deepens and uses increase. Code can be pasted, but this association cannot be copied. And if used properly, tokens can accelerate the accumulation of value to a certain extent, but in the end it depends on the intrinsic value of the project itself.

Odaily: Canister, as a container running on Webassembly, hosts the environment running on the Dapp chain. What's new about Canister recently?

Paul Liu:Just this Monday, DFINITY released the development roadmap and welcomes community participation.https://dfinity.org/roadmap

Among them, those related to canister are:

· Stable memory expansion

· Canister ECDSA signature

Capacity expansion is currently mainly for stable memory, that is, memory management that is not affected by code upgrades. It used to be limited by the 4GB limit of the Wasm virtual machine, but now it can be released. The upper limit is limited by the total memory of the subnet, which is currently about 300GB.

Capacity expansion is currently mainly for stable memory, that is, memory management that is not affected by code upgrades. It used to be limited by the 4GB limit of the Wasm virtual machine, but now it can be released. The upper limit is limited by the total memory of the subnet, which is currently about 300GB.

The use of AMD SEV's technology is mainly to protect Canister's data privacy to a certain extent, so that even node operators cannot snoop on user data. We have been making preparations for this, and it is quite difficult. Fortunately, the hardware used by the current nodes already supports SEV technology, so I hope it will be a smooth upgrade by then.

The use of AMD SEV's technology is mainly to protect Canister's data privacy to a certain extent, so that even node operators cannot snoop on user data. We have been making preparations for this, and it is quite difficult. Fortunately, the hardware used by the current nodes already supports SEV technology, so I hope it will be a smooth upgrade by then.

Odaily: "Open interconnection services" can implement permanent APIs, allowing developers to safely build data or functions that depend on other services, and there is no risk of revocation. How are Open Internet Services deployed on Internet computers?

Paul Liu:The easiest way to provide a permanent API is to make the canister controller's code unmodifiable by setting it to an empty set. I personally also made a very simple canister called blackhole. Its main purpose is to allow other canisters to set the controller as blackhole, so that not only the code becomes unmodifiable, but blackhole also provides additional query functions, such as checking the balance of book cycles, or checking the hash value of the code. The controller of blackhole itself is set to itself, and its code is also public, so it is easy to verify the correctness of the hash value. If you need your canister to be trusted by others, setting its controller to blackhole is a neat way.

But if you still need to maintain the code upgrade function, you need to introduce the community governance function. The Service Neuron System we are developing allows applications to create neurons by locking tokens and then vote to manage all aspects of the application, including code upgrades. Of course, the SNS system we made is still under development, and there are no examples yet. And it is only one of the candidate solutions. The community has already made other attempts in this area, and I believe they will gradually mature.

Odaily: Security is an important issue for computers. What mechanisms does Internet Computer use to replace functions such as firewalls? In terms of anti-tampering, what are the characteristics of DFINITY compared with other blockchain bottom layers?

Paul Liu:One of the main functions of a firewall is to prevent hackers from invading the system and gaining access to the intranet, thereby achieving the purpose of stealing or tampering with data. First of all, the division of internal and external network permissions is very problematic. It is quite fragile, because once it is breached, all default permissions on the intranet will be exposed to attackers. Therefore, we have seen that many companies have abandoned this approach and changed to setting permissions for each service and using unified identity management technology to authorize users.

It is one thing to ensure that data is authentic and reliable and not tampered with, while the protection of data privacy is another. Most blockchains are public data, so there is no privacy protection. True privacy protection can be achieved at the application level, using technologies such as homomorphic encryption, but the current efficiency is not enough. So our current plan is to apply AMD SEV technology to encrypt at the hardware level. However, the security of the entire Internet Computer does not depend on hardware, and the guarantee of SEV is a plus.

If you want to tamper with data on the Internet Computer, it is not enough to just break through the authority of a node. It must be able to control more than 2/3 of the number of nodes in a subnet. So the security of the subnet depends to a certain extent on the number of nodes. Moreover, through the irregular rotation of nodes, the security in this aspect can be further strengthened. Even if a subnet is breached, it cannot impersonate the identity of other subnets, so the scope of the loss is controllable.

It is one thing to ensure that data is authentic and reliable and not tampered with, while the protection of data privacy is another. Most blockchains are public data, so there is no privacy protection. True privacy protection can be achieved at the application level, using technologies such as homomorphic encryption, but the current efficiency is not enough. So our current plan is to apply AMD SEV technology to encrypt at the hardware level. However, the security of the entire Internet Computer does not depend on hardware, and the guarantee of SEV is a plus.

Odaily: The name of DFINITY has actually been launched 6 years ago. Although the process of launching the mainnet is relatively slow, we can see that the DFINITY team really wants to do something subversive, and the consensus is also very strong. What factors have influenced the transition from "Ethereum's sister chain" to "world-class Internet computer"?

Paul Liu:The slogan of World Computer was first put forward by Ethereum, and it has inspired many people, although now it is more focused on DeFi and digital assets. The direction of "world-class Internet computer" has always been the goal of DFINITY, and it is not a route that was changed after financing. At first, due to the constraints of the team, there were only clear innovations in BLS and consensus protocols, so the first step was to start with this aspect, launch a chain and then iterate gradually. But then we realized that if we don’t solve the problem of cross-subnet communication, we will always stay in the rut of “another blockchain” and it will be difficult to innovate. It is precisely because of the team's persistence that there is a breakthrough in the chain key, which solves the problem of cross-subnet verification and realizes the promise of scalability.

As long as you keep asking questions and looking for answers, I believe a practical solution will gradually emerge. This is what DFINITY has been doing for the past few years.

As long as you keep asking questions and looking for answers, I believe a practical solution will gradually emerge. This is what DFINITY has been doing for the past few years.

Odaily: Ethereum has just completed the EIP-1559 upgrade, taking the first step in deflation, and token prices are gradually rising. Do you think that for decentralized infrastructure, the performance of tokens is more incentivized to supporters or technological disruption is more important? How to achieve a relative balance between the two?

Paul Liu:I think the most worthwhile direction is to expand the circle of efforts. From payment transfers, to DeFi, to NFT and games, it is a process of continuous expansion. Under this general trend, try to expand the blockchain technology to a wider range of fields, such as the goal of allowing native websites to run on the blockchain. Use technological innovation and token incentives to acquire new users together to prosper the ecology and increase value.

Technological innovations are also easily copied by competitors. But from an overall point of view, these innovations have been pushing the entire industry forward. When it comes to a single project, it is really hard to say whether it can benefit from pure technological innovation. Everyone in the industry is talking about ecological construction, how much protection can an ecological project have on a platform, especially how to convince developers to invest in a start-up platform is not an easy task.

I think the most worthwhile direction is to expand the circle of efforts. From payment transfers, to DeFi, to NFT and games, it is a process of continuous expansion. Under this general trend, try to expand the blockchain technology to a wider range of fields, such as the goal of allowing native websites to run on the blockchain. Use technological innovation and token incentives to acquire new users together to prosper the ecology and increase value.

Odaily: Many people think that Internet Computer is the main position of web3 applications. Each public chain more or less has its own insights and technical implementation paths for web3, such as Polkadot and Ethereum. What is DFINITY's insights and future plans/Roadmap for the road to web3?

Paul Liu:secondary title

Questions from the community

answer:

answer:Canister signature is equivalent to event log or receipt to some extent. Since we don't require nodes to keep all historical blocks, it doesn't make much sense to do this solely for the event log. After all, this function can also be realized through query call and certified var, and it is more powerful.

Canister signature is equivalent to event log or receipt to some extent. Since we don't require nodes to keep all historical blocks, it doesn't make much sense to do this solely for the event log. After all, this function can also be realized through query call and certified var, and it is more powerful.

Canister's handling of ICP tokens has not been a technical problem for a long time, and it is because of security considerations that the authority has not been released. With the stability of the system, our confidence has also increased a lot, so if there is no accident, it is estimated that the decision will be made through community voting in the near future.

answer:

answer:In my understanding, the gathering of value comes first from the gathering of people. So once a blockchain platform can directly gather people together, there will definitely be such social projects born. But in the current web environment, it is not easy to make a social explosion, so these projects will definitely try different ways of playing. Tokenization There is no fixed routine for tokenization, and I am looking forward to seeing the innovations in it.

answer:

answer:There are always trade-offs in system design. Sometimes it is better to add restrictions, and sometimes it is better to provide choices. Our opinion is that a single method call conforming to atomicity is a more appropriate granularity, and there is no need to force the entire call stack to be atomized together.

If you need this combination, traditional databases already have very mature solutions, such as two-phase commit. This can be achieved by negotiating a standard at the application level through the canister interface, and does not necessarily need to be supported at the system level.

There are always trade-offs in system design. Sometimes it is better to add restrictions, and sometimes it is better to provide choices. Our opinion is that a single method call conforming to atomicity is a more appropriate granularity, and there is no need to force the entire call stack to be atomized together.

answer:

answer:External http/https calls can be viewed separately, one for reading and one for writing. The former requires an oracle, and the latter is completely feasible if the other party satisfies ren-entrancy.

answer:

answer:It will indeed cause a non-universal problem, so in the short term, the user can only be reminded to mark which mnemonic phrase belongs to which company. In the long run, it is hoped that the community can negotiate a common standard.

answer:

answer:Hardware is not covered now. Let's talk about the skills to make full use of the existing hardware first.

answer:

answer:My understanding is that the browser support of various devices is relatively good, but the support of apps on mobile phones is somewhat difficult, which requires further research and development work. Users using Android phones in China will not be able to use WebAuthn if Google Play services cannot be installed on them. This also requires a suitable solution, and we are investigating.

answer:

answer:It seems that Solidity can be compiled into Wasm, but the programming model is different (such as atomic granularity), and the system interfaces that need to be supported are also different, so some work needs to be done to support it.

answer:

answer:It is PoS, and nodes are not currently required to pledge tokens. Because it is an access mechanism, nodes cannot be anonymous, so the related penalty mechanism is relatively easy to implement. Nodes need to receive tokens as wages on a regular basis, and the current penalty mechanism is to deduct them.

answer:

answer:Hardware wallet support for Ledger, coming soon.

answer:

answer:The IC underlying system is indeed more complicated. I think for developers, developing applications on the upper layer of the system is simplified.

secondary title

developer needs

answer:

answer:The implementation of standards requires the active participation of the community, and even the emergence of leaders in the community to take the lead in promoting it. We have discussed many hot issues in the communityhttps://forum.dfinity.org/c/roadmap/29/l/top

answer:

answer:At present, the governance content includes changing the network configuration, adding node subnets, and upgrading, all of which are automatically executed immediately after voting. But for the promotion of technical standards, more preparatory work should be done in advance, so that more people can know and participate in the discussion, so that governance can be carried out reasonably. Not enough has been done in this area, and it will be a focus of our work in the future.

answer:

answer:The development route released by DFINITY is only a personal opinion. After some plans were proposed, the community also received a lot of negative feedback, so there is still room for improvement. If the mainstream of the community disagrees, it will not pass the vote, so we will not waste energy on research and development. There are many development plans, which are actually requested by the community, and we think it is reasonable, so we put them in the roadmap. After all, we have certain development capabilities to complete them. But it is not realistic to expect all development plans to be completed by us. The codes are all open source, and anyone with the ability can participate in the development. Especially the application layer, such as bigmap, can be developed by other teams.

answer:

answer:Token standards (FT and NFT) are currently being discussed in the community. I hope more developers can participate and express their opinions. I believe that a good plan will be released soon.

answer:

answer:ecology

ecology

answer:

answer:One of the advantages of making NFT on Internet Computer is that it is not only a unique and unique hash value, but also can be given corresponding functions through code to make NFT "live". After all, it is directly programmable and the web interface is fully accessible. NFTs can also be connected and combined with each other. The gameplay is very diverse, let's give full play to our imagination!

answer:

answer:There are always trade-offs in system design. Sometimes it is better to add restrictions, and sometimes it is better to provide choices. Our opinion is that a single method call conforming to atomicity is a more appropriate granularity, and there is no need to force the entire call stack to be atomized together.

If you need this combination, traditional databases already have very mature solutions, such as two-phase commit. This can be achieved by negotiating a standard at the application level through the canister interface, and does not necessarily need to be supported at the system level.

There are always trade-offs in system design. Sometimes it is better to add restrictions, and sometimes it is better to provide choices. Our opinion is that a single method call conforming to atomicity is a more appropriate granularity, and there is no need to force the entire call stack to be atomized together.

answer:

answer:The account model of Internet Computer is different. Users do not have a unified system-level account to record token information. Each canister can manage users by itself, and the account numbers are recorded in the canister state, so if you need to keep all historical transfer records, you need to do some extra work.

The ICP token used by Internet Computer for governance is actually implemented by a canister. There is no special system support except that it can be converted into cycles to run the canister. Its implementation can also be used as an example for developers to refer to.

At present, there are several types of DeFi, one is an exchange, the other is a loan, and a stable currency may be added. In my opinion, the best way is to configure parameters and upgrade code through SNS community governance, which can iterate faster and effectively reduce risks. Moreover, the front end is completely linked to the chain, which can achieve true decentralization.

Another direction is to control assets on other chains through Canister's ECDSA signature, and directly call contracts on other chains. This is quite powerful, and I believe it will make the flow of cross-chain assets faster and safer, and it is estimated that new gameplay will be born.

answer:

answer:Yes, there are already community projects in the DeFi experience of CeFi, which is completely feasible.

answer:

answer:development tools

development tools

answer:

answer:The Rust ecosystem is mature, and there are quite a lot of ready-to-use libraries, but the language is relatively low-level, and it is difficult to get started. At present, there is a lack of documentation on developing canisters with Rust. If you are new to Rust, I don't recommend it.

Motoko has automatic memory management, it is easier to get started, and the quality of the compiler is relatively high, but the ecology is not enough, the library is not rich enough, and you often need to build your own ladder.

My personal choice is motoko, because I write too much Rust at work, and I hate some of its shortcomings. Of course, this is not a particularly good reason.

answer:

answer:The replica software that comes with the Internet Computer SDK is a local test network that can run on a computer, and then the team can connect to it for collaborative development.

As for a larger public test network, we don't have the energy to maintain it at present, and it seems that it is not particularly necessary, because the cost of deploying the test directly on the Internet Computer public network is actually very low. Of course, you are also welcome to put forward this request as a formal proposal on the forum. Maybe the community can come up with a plan to run such a public testnet.

answer:

answer:Specific requirements in this regard are welcome, and developers are more welcome to use motoko's package management tool vessel and submit open source libraries. Some developers are already doing this, and our side will definitely continue to develop, but generally speaking, the community still needs to work together.

answer:

answer:At present, the Rust toolchain has cdk and agent-rs, but the documentation and functions are relatively lacking, and we are also working hard to improve it. Several canisters on the NNS subnet are implemented in rust, which can be used as examples for reference.

answer:

answer:It seems that solidity can be compiled into Wasm, but the programming model is different (such as atomic granularity), and the system interfaces that need to be supported are also different, so some work needs to be done to support it.

C/C++ can definitely be compiled to Wasm. Currently, there is no header file for the system API, but it is actually not difficult to write. There are some simple open source examples.

Compiling Go to Wasm seems to be immature, so it will be more difficult.

secondary title

about gas

answer:

answer:Yes, computing, storage, and installation all need to consume cycles. Developers can apply for free cycles to start projectshttps://faucet.dfinity.org/

answer:

answer:Malicious attacks can be avoided by implementing the method canister_inspect_message. This method itself does not consume cycles

answer:

answer:Cycles themselves are price-stable, and current real-world usage shows that performing computations is fairly cheap. Developers can apply for free cycles to start projectshttps://faucet.dfinity.org/

secondary title

about storage

answer:

answer:bigmap is on the roadmap, you can go to the forum to participate in the discussion

answer:

answer:The expansion plan is on the roadmap, you can go to the forum to participate in the discussion

answer:

answer:It should be fine when the relevant technology matures.

answer:

answer:Large-scale storage must be fragmented, that is, divided into multiple canisters, you can refer to the bigmap project

answer:

answer:secondary title

wallet and identity

answer:

answer:First II is not required, it is an option. I don't use it in my own apps.

Secondly, my understanding is that the support of browsers for various devices is relatively good, but it is difficult to support Apps on mobile phones, which requires further research and development work

Users using Android phones in China, if Google Play services cannot be installed on them, they will not be able to use WebAuthn. This also requires a suitable solution, and we are investigating

answer:

answer:There is no unified system-level account for identity authentication, and a public key directly corresponds to an identity. If you need to manage logins from different devices, you need to solve this problem at the application level. II is a scheme, but it is not required, it is an option. I don't use it in my own apps. II Assigning different IDs to the same user in different containers is out of privacy protection considerations.

In addition, other developers have made wallet plug-ins that are closer to traditional blockchains, which is also a good choice.

answer:

answer:A public key directly corresponds to an identity. If you want to use the same identity in different canisters, you need to use the same public key. This is obviously feasible, but II chose to protect privacy.

Allowing different applications to choose their own authentication and account management modes obviously has advantages and disadvantages. The most direct disadvantage is that if users are used to the global address method on other blockchains, they may not be very comfortable here. But let’s see that in real life, the account number you open in each bank may also be in a different format, and your addresses in Binance and Huobi are also different, so this approach cannot be said to be completely unworkable.

answer:

answer:It will indeed cause a non-universal problem, so in the short term, the user can only be reminded to mark which mnemonic phrase belongs to which company. In the long run, it is hoped that the community can negotiate a common standard.

answer:

answer:secondary title

Future Development Sharing

Q1: The access link of the container on DFINITY will beic0.appanswer:

answer:Different domain names can be resolved to the container address on the Internet Computer. For example, fleek operates its own domain name to connect to Internet Computer, and its suffix is ​​ic.fleek.co

After the Canister ECDSA signature is implemented, there will be more flexible support for domain names.

answer:

answer:Yes, this vanity URL is also in the published roadmap. Its premise is Canister ECDSA signatures, so development is ongoing.

answer:

answer:It is only a proposal at present, and there are many opinions opposed by the community. We hope to continue the discussion.

answer:

answer:It is feasible. Community proposals are welcome, and everyone can discuss it together.

answer:

answer:secondary titlehttps://dfinity.org/howitworks/direct-integration-with-bitcoin

other questions

answer:

answer:TPS is not a very meaningful comparison, because there is no accurate definition of transaction, the size of a transaction can be tens of bytes, MB or even GB. What it does can be just adding and subtracting ledger numbers, or reading and writing gigabytes of memory.

If we only consider that transaction is a signed message for execution, then on the Internet Computer this includes messages sent by users and messages sent between subnets. At present, the message sent by the user is artificially limited on the IC, which is about 350/s, and the main purpose is to prevent DoS attacks. As the platform stabilizes, this upper limit will be gradually increased.

On the whole, the TPS handled by IC has no ceiling, because it can add new subnets at any time as user demand increases.

answer:

answer:current low costhttps://sdk.dfinity.org/docs/developers-guide/computation-and-storage-costs.html

answer:

answer:The current penalty mechanism is to deduct the rewards earned by node operators. Usually we will require an operator to participate in multiple subnets, so a node doing evil will affect its overall revenue, so the cost of doing evil will increase.

answer:

answer:Currently only Rust is supported. Examples are as follows:

    use ic_cdk_macros::*;

    #[query]

    fn hello() {

        ic_cdk::print("Hello World!");

    }

    #[link(wasm_import_module = "ic0")]

    extern "C" {

      pub fn accept_message() -> ();

    }

    #[export_name = "canister_inspect_message"]

    fn canister_inspect_message() {

       unsafe { accept_message(); }

    }

answer:

answer:To be precise, the data center does not participate in the operation, and usually the node provider hosts its own server in the data center to participate in the operation. Node providers must go through KYC. In addition to increasing the cost of doing evil, they can also better allocate resources among different subnets according to regions, data centers and interested parties, achieving a greater degree of decentralization. Compared with the current mining pool structure of Bitcoin and Ethereum, IC's approach will not cause the center to do evil, because the network structure is uniformly allocated through NNS, not determined by the nodes themselves.

answer:

answer:answered earlier

answer:

answer:The threshold signature of ECDSA can be integrated with the Ethereum ecosystem.

Internet Identity login conforms to the OAuth standard and can be used on other chains or any other websites.

Through the integration with Bitcoin and Ethereum, it will definitely increase the liquidity of cross-chain assets.

The current ecology of Ethereum requires centralized bridging components across chains, which cannot realize two-way free calls, which affects the composability of cross-chain applications. How the IC is integrated changes this

answer:

answer:Bitcoin blocks are uploaded directly to the IC, so it is easy to view UTXO records.

ECDSA threshold signature does not have a private key. It is achieved by each node participating in the subnet saving its own secret share. This is why the threshold signature is more secure, because the private key is not linked to the chain, which satisfies privacy.

secondary title

For more exciting content, welcome to join the Odaily telegram community

Odaily Telegram Channel: https://t.me/Odaily_News

Odaily Telegram Community: https://t.me/Odaily_CyptoPunk

DFINITY China’s official email address: china@dfinity.org, if you have any questions and need cooperation, please contact this email address.

DFINITY
Welcome to Join Odaily Official Community