The ups and downs of Kaiyuan

Time:2021-7-15

When we decided to open source many years ago, we were very excited: as a typical coder, “using” open source is everyday, but it is the first time for most of us to devote ourselves to “doing” open source.

We also thought naively: “open source” can have how difficult?! It’s just to let out the code, let’s use it and write it together.

But is “open source” really like this? Let’s look at some soul torture first

What is the development stage of the open source community in the blockchain field?
Is the open source community dominated by “users” or “contributors”?
How important are the number of stars and contributors?

In recent years, many community partners have opened many projects around FISCO bcos, covering the whole field of blockchain core technology, application development and operation and maintenance governance. The community has gathered more than 40000 developers, more than 2000 organizations, and hundreds of applications have been running stably in the production environment. The community and industrial ecological activity have also won many praise in the circle.

In March 2021, the outline of the national “14th five year plan” was released, and “open source” was included in it for the first time. It pointed out that we should support the development of innovation consortia such as digital technology open source community, improve open source intellectual property rights and legal system, and encourage enterprises to open software source code, hardware design and application services.

In June this year, the Ministry of industry and information technology and the office of the central network security and Information Technology Commission jointly issued the “guidance on accelerating the promotion of blockchain technology application and industrial development” to further encourage open source, and pointed out that it is necessary to establish an open source ecology, accelerate the construction of blockchain open source community, and focus on the underlying platform, application development framework, testing tools, etc, Cultivate a number of high-quality open source projects.

We are deeply encouraged. Looking back, we have made a lot of explorations in building a new ecology of open source community with positive interaction, and the ups and downs are still fresh in our mind.

Face up to the problem

In recent years, the first thing I wake up every morning is to pick up my mobile phone and see what’s wrong with the technology group. Watching between work, between meetings, on the road… Sometimes news is like brushing the screen in an active community.

There are a variety of problems, from basic concepts, installation and deployment to code analysis, to finding cases from the industrial level, or talking about blockchain and open source software, as well as open source commercialization… In the field of cutting-edge technology, different individuals can always encounter new problems at different stages.

The ups and downs of Kaiyuan

I really enjoy being a “customer service” in the community. In my long career, I have been involved in technical forums and the customer service system of Internet companies. The open source community makes me get back to the feeling of dealing with netizens – friendly, interesting, and everyone is doing interesting things.

We also have some reflections on why there are so many problems in the community. Is it because the blockchain field is too new and the concept is too obscure, which leads to a higher learning threshold for developers? Or our products are not well done, the documents are not clearly written, it’s really difficult to understand and use, and there are still many bugs?

It is said that in the first version of open source at the end of 2017, there are more than a dozen steps to build a network. Every step is likely to “kneel down” because of the differences in environment and network, as well as the imperfect fault tolerance of the software itself.

At that time, it was very difficult to put up the chain. Occasionally, there was a “core dump” (process crash) when running. When users sent us the core file (system exception stack) for detailed analysis, looking at the exception stack, we actually felt a little bitter.

Experts make complaints about the code. They wanted to introduce it, but after looking at the code style, they thought it was better to wait. We know what it’s like.

At that time, there was almost no industrial level available underlying platform for blockchain in the whole industry. The first version we made from 0 to 1 was a small flag, and some applications were indeed implemented. However, the overall gap from excellent open source projects was still very obvious.

As for documentation, we all know that programmers are very good at writing code, and it’s obligatory to write comments, but it’s more difficult to write documents than to rush them to the shelves. It’s a long document, but the related concepts, principles and exception handling methods are not comprehensive, and the writing skills and experience are lacking, which seems to be “hard”.

In terms of talents, a few years ago, there was an unconfirmed saying in the circle that “in China, there are no more than 200 people who can make a chain by hand.”. At the same time, the overall scale of developers who are deeply involved in open source projects is not large.

When the upsurge of blockchain industry is set off, community developers are enthusiastic, actively participate in open source projects, actively learn technology and carry out applications. Many of them are college students and academic researchers, as well as developers who have some experience in enterprise or Internet software development, as well as “liberal arts” people who cut in from a non-technical point of view. In general, hard core blockchain developers who are proficient in blockchain principles, read through the source code of blockchain projects, and can skillfully develop blockchain applications are available but not available.

In any case, we can’t expect a large number of developers to step on the auspicious cloud to build the community from the beginning.

