At present, most blockchain projects pay more attention to token issuance in design.Ppio design attaches great importance to the landing of business scenarios。 In my opinion, storage and data distribution is one of the most suitable application scenarios for blockchain, because storage and data distribution can minimize the price through incentive methods similar to bitcoin. The previous article introduced the advantages of ppio in the field of distribution. In this article, I will analyze the commercial architecture of ppio from the perspective of developers.
Commercial structure of ppio
First of all, we adopt a hierarchical approach to realize the overall ppio architecture, including blockchain layer, incentive layer, storage layer, data distribution layer, audio and video application layer.
We analyze and explain the technical architecture of ppio from the traditional cloud service architecture.You can think of ppio as decentralized AWS.There are different levels of services, and each level has API output. Developers can connect different APIs to achieve their own applications according to their own needs. If you only purchase storage and bandwidth based on the ppio blockchain network, you can choose to use the IAAs layer API; if you choose to use the object storage service similar to AWS, you can choose to use the PAAS API, such as poss; if you explicitly build live or on-demand streaming audio and video transmission services, you can choose to use the application services layer API.
The architecture of ppio is as follows:
The fundamental difference between ppio and centralized service is the billing mechanism.
The core of centralized service is that service providers can manage and control themselves. All nodes (data center and computer room) are deployed by service providers themselves, and there is no credit problem. Without the participation of external resources, there will be no unfairness, no wickedness and no collection of wool. It is enough to adopt a simple and common centralized billing mechanism. Its cost mechanism is also based on its own internal cost pricing.
The service to the center is different, and its core is participation and competition. The so-called participation is to allow the external resources of the broad society to participate freely. Because it is open, the problems of fairness in distribution, evildoing and collecting wool all appear, so blockchain technology is the best solution to these problems. In addition to participation, there is competition. In this ppio network, we design the competition of resources by regions. For the storage node, whoever has high-quality resources and low price will get more profits.
In addition, the foundation of centralized services (such as AWS) and decentralized services (such as ppio) are different。
This is the room deployment diagram of AWS:
Centralized service adopts expensive and centralized backbone network resources. It is an expensive decision to build computer rooms and machines, pull broadband optical fiber and build costs.There will not be too many nodes in the centralized service。
This is the node distribution of future decentralized services (ppio):
Decentralized services encourage tens of millions of miners to deploy storage nodes and deploy services using cheap and decentralized metropolitan area network resources through block chain incentives, so there will be many nodes.What the decentralized service needs to do is to build a stable service under the relatively unstable infrastructure.
Centralized services are like clouds, for everyone, as far away as in the sky;Decentralized services are like fog. Fog is around us and can be touched at any time.I think another way of saying decentralized services is fog computing, or edge technology.
It is the fundamental difference of the infrastructure at the bottom that leads to the huge difference of the superstructure.
Let’s talk about the level of business services. Generally speaking, there are three different levels of services for tob business services.
- IAAs: infrastructure-as-a-service
- PAAS: platform-as-a-service
- Application services: application services
IAAs layer, i.e. infrastructure service layer.
For centralized services such as AWS, IAAs layer is the lease of direct hardware resources. If you buy virtual machines on EC2 of AWS, each virtual opportunity is matched with a fixed number of hard disks and bandwidth. If you want to increase the hard disks and bandwidth, you need to buy special services such as block storage and pay extra fees. These are IAAs services, which are equivalent to buying bare metal servers. The developers decide what to do after buying.
For decentralized service ppio, IAAs layer is also a resource lease. Specifically, hard disk rental and bandwidth rental, without packaging or any additional services. The ppio IAAs layer has the following logic for the design of storage and distribution.
Storage logic. Simply put, if a user is interested in which storage node’s resources (storage and bandwidth) are bought, they can occupy these resources for a period of time. They are charged according to the actual use of resources. The storage resources are charged according to the chunk size and occupation time. The bandwidth resources are charged according to the traffic.
Data distribution logic. Data distribution logic is different from storage logic. The money is paid by the developers, because the developers want to distribute the data. To the miners (storage nodes), as long as the data is downloaded, they can get a charge. So the miners will take the initiative to predict what files will be downloaded by many people. As long as the miners get the hottest files as much as possible, they can get the maximum benefit.
If developers purchase hard disk and bandwidth on IAAs layer API, they actually purchase naked services. Therefore, ppio does not support erasure algorithm in IAAs layer design, and erasure algorithm is supported in PAAS layer. However, due to decentralized services, the stability of individual scattered resources is not as good as centralized services, so ppio supports IAAs layer interface, but it is not recommended for developers to directly use IAAs layer interface.
PAAS layer, i.e. platform service. First of all, look at the PAAS layer of cloud services. PAAS is a very general service that has been packaged on the basis of IAAs.
For centralized services such as AWS, the two most commonly used PAAS services are OSS (object storage service) and CDN (content delivery network). The S3 service of AWS is OSS service, which is used for storage; the cloudfront service of AWS is CDN service, which is used for data distribution. For centralized services, OSS and CDN services are not built by a single machine, but can only be completed by collaboration of multiple machines.
The decentralized service ppio is also based on the decentralized IAAs. Referring to OSS and CDN, two PAAS services, POS and pcdn, are built. The two services are not implemented by the cloud server, but by multiple nodes as the core.
#1 poss, storage oriented
Like AWS S3, the erasure algorithm is implemented in the application services layer. We adopt the erasure algorithm. In other words, the document is divided into k copies, and then expanded to N copies of erasure code. As long as any k copies in N copies can be online, the whole document can be recovered. Because of this, we can use a small number of copies to greatly improve the non loss rate of files. If you need more information, please refer to the article, “why can ppio storage achieve the non loss rate of 11 nines?”
#2. Pcdn, for data distribution
The download engine of P2SP lies in this layer. P2SP is different from P2P. P2P is peer-to-peer, the peer-to-peer transmission between complete nodes, while P2SP is peer to server and to peer. The server here refers to http / HTTPS server. That is to say, when downloading, you can download from HTTP or other peers. In this way, the ppio solution does not completely replace the traditional CDN, but complements the traditional CDN with P2P, which not only reduces the cost, but also improves the experience.
The positioning of PAAS layer is more general and basic. Ppio is different from IAAs layer in PAAS. The core technology ability of stable service ppio in PAAS layer is to build stable, reliable and cheap service on relatively unstable infrastructure. But the positioning of PAAS is to support relatively common services, so in the PAAS layer, there is no relationship with special application scenarios.
#3. Route for intelligent routing
Preout is designed by ppio to find the nearest network path between two points, which can also be simply understood as intelligent routing. Intelligent routing is a conventional technology of P2P. The so-called intelligent routing is to find the fastest and stable transmission path between two nodes, which is implemented on the TCP / IP layer, rather than the bottom layer of the network. Ppio implementation of intelligent routing supports more than one link, which can be completed by multiple links.
Similar to the traditional cloud service, the support of streaming media and audio and video is not the PAAS layer. When designing ppio, I put streaming media audio and video on the upper layer, application services layer.
Application service layer
The application services layer is closer to the application scenario. PAAS provides a common storage and data transmission scenario, while application services is oriented to the scenario closer to the vertical application. As mentioned before, 58% of the existing data distribution services are audio and video services. When designing ppio, support for audio and video and streaming media must be considered.
For the centralized cloud service, the application services layer is very rich in services, with a large number of scene applications, such as image applications. As long as developers upload an original image to OSS, they can directly obtain images of different resolutions, and even support the functions of image anti-theft, water printing and so on. Another example is video service, which supports different types of transport protocols and modes, such as special transport modes such as HLS (HTTP live streaming) supported by IOS. The service of application services is more close to the specific scenarios, abstracting each kind of service close to the specific scenarios, and then providing services to developers. Based on the API of application services layer, developers can quickly develop applications as long as their development scenarios are consistent.
When designing ppio, this is also considered. On top of PAAS layer, API close to application scenario is also pasted for developers to develop quickly. Because the implementation principle of ppio is different from that of traditional cloud service, the nodes of ppio are everywhere around users. I think it’s fog service, fog computing.
(picture: difference between cloud and fog)
We plan to provide application services layer interfaces in the near future, including live fog, on-demand fog, picture fog, audio communication fog, etc. Due to the large proportion of video applications in data applications, we plan to give priority to live fog and on-demand fog.
Application services and PAAS layer are different. PAAS layer provides a general pcdn transmission mode, which does not involve the details of streaming media and slicing, while application services layer does not. To do a good job in live and on-demand, we must do a good job in quality of service (QoS). It can be simply understood that the most basic QoS is: second start, no jam, low delay. In order to do well in QoS, it is necessary to go deep into streaming media itself to segment segments. In addition, the urgency of fragmentation is used as the basis for switching different download strategies.
For example, in a general file, the partition of a file is like this
So when we meet flv video,
For example, the download algorithm is different.
Ppio not only provides ordinary file download, but also provides optimized P2P transmission system for streaming media. In order to ensure the experience of on-demand applications, download data must be very real-time, and be able to cope with the instability of P2P network, we adopt data-driven P2P download technology, and based on this concept, we have made great improvement and optimization, and designed a set of P2P multi-point scheduling system based on pre allocation.
P2P streaming media transmission has the following characteristics:
- Sequential Download: the next nearest content of the current streaming media playing location is preferred to download, so as to ensure the uninterrupted play of streaming media.
- Rarest segment: select the rarest piece (usually the most popular part of streaming media), although for streaming media, it seems to be against common sense. However, selecting the rarest part for download will help speed up the acquisition of the whole segment, so it will ultimately help improve the download efficiency and playback experience of streaming media.
- Anchor based: in streaming media playback, users often skip part of the content and jump forward or backward. Therefore, in streaming media, you need to define the anchor and download it first. When users try to jump to a specific location in the streaming media, they will use the closest anchor to start playing and continue downloading in sequence.
(Figure: Simulation of download pre allocation algorithm)
The P2P transmission network of ppio is completely dynamic. Each peer can respond to multiple requests of multiple download nodes at the same time. Each download node must often handle how to send download requests to different peers and handle failure of requests. At the same time, the download node may also provide download services as the peer of other download nodes. Through two scheduling algorithms driven by ppio data, the efficiency of dynamic transmission of large-scale data is brought into full play.
In addition to the fragmentation method and download algorithm, the application services layer also needs to do more specific things according to further scenarios.
The app layer is the application. This part does not belong to ppio. It belongs to the developer. If you are a developer, you can develop your application according to ppio’s three-tier API in the future.
This is the whole picture of ppio architecture
After introducing the architecture of each layer, let’s summarize what we have done in each layer of ppio architecture.
Ppio will successively provide 3 sets of API:
- Storage space and bandwidth renting API based on IAAs layer
- API of POSS, pcdn and proute based on PAAS
- More API interfaces such as on-demand fog, live fog and picture fog based on application services layer. Developers can choose to develop at any level to complete their own app or DAPP
Ppio will launch as many idle resources as possible, and finally realize cheaper, faster and more private storage and data distribution services than cloud services.
To sum up, these are the advantages of ppio in the field of data distribution. If you want to know more, welcome to join our developer community!