PP.io Simply Explained in 1,2,3 — strong center, weak center, and decenter
What is PP.io?
PP.io is a storage project initiated by Bill and I. The official website address is https://pp.io. PP.io is also a decentralized data storage and delivery platform for developers that values affordability, speed, and privacy.
As you may know, there are several decentralized storage projects out there, such as FileCoin, SiaCoin, MaidSafe, etc. However, looking at the information they flowed out, the official website, white papers, articles and community speeches, we can see that they focus on these points, completely decentralized, security, and complete community governance. It’s following the spirit of the blockchain, just like bitcoin. The purpose of this is to raise the price of the currency. It can even say that the practice of these projects is done entirely as the blockchain project. However, is this really the way to do decentralized storage well?
The first thing to define is, what is “doing decentralized storage well”?
First, decentralized storage is also the network storage of data. Data storage and cryptocurrencies, such as Bitcoin, are different.
The cryptocurrency is money and the security requirements of money are very high. Whenever I pay out some money, my money will be less, and the speed of payment is not that important
Data network storage is a usage scenario where data storage is required everywhere on the Internet. For individual users, Apple’s iCloud, Google Drive, and Microsoft’s OneDrive are data cloud storage. For developers, AWS S3 and Microsoft Axure are developers’ data storage services. Data storage is a product that needs to be used, so the quality of service is critical. High cost, slow speed, data loss, and unreliable service, which may be the reasons why users stay away from it. In this scenario, reasonable pricing and quality of service(QoS) high are very important. Therefore, the reasonable storage price and high quality of service are the keys to doing real decentralized storage well.
You can take a look at the several projects mentioned earlier. As we can from the data, official website, white papers, and articles that they flow out, there is hardly any mention of the quality of service (QoS). Even in the community, some people complained that the price of decentralized storage is not lower than that of traditional cloud storage, instead, it was much higher.
Think again, is decentralized storage just emerging now? No, it has already existed, such as BitTorrent, Emule, and PPTV that I designed before. The data is actually stored on many nodes and is widely distributed anywhere and then shared freely with each other. The essence of these programs is decentralized storage.
So when I was designing the PP.io project, the ideas were very different from other projects such as Filecoin and SiaCoin. I made the essence of the traditional P2P project combined with the characteristics of the blockchain project and proposed a decentralized storage project oriented to service quality. Because of this, the implementation process of the PP.io project is not directly achieved entirely decentralized, but it has to go through three phases, “strong center”, “weak center” and “completely decenter”.
You are not mistaken. We did not directly achieve an entire decentralization in the beginning. It’s different from the current blockchain project. Let me talk about it in detail below. Here are my thoughts.?
Blockchain resolution is used to solve the trust problem, not the data storage problem. So when I design PP.io, I don’t put the storage files on the chain. I only store assets, contracts, proofs and other incentive-related information on the chain. User data is stored on the decentralized miner nodes, using P2P storage technology to allocate and schedule, but not stored in the blockchain. Data can be deleted by the owner. Only the data owner has permission to delete data, just like bitcoin, only the owner can initiate a transfer.
Essentially, PP.io has two subsystems:
One is a decentralized storage system. It’s built by P2P storage technology and it targets high QoS. Its goal is to achieve QoS better than AWS S3
The other is the blockchain system, which is constructed by blockchain technology and is guided by economic incentives. The goal is to make a good market economy and to benefit the genuinely affordable service providers.
Figure 1: Decentralized storage subsystem and blockchain subsystem
Here, let me explain what I mean by “center”.
First of all, when I designed PP.io, the storage aspect was decentralized from the beginning to the end. The data has always been stored in the decentralized network. However, within an efficient P2P system is not just a storage node, but also some centralized servers. These servers are used to manage indexes and tracking, etc. Therefore nodes can find each other and coordinate with each other. Just like the Tracker server role in the BitTorrent system. These servers do not store data, but without these centralized servers, P2P networks could become very inefficient. This role also exists in the PP.io system, which is what I call the “center.”
Simply put, the blockchain, incentives, and stored data are always decentralized. Only roles like BitTorrent’s Tracker node need to go through three phases
Here, I am going to introduce the storage roles in PP.io at first:
User Node: Users are the consumers of the PP.io storage system, and they acquire storage and download services by consuming a certain amount of PP.io Coin.
Source Node: The source node is a special user node that publishes content, it usually stays online and provides download services to other users.
Miner Node: The node that provides storage and bandwidth resource in PP.io’s network, and receives PP.io Coins for its contribution.
Indexer Node: The nodes that provide both indexing and scheduling services to the network, and receive PP.io Coin rewards accordingly. Their indexing service helps the user quickly locate stored data. Their scheduling service manages data storage and download, and it also facilitates content delivery by adjusting how the copies of data are distributed in the network.
Verifier Node: The nodes that conduct and validate storage proofs in the network, and receive rewards accordingly. They are responsible for verifying the available storage capacity of miners, confirming data storage and download, validating storage spacetime and effective bandwidth.
Other decentralized storage, such as FileCoin, MaidSafe, do not have separate verifier node roles, they must use their miner node as a verifier node. We have calculated the performance of the miners’ nodes. If the miners are responsible for the verification work, there is a lot of cryptography work, and all the miners’ machines are required to have a high hardware configuration. To reduce the entry barrier of miners, our PP.io separates the role of providing storage services from the verification role, so the verifiers are independent.
After almost introducing the necessary information, I detail the three phases of PP.io’s future development.
“Strong center” phase
These nodes are decentralized: User Node, Source Node, and Miner Node.
These nodes are centralized: Indexer Node and Verifier Node.
Besides, we have a settlement center that is also central. Responsible for calculating the payment of Token between nodes.
At this stage, the blockchain has only one main chain. On the main chain, we only store asset information, that is, how many coins the user has, and the corresponding transfer records.
Figure 2: Architecture diagram of the “Strong Center” phase
StorJ is now in this phase. Its decentralized storage system is done by itself and its incentives are directly used in the ERC20 token on the Ethereum. It relies on centralizing statistical gains and then motivating miners on a monthly basis to pay wages on a monthly basis.
‘weak center” phase
These nodes are decentralized: User Node, Source Node, Miner Node.
These nodes are consortium: Index Node and Verifier Node.
The consortium here is that all nodes must have PP.io license to join the network and deploy. The goal is to use artificial contracts outside the blockchain to avoid these nodes from doing evil. It can significantly reduce the difficulty of development at this phase.
At this phase, the previous settlement center server evolves into several side chains. Each side chain has a plurality of nodes alternately generating blocks. The settlement result is performed by the outbound node, and the other nodes verify the result of the settlement. The side chain and the main chain are respectively consensuses. The side chain and the main chain communicate through an oracle mechanism.
This side chain is called the contract chain. If the performance of this side chain is not enough, we can split multiple contract chains.
At this phase, the blockchain consists of only one main chain and multiple contract chains. Assets, contracts, and proofs are written on the blockchain. However, the nodes related to the contract chain must be authorized to deploy. Simply put, the contract chain is consortium blockchain.
Figure 3: Architecture diagram of the “weak center” phase
“decenter” stage
At this stage, all nodes are decentralized. It’s the final state of PP.io. Before the node deployed in the “weak center” state, such as the Indexer Node and the Verifier Node no longer has access permission restrictions. Anyone can join the PP.io network and deploy these nodes.
At this stage, the blockchain still maintains one main chain and multiple contract chains. The contract chain is not a consortium blockchain; it becomes a public chain. The blockchain consensus algorithm also implements the final consensus algorithm at this stage.
Figure 4: Architecture diagram of the “decenter” phase
Here I explain in detail the three phases of PP.io. This article comes to an end here. Maybe you still have many questions. But don’t worry, my next article will explain why PP.io is designed in three phases.
to be continued…
Article author:Wayne Wong
If you want to reprint, please indicate the source
If you have an exchange about blockchain learning, you can contact me in the following ways:
Github: https://github.com/omnigeeker