We did not deliberately compare the status and experience of other blockchain projects at home and abroad. Other people’s models are not fully applicable. After all, different open source content, different environment and culture, different development stages and models, and few experiences can be used for reference.

In general, the blockchain open source community in China at that time was in the “initial” stage.

simplify what is complicated

During that time, the open source working group had a lot of in-depth discussions about whether the direction was right, how to arrange the priority of the version, and whether it could satisfy both the internal and external upstream and downstream… People were very anxious and often discussed until 1 or 2 in the morning.

If you don’t decide everything, you should return to the origin: “if you want to satisfy others, you must satisfy yourself first.”. We keep asking ourselves: what should an easy-to-use open source project look like?

Think about Linux / Apache / MySQL / PHP (collectively known as lamp), which are mature open source software. Can they be installed when they are down? Can you run after installation? With these software, you can read the official documents to learn the principles and details when you encounter problems; No more. You can always find answers and cases by asking on the forum, searching online and buying books.

There is an architect in the team, who is called “Nange”. He put an end to the entanglement with one sentence: “if a software user can’t use it in 15 minutes, they will abandon you!”

As a result, code farmers pinch seconds, counting the command line to write code: how long does it take to download code and software? Can a single command put the chain together? Is it easier to edit configuration files with JSON than with ini / toml?

“Multiple processes, multiple ghosts, multiple steps, multiple ghosts.”, That’s our mantra. The ultimate simplification turns the “metaphysics” in code into certainty“ “Just use it” is definitely not good, but also easy to use and exercise! According to our previous experience, we adapt to various operating systems and hardware and software environments, preset default networking mode and certificate file, so that users have no chance to “step on the pit” in the whole process. In case of error, highlight prompt, FAQ direct, automatic detection and recovery with a variety of strategies, everything.

When the chain is set up, the console and browser will be polished to make the blockchain visible and palpable. Once users see the picture in their eyes, they will have more numbers in their hearts. Then, built-in application templates and even pressure test samples are built to enable developers to build applications with one click. Furthermore, on the cloud of blockchain, resource allocation, deployment and delivery, and operation and maintenance can be done in one stop.

If developers are interested in further details, we also have detailed manuals and technical documents. It has a scale of one million words. I can catch up with several books. I can read them slowly and search for knowledge directly.

In addition, the core competence of software has declined. We are all familiar with “wheat”, which has the habit of technical cleanliness and obsession with quality. It is uncompromising to tackle key technical problems, architecture rationality, code style and version timeline. The code must be reviewed by several people (including himself), and the unit test coverage is high enough to commit.

It is gratifying that from 2017 to 2018, the open source working group has joined many old drivers and fresh meat who have just graduated. They are very vigorous, greatly enrich the development force, and grow with the project. This is also the meaning of hard core technology innovation: “in the 21st century, talents are the most valuable.”. Together, the performance, security and stability indicators have reached a high level. At the same time, many core capabilities such as privacy protection, cross chain, new virtual machines, and chain governance have been gradually improved.

Looking back, the FISCO bcos 2.0 version polished by the community at the beginning of 2019 can be said to be a milestone. It is simple and fast to use, complete with tools and documents, and reliable in core competence. How can it be a “cool” word. The effect is immediate. The number of developers who can quickly run and use the blockchain is increasing rapidly, and the community retention rate is significantly improved. At the same time, there are more issues, code and document updates submitted by the community.

Before that, friends in the community may praise politely: “open source is a kind of spirit”, “open source has been quite courageous”… At this moment, we can finally hear someone say sincerely: “cow! It works very well.

Now let’s try to answer the second soul torture: if open source software has no users, it probably won’t have any contributors.

In order to attract “users”, the software itself should at least be stable and usable. Moreover, the threshold of use should be low. It is best to use it out of the box. The interactive feel should be silky smooth. Both the code and the interface should be clear and elegant. Only in this way, users will not be shocked step by step, or even trample on the pit everywhere, and will not be lost in the complicated configuration files, Tianshu like logs and error messages.

As we all know, Internet products pursue “don’t make me think”. The same is true for open source projects. If you can have a little geek temperament, it will be even better!

The ups and downs of Kaiyuan

Teach people to fish

After solving the problem of using threshold, we observed that community problems are changing.

The ups and downs of Kaiyuan

