Netwarps has been doing decentralized storage and computing platforms targeting the Internet of Things and even NDN networks. Therefore, we need to build a simple and high-performance underlying network. Previously, Netwarps implemented a basic P2P network using C language, and then built a decentralized file storage system (DFS) and a decentralized computing platform (DCP) on this network.

However, with the development of technology, we increasingly feel that there are many problems in the P2P underlying network constructed based on C language:

1. The asynchronous framework implemented by C language is difficult to maintain and the code logic is complex;

C seems to be losing its appeal in the eyes of programmers.

3. There is a generation gap between C language and many popular design methods and programming methods, which makes it difficult to form a benign interaction with other projects.

Therefore, we began to consider the use of newer languages to implement a set of asynchronous, clean code, efficient P2P network.

Libp2p, the star project of the blockchain industry, is now almost a benchmark for decentralized networks. Our own use of libp2p has been around for a long time, but we haven’t used it in our own decentralized storage and computing platforms for one reason. Go is a run-time heavy language, and although it works with low-power devices like Arm, its hardware requirements, Far beyond the IOT devices we’re considering.

When we set out to build a new P2P network, we basically settled on Rust. On the one hand, many IOT devices are already compatible with Rust. On the other hand, the lure of not having a runtime is irresistible to any team looking at IOT, which means my application can run on lower-power hardware.

However, the road is not easy.

First, people underestimate the difficulty of Rust’s syntax. Our team is made up of programmers who are proficient in C and C++. He got hit in the face right away.

Second, Rust’s ecology is not very friendly to beginner players. We have colleagues who say that when I compile something wrong, I don’t even know if it’s me or the compiler.

Third, Rust is very restrictive to programmers, and although we had heard this before we started the project, we had no idea that the process of adaptation would take so long.

Also, Rust’s asynchronous frameworks are not mature enough to be used in a patchy and sometimes awkward way. But in the end we got it done. Completing libp2-RS was quite a success and quite a test for our team.

We know that libP2-RS project is not perfect or even perfect, but we insist on releasing it as an open source. On the one hand, it is our contribution to the Rust community. On the other hand, we hope that more programmers, especially Chinese programmers, will pay attention to Rust and P2P in this way. At the same time, we also hope that everyone can understand that decentralized technology is not only blockchain and various coins, but also the future direction of IOT and even the whole Internet.

Github link: github.com/netwarps/li…

Netwarps is composed of a senior cloud computing and distributed technology development team in China, which has rich experience in the financial, power, communication and Internet industries. Netwarps has set up research and development centers in Shenzhen and Beijing, with a team size of 30+, most of which are technical personnel with more than 10 years of development experience, respectively from the Internet, finance, cloud computing, blockchain and scientific research institutions and other professional fields. Netwarps focuses on the development and application of secure storage technology products, the main products are decentralized file system (DFS), decentralized computing platform (DCP), is committed to providing distributed storage and distributed computing platform based on decentralized network technology, with high availability, low power consumption and low network technical characteristics. Applicable to scenarios such as the Internet of Things and industrial Internet.