NULS Core Developer Yang Lin — A Message to the NULS Community
Friends of the NULS Community, everyone good evening. I am the developer of the core team of NULS, Yang Lin, and I am honored to have the opportunity to share some of my views with you.
Some friends in the community know me well. I am a typical science and engineering man. Liesa has often said that I am the most autistic programmer in China. Although the statement is a bit exaggerated, it reflects my character to some extent. I am a person who doesn’t usually talk and doesn’t talk very much. Mandarin is not my standard mode. Fortunately, everyone can still understand me.
Like most programmers, computers are girlfriends. Programming is a romance. The code that is produced is like our love child. I have very strict requirements for my work, from the architectural design of the system, to a function or the implementation idea of the product. No detail is too small or too large for me; whether it is the format of the code, the comment, one more space, one less space — I will care about it and take it very seriously.
I’ll give two examples that I am very impressed with. The first one was shared by Zhijian before. At the end of March 2018, because the first version of the program was too complicated and the operation was very unstable, the first public beta failed. At that time, everyone’s mood was very low. First, they felt that they were letting down the community. Second, the reconstruction system was so heavy that it was almost impossible to complete in a short period of time. Finally, under my proposal, I decided to make a major refactoring.
In the next month, everyone united, worked overtime, and completed the reconstruction of the entire system, and made the impossible possible. After completing the refactoring we had one month of internal testing, and so for a total of two months working overtime became a routine for the technical team. It was too early to get off of work at 11 o’clock every night. It was also a common thing to work overtime until 2 or 3 in the morning. During this period, there have been systemic instabilities, there have been frustrations in the bugs that are often difficult to solve, there has been tedious performance optimization. There has been exhaustion after continuous day and night overtime, and there have been eating instant noodles routinely together in the dead of night, where we talk about the joy of the future of NULS. This is a very unforgettable experience, and I believe that all NULS team members are enduring and persistent to achieve the goal happily.
Although the refactoring work caused the entire technical team to work very hard, I believe it was the right choice. It was a way to solve all problems at once, and because the entire plan was considered and done, everything continued to be under control. This is not rocket science. As long as you dare to try, nothing is impossible.
The second example is that after the main network version 1.1.4 was launched in November last year, a memory leak occurred in the program, causing the wallet to crash due to memory overflow after running for 2 days. I worked with the technical team to find the problem. After a week, I still didn’t make good progress. I just pointed out that it might be a problem generated by the network module.
The network module has some logic that is not reasonable. Although the time was tight, I decided to refactor the network module. In the following week, the rest of the technical team continued to debug. I was at home, and I went to sleep at two or three or three or four o’clock every night. I couldn’t help myself. I would wake up at 11am at the latest. Reconstruction of the network module was completed in the fastest time. Finally, with the joint efforts of the technical team, this difficult problem was solved.
In general, I don’t think I have a very good personal ability or skill. I just learned some ways and means of doing things in my earliest work experiences and developed a good programming habit. Plus, I have my own principles which are ever more persistent, and sometimes even more paranoid. Everyone seals my technical god title, which is really a love for me. I hope that through the above sharing, everyone has a deeper understanding of me and the NULS core team. Next, I will share some topics that everyone is more concerned about.
NULS has been developing for a year and a half, and we have to admit that during this period we did encounter a lot of pitfalls and took a lot of detours, to include comprehensive refactoring, multiple small-scale refactorings and upgrades, each of which are time consuming and it has been a long cycle. Now, we maintain the update of the main network, and at the same time we carry out another comprehensive and significant improvement, which is known as NULS 2.0. The current NULS is slow in application ecology and low in efficiency. It is because we have been so focused on the basics that other aspects of development are slightly behind, but ecological development is crucial and is a problem that we will face and tackle.
In fact, when we decided to launch NULS 2.0 in October last year, we clearly realized that this will be a long cycle. R&D, commissioning, internal testing, public beta and on-line, each link needs at least one or two months, and then even more months when they come together. So why do we still insist on doing 2.0?
The vision of NULS was to make the blockchain simpler and to promote the blockchain commercial process through modularity and multi-chain parallelism. Modularity makes development and upgrades more flexible to adapt to a variety of scenarios; multi-chain parallel links through multiple links, to form a complete ecosystem. Until today, our direction has never changed, and I think it is a very correct direction. In the implementation of NULS1.0, we implemented Java-based modularization and flexible new modules, but we found that there are still many limitations; 1.0 modularity is based on the hard coding level, and although it does provide for some flexibility, there are programming language barriers for the developer extension module.
In the process of building a technical community, we found that blockchain developers are mostly concentrated on C++ and Go language developers. Only a few Java developers have experience in blockchain development; although the number of Java developers worldwide is among the best. However, most of them are engaged in enterprise application development, and there are not many developers involved at such a low level. At the same time, in the past three years, we have found that most of the companies that have entered the blockchain field have the need to run their own chains; because the direct use of the existing public chain requires expensive transaction fees, and businesses generally want more autonomy.
Throughout the existing blockchain projects, almost all of them provide API interfaces on top of the core programs. In this way, application extensions can only be made on the existing underlying layers, and there is no way to make the underlying functions more convenient. The extension; if we thoroughly modularize the underlying layer, means that each module provides its own API interface. Then, developers can use these API interfaces to expand the underlying functions as they continue. Whether you are a Java developer for enterprise applications or a PhP developer focused on web development, you can easily develop your own business function modules through the API combination of each module. This will have a significant impact on the development of the blockchain industry at large, just as we have programmed, from assembly language to the high-level language phase.
The new feature of NULS 2.0 enables modules to run independently and provide their own API, but the biggest significance is the introduction of NULStar led by CCC member Berzeck, which means that NULS 2.0 has even more flexible modular functions because it also has the significant features of the underlying framework of microservices. This means that NULS has the ability to develop traditional high-concurrency, high-performance software and blockchain services. For most of the newly created projects in the future, NULS must be given priority when selecting a blockchain technology, because NULS meets all of the needs for those future projects.
For example, Xiao Ming’s company will be a project to care for left-behind children. The app can locate the information of left-behind children anywhere. Anyone can take time to express their condolences, and share the video, feelings, etc. of the caring process to the public sector. Anyone can go to watch. For those who care for left-behind children, the system gives a certain amount of built-in token incentives, and with the obtained token, they can support others to care for left-behind children. Of course, this economic model is just a simple example. In this project, there is a demand for a large number of public sectors (that is, high concurrency, high efficiency), and a built-in blockchain economic model.
Xiaoming’s architects comprehensively investigated various microservice frameworks that support high performance and compared the characteristics of each blockchain. Finally, it was found that using NULS is the best choice because after using other microservices frameworks, they still need to face the application layer and the underlying technology of the blockchain since they are docked. When selecting the bottom layer of the blockchain, it is found that most of the projects have to modify a large amount of the underlying code to meet their own needs, or they can only build their own chains and then develop smart contract to achieve their goals.
However, if NULS is chosen, NULS itself is a micro-service framework that can meet the high-performance requirements. It is also very simple for a business to extend its own blockchain service by adding a module with NULS, which will maximize the efficiency of their blockchain.
NULS 2.0 builds an open source software ecosystem and is also a big economic ecology. In the above example, Xiao Ming’s company adopted NULS for system development and found that through the NULS cross-connect module, it can also access the NULS ecosystem and provide circulation and liquidity for the token. In this way, whether from the invisible value built using NULS or from the circulation of NULS ecology, the value support for NULS is self-evident.
If the blockchain is the future, then it will be as popular as internet technology. If every company has the technical needs of blockchain services, then there must be a place for NULS; as long as NULS is useful. The entire NULS ecosystem will follow a virtuous cycle of development. Therefore, for the long-term development of NULS, the development of NULS 2.0 is very necessary and worthwhile.
The future is beautiful, but the road is bumpy; although I am very much looking forward to the future of NULS, we also have to face the current predicament. NULS has been developing the bottom layer all this time, leading to insufficient development in other areas. We really need to do more work on ecological construction, so that NULS can be substantially applied. At present, apart from several projects of cooperation such as Prism and SuperLinks, and in addition to normal promotion, I see that friends in the community are developing on the existing main network. Some dApps will be online soon. The team will then strengthen the ecological cooperation and will explore more possibilities in the process of gradually improving NULS2.0.
Beginning in the second half of 2018, the entire market entered a cold winter. Friends of the community care about the team’s funds and have been very supportive. I have responded to this concern in the past, and the team planned for this in advance. Our friends in the community should not worry that NULS will not survive. We admit that in the past, the team did have a lack of financial awareness, which led to the team’s financial reserves being thin, and caused poor liquidity in the secondary market. Since then we have done our best, and as a result of hard work we have improved these issues.
Finally, I share the most precious treasure of NULS, that is our community. Openness, freedom, autonomy, and evolution are the cultures of the NULS community; I believe that openness and freedom are the ultimate ideas of blockchain. Autonomy and evolution are the means to achieve goals and ensure sustainable development.
The NULS community has emerged from the process of nothing, and many outstanding talents have emerged; like our long-lived community member Siewei who also developed tools for NULS. When someone was talking poorly about NULS, he took the initiative to fight back; thinking, he organized a microblogging promotion, and as a current member of the board of directors, he considers every proposal of the community carefully and responds thoughtfully. Aurora has been actively promoting NULS to answer questions for everyone. Xiao Yao; 365 days have come and gone, and he finishes the morning newspaper every day, not a single day falls that it goes without issue. Bai Qiang; actively participates in the testing of NULS; including overseas community members such as Moshe, Berzeck, etc., there are many other small partners who do the same. These are the heart of NULS, silently contributing to the development of NULS.
I think the community is the soul of NULS. The power of a person in the community is limited, but a group of people are very powerful and can do a lot of things. This is why we develop our community. We must establish a feasible operating mechanism. Under this mechanism, people who are willing to pay have the space to exert their influence. After the mechanism is established, more people can enter the community and be organized. Otherwise, it will always be like loose sand.
We are doing something unprecedented, and this process can be very long, but I believe that the whole community has the same goal, that is, to make NULS development better and more optimal.
Friends in the community, I believe that the community will move in the right direction. Because you are really strong, the community surrounding NULS thrives and presses on continually as we make progress in these long cycles. I believe that the future of NULS is very bright, and that this is just the beginning, and so I thank the community.
I thank you all the way.