First of all, the usability problems such as “simple, useless, and wrong operation” are obviously reduced.

Problems such as deployment and construction have increased. We analyze that this is because there are more people in the chain of practical operation. In the process of building, there are some small bumps, or some conceptual and experiential problems, which need consultation and communication. Of course, this also shows that there is still room for improvement in both the software use process and the documents.

The substantial growth of functional problems proves that our technology and components are indeed used more widely. Many people are planning network topology, writing contracts and calling interfaces, allocating permissions, analyzing data, or exploring more blockchain capabilities in different application scenarios.

The most gratifying thing is that we have more and deeper discussions on the principle, architecture and algorithm of blockchain. In the communication, sparks burst out from time to time to trigger inspiration. This has a very good reference value for the follow-up optimization direction, planning version, adding features, and joint construction.

The community is like a mirror, all kinds of changes can be seen clearly, reflecting the perfection of technology and witnessing the growth of the community.

We also have some thoughts on this stage

1. Don’t expect chat groups to solve all problems

We have a “community Q & a” schedule. If the students on duty encounter problems that can’t be solved, they will ask the group think tank to analyze them. In short, our requirement is to reply and solve the problems as soon as possible; In particular, online problems should be followed up first.

I once spent a night looking through the group records of several months, and calculated the number of questions that each of us in the open source team has followed up. The amount is still quite large (the following is one of the pages). What’s more, the attitude and enthusiasm of the team members are in place. They often solve problems in time and find optimization points. They are very happy.

The community Q & a system, which can communicate smoothly and focus on solving pain points, has indeed established a very good reputation for us in the industry.

The ups and downs of Kaiyuan

The advantage of chat group is that communication is very convenient, and its disadvantages are obvious. Group chat will attract a lot of attention, and chat records are difficult to be searched by others, which is not conducive to accumulation and reuse. With the constant addition of new people, the repetition rate of many common problems is very high. Technical forum should be a good complement. Of course, the construction and maintenance of technical forum also need investment.

With the explosive expansion of community size and domain coverage, is it the best solution to rely on the open source working group to answer questions online? When we think about it, we think it’s “happiness trouble”.

2. Don’t expect documentation to solve all problems

After the software quality is basically stable, whenever I see a problem, my first reaction is often, “is the document not clearly written?”

Open source project documents include user manual, development tutorial, terminology and concept, architecture principle, FAQ and so on. Good online document support keyword search, basically can think of knowledge points, can be retrieved.

Meanwhile, we have published many articles on official account and associated media, trying to jump out of technical details, to clarify block chain thinking, and to learn the method of science chain blocks, and to pass on experience and lessons. We sincerely hope that these articles can enlighten readers at different stages, starting from the “first principles” of technology and drawing inferences from one instance to reach the knowledge core of blockchain.

The ups and downs of Kaiyuan

But we find that there is a gap between the ideal and the reality: how to write a document will be missed; The operation path and thinking mode of users are different from what we expected; And if the environment is different, the problems will be different

In addition, due to the influence of communication channels, exposure rate and many other reasons, the document did not spread to all users; Or because the document directory structure is too deep, users do not see specific knowledge points; Even if you see the document, facing the vast space of millions of words, many people will say: “nice, collect it first, take your time”… All kinds of factors may cause the effective reading absorption rate of the document is not optimistic.

In fact, the user doesn’t want to see a long speech at all. He just wants to solve the problem at hand.

On the whole, documents must be available and good. But the document is like a treasure, suitable for mining slowly, difficult to solve the urgent need.

3. Don’t count on yourself to solve all problems

If we meet a problem and solve a problem, will everything be all right?

User questions are indeed the best direction indicator. If a question appears more than twice a week and is asked by different users, it is definitely a priority problem to be solved.

There are different solutions for different problems: you can iterate the new version to fix the problem, so that it does not appear again; It can also be to revise the document and provide a conspicuous document entry for reference; You can even chat with users, align concepts and ideas, and some problems will be solved. There are many solutions, but the key is to be fast, accurate and closed-loop.

Practice has also proved that the open source working group can not do everything. For example, some users’ needs are more Scenario Oriented and are not suitable for the main version. It is more reasonable for developers to pull branches to customize the development. Some problems are related to different environments and different business areas. As a matter of fact, the open source working group is not an expert in many fields. It can only communicate and discuss with you from a technical point of view according to its own understanding, hoping to inspire each other.

In essence, if only the open source working group is doing one-way output, and the users are the silent majority, such a community is bound to become boring and boring, and will soon encounter the ceiling. The ideal model is to form a positive cycle of development in the whole community: the veteran helps the novice, the novice becomes the veteran, the veteran directly writes the code, and the distributed problem-solving and demand satisfaction. In the whole process, everyone has contributed, innovated, accumulated and improved.

We sometimes wonder, does the open source working group want to step back a little bit? We should play a better role in serving and preaching, and give more guidance and encouragement to community partners. Is this better? Therefore, in addition to writing code, we also write documents and textbooks, participate in the compilation of national talent standards, and organize online and offline salons, training and hacking. All these are “teaching people fish is better than teaching them fish”.

In the climbing period of the industry development, we hope to help more people learn, use and have more talents. Once the user who has crossed the technical threshold becomes a skilled developer, the bug will be corrected, different requirements will be met quickly, and the software itself will become more and more excellent.

The ups and downs of Kaiyuan

At present, the community has spontaneously formed many sigs (special interest groups). The team members actively join in from the community and carry out distributed cooperation according to their own interesting and long-standing technology and application topics. The following is a page of the group introduction by one of the group leaders (nickname: Li Dagou). I think the keywords “interesting, pragmatic, inspiring and contributing” are very good!

The ups and downs of Kaiyuan

Open source working group, community SIG and emerging developer groups constitute the three-dimensional community technology force.

We continue to focus on software quality and experience improvement, reduce repetitive problems, and guide and promote the community to self-service stage. Division of labor and cooperation is conducive to focus on identifying more forward-looking features and undertaking more challenging problems, and the developers have more and more space to perform.

Sailing

Gradually mature community will present “network effect”, good reputation is “tap water”, industry people gather more and more, ecological and business model will grow out naturally.

When we started to open source, we flew all over the country to preach ideas and technologies and invite everyone to pay attention to our community. The earliest community groups were “pulled” up by one person.

A friend of mine has been quietly following the open source community and integrating blockchain into their industry products. He didn’t tell me until the product was successfully launched.

I asked him, “don’t you need support at all?”?

He said: “open source software is very useful, our own technical team to achieve business logic, do the operation and maintenance configuration can be online.”.

Now they are “community Certified Partners” and continue to use blockchain technology to implement applications. Their achievements are also fed back to the community in the form of codes, tools and cases.

There are many more such community partners. They have profound attainments in their respective vertical industry fields and have formed a complementary relationship with the open source community. In the aspect of blockchain, they only need to introduce open source technology instead of building wheels repeatedly, which greatly increases the efficiency and sharply reduces the cost. At the same time, in the industry practice, they continue to dig out a lot of very grounded demands and contribute a lot of technical achievements. Their landing practice is the verification of the technical value of blockchain, and their cases have become the benchmark on the industry map.

What’s more, we find that many enterprises find and recruit the talents they need in the community; Some meet industry partners with complementary industrial chains or technology stacks and similar concepts in the community, and then happily establish cooperative relations. In a word, the community builds a bridge across industries and regions, which is a platform to achieve spiritual and material gains, and spontaneously forms an open alliance with common aspirations and win-win cooperation.

It must be introduced here that the FISCO bcos open source working group is initiated by the “FISCO gold chain alliance”. At present, the gold chain alliance has gathered more than 150 institutions, including finance, securities, local exchanges, technology companies, scientific research institutions, etc. As an open technology community, more than 2000 enterprises gather, covering a wide range of industries such as industry, agriculture, copyright and so on.

It is worth mentioning that many training institutions have become “training partners” of the community. We have jointly written popular science materials and, together with the talent exchange center of the Ministry of industry and information technology and other national authorities, have written a number of blockchain teaching materials for use by colleges and training institutions all over the country. Training and preaching work has a long way to go. It’s hard for a single tree to grow into a forest. People will water it, and the world will be full of peaches and plums in the future.

The ups and downs of Kaiyuan

In the digital tuyere, enterprises in various fields are like a ship, opening up channels one after another. Open source technology is like a sail, which can help enterprises to adapt to the wind, bring great momentum, and explore a larger world. Whether open source code is commercialized or not is not so important. The industrialization mode of open source is more about integrating services, expanding boundaries, and promoting application landing. It can be imagined that if a large number of ships set sail, the real economy is active, and the whole ecology is booming, everyone will benefit.

Hello everyone, it’s really good. I think this is the essence of open source.

Tolerance is greatness

Having experienced the excitement, anxiety and joy of open source, we are much more calm now.

The daily work is still very substantial. Once upon a time, the buddies who just entered the team thought that coming here was just to write code, and then found that it was not the case. They not only wanted to be “customer service”, but also “writers”. From time to time, they went out to be “wanghong” live broadcast to “bring goods” to analyze open source technology, or to be “teachers”. They stood on the platform and talked for hours.

Switching between different roles is really a challenge to time management and attention allocation. When you are not used to it, you may feel a little “split”. In particular, as far as coders, who are generally a little “social phobia”, are concerned, they are under a bit of psychological pressure because of all kinds of “publicity”. But from another perspective, from the perspective of long-term career development, through the 18 kinds of martial arts taking turns, the level of technical writing, communication and presentation ability, as well as the breadth and depth of vision can be exercised; The most important thing is that the code you write will be used and compared immediately, and your technical ability and sense of achievement will also be improved. In this way, both the public and the private will undoubtedly benefit a lot.

Beside the technical team, our operation team also has professional “community assistants”, who are active in online and offline salons and exhibitions, organize courses, push hot content in real time, and interact with community developers to help them embark on the road of open source. In the industrial cooperation, it is like a little bee shuttling through the flowers. Of course, if someone in the group sends an advertisement and disturbs the technical atmosphere, he will be invited out by the little assistant soon.

The ups and downs of Kaiyuan
The ups and downs of Kaiyuan

The little assistant also overturned the car. I remember a community activity a few years ago. For the community partners who had given star support to the project in GitHub, the assistant would send small souvenirs. Originally, it was well intentioned, but some developers mistook it as a gift for a star, and gave Frank feedback in the group. After that, we consciously avoid suspicion and never do star related activities again. We very much understand that star is a gem on the crown. It should not be used for “exchange”. It should be a spontaneous and voluntary star by developers who sincerely support and love the project.

Accordingly, the community will also thank those developers who have contributed to open source projects, and encourage more developers to continue to build and share. We will publish the list of project contributors and quarterly contributors. They will get unique community souvenirs that are worth drying in the circle of friends. It’s mainly spiritual motivation. Let’s create an atmosphere. We believe that hand in hand with gratitude can make us go further.

On the way to open source, it’s normal to encounter some small twists and turns, misunderstandings and challenges. Just as there is a process of trust building between people. The open source community teaches us to “transpose thinking” and “user thinking”, because we are no longer doing things by ourselves; We should always be humble, because any progress comes from the joint efforts of the community; What’s more, we should maintain openness and transparency. Whether it’s code or operation, it will be reviewed, judged and optimized by the community. After all, “talk is soap, show me the code” (Note: code has both the meaning of “code” and “code of conduct”).

From this point of view, the “Star” of open source projects is important, but the more important thing is the reason for everyone to play the star, and whether there are people to star continuously. The ideal state is that everyone is the developer of the community, and then everyone’s star is to praise themselves and the common community!

Bow into the game

Let’s review the three questions at the beginning
What is the development stage of the open source community in the blockchain field?
Are open source community participants mainly “users” or “contributors”?
How important are the number of stars and contributors?

I give a personal answer for reference only.

First of all, I think the open source community of blockchain is still in its infancy. This is related to the development time, technology maturity, talent gradient, and the breadth and depth of application.

Second, we should not neglect the laws of nature and encourage the growth of seedlings. First of all, we should bow ourselves to the game and do a good job in technology and experience, so that everyone can “use it” first. At the same time, gather more talents to learn and progress together. With a solid foundation and more people working together, contributors will naturally emerge in the user group.

Third, the concept of open source community is to “teach people to fish” rather than “fish with all your might”. In terms of harvest, whether it’s the star or commercialization of the project, I think it’s all natural. We have seen that many partners involved in the community have gradually blossomed in the industry.

Thank you for seeing this. After years of ups and downs, we have seen the future of open source unfold slowly. Because you see, you believe; We will work hand in hand to create a better future.
The ups and downs of Kaiyuan

The code of FISCO bcos is completely open source and free of charge
Download address
https://github.com/FISCO-BCOS/FISCO-BCOS