Why go is suitable for blockchain
a total of 22 weeks, divided into five stages,
the first stage is 4 weeks, go language foundation and network concurrency, learning the introctory go language,
the second stage is 4 weeks, go language practical web development, crawler development, cryptography, consensus algorithm, realizing lightweight public chain, learning the website and crawler that can develop golang, Achieve lightweight blockchain
stage 3, 4-week Ethereum source code analysis and smart contract DAPP development, master Ethereum core and smart contract development, as well as blockchain,
stage 4, 4-week super ledger, bitcoin EOS, source code analysis and smart contract practice, master super ledger development, cat bitcoin, bifurcated EOS after learning, As well as DAPP development of smart contract
phase 5, 6-week project practice, five enterprise level projects, and one year of blockchain project experience after learning
from the characteristics of the language itself, go is a very efficient language, which highly supports concurrency. Go language itself pays more attention to distributed system, and concurrency processing is relatively good, such as advertising and search, That kind of high concurrency server
go language advantages:
excellent performance, can be directly compiled into machine code, does not rely on other libraries, go is extremely fast. Its performance is similar to Java or C + +
concurrency is supported at the language level, which is the biggest feature of go. It is born to support concurrency, and go is the concurrency supported in gene, which can make full use of multi-core and make it easy to use concurrency
the built-in runtime supports garbage collection, which is one of the features of dynamic language. Although GC is not perfect at present, it is enough to cope with most of the situations we can encounter, especially GC after go1.1
it's easy to learn. The authors of go language all have the gene of C, so go naturally has the gene of C. There are 25 go keywords, but the expressive ability is very strong. It almost supports most of the features you've seen in other languages: inheritance, overloading, object, etc
rich standard libraries, go has built a large number of libraries, especially the network library, which is also my favorite part< As like as two peas, br / > built-in powerful tools, Go language is built with many tools chain, the best should be gofmt tools, automatic formatting code, make team review become so simple, code format is exactly the same, it is very difficult to think differently.
cross platform compilation and fast compilation. Compared with the sluggish compilation speed of Java and C + +, the fast compilation time of go is a major efficiency advantage
disadvantages of go language:
package management: package management of go language is absolutely not perfect. By default, it has no way to make a specific version of the dependency library, nor can it create replicable builds. In contrast, python, node and Ruby all have better package management systems. However, with the right tools, the package management of go language can also perform well
lack of development framework: go language does not have a major framework, such as Ruby's rails framework, Python's Django framework or PHP's laravel. This is a heated discussion in the go language community, because many people think that we should not start with using frameworks. This is true in many cases, but if you just want to build a simple crud API, it's much easier to use Django / djrf, rails laravel, or Phoenix
exception handling: go language can help developers deal with compilation errors by simply returning errors (or call stack) through functions and expected calling codes. Although this method is effective, it is easy to lose the scope of the error, so it is difficult to provide meaningful error information to users. Error package can solve this problem by allowing us to add context and stack trace to return error
another problem is that we may forget to handle errors. Static analysis tools such as errcheck and megacheck can avoid these errors. Although these solutions are very effective, they may not be the right way.
as
a
service, which is translated into "blockchain as a service" in Chinese. So what is blockchain as a service baas? With this question, we will follow Xiao Wang of Renren blockchain technology team to discuss it carefully
according to Xiao Wang, the concept of blockchain as a service (baas) is mainly proposed by Microsoft and IBM. To put it bluntly, it is actually a new type of cloud service, a cloud service combined with blockchain technology. For example, Microsoft's azure cloud computing platform and IBM's bluemix
garage cloud platform all provide blockchain as a service baas
blockchain as a service (baas) is a space created by enterprises such as Microsoft and IBM from their own cloud service network to run a blockchain node. Compared with ordinary nodes and exchange nodes, the main purpose of baas nodes is to quickly establish the development environment they need, and provide a series of operation services based on blockchain, such as search query, transaction submission, data analysis, etc. these services can be centralized or decentralized to help developers verify their concepts and models faster. The service of baas node is reflected in: it is more instrumental and easy to create, deploy, run and monitor blockchain.
what I know is that smart podcasting has set up this subject, and some of them will have supporting materials and free courses, so you can go and have a look.
1. Server programming: in the past, if you used C or C + + to do those things, go is very suitable, such as processing logs, data packaging, virtual machine processing, file system and so on
2, distributed system, database agent, middleware: for example, etcd
3. Network programming: at present, this area is the most widely used, including web application, API Application, download application, and the built-in net / HTTP package of go basically realizes all the network functions we usually use
4. Development of cloud platform: at present, many foreign cloud platforms are developing with go, and the well-known seven cattle cloud, Huawei cloud and so on all have procts that are developed with go and open source
5. Blockchain: at present, there is a saying that technical practitioners regard go language as the development language of blockchain instry. If you learn the blockchain technology, you will find that many blockchain systems and applications are developed with go. For example, ehtereum is the most famous public chain at present, and fabric is the most famous alliance chain at present. Both of them have go language versions, and go ehtereum is the version officially recommended by Ethereum
Many projects in the later stage of
are implemented by go language. This process is simpler than other languages, which also leads to the emergence of a large number of go language native development projects< br />
Four applications of blockchain
applications of financial instry
it can be said that blockchain technology is very suitable for the financial instry, just like our common international exchange, letter of credit, equity registration and stock exchange, blockchain technology can make great value, especially in transaction payment, Blockchain technology can achieve fast payment directly over the third party, which can greatly rece the cost
Internet of things instry
the application of blockchain technology in the Internet of things instry is also one of the fields with very good prospects, which is very simple for the logistics instry. Through blockchain technology, we can monitor and query the status of procts and goods in real time at any time, and improve the efficiency of supply chain management
the field of public service
we have to say that the field of public service is closely related to people's life, but because it involves a wide range and many other reasons, it also brings a lot of problems, so in the problem of centralization, we can use blockchain technology to achieve the desired effect
in the field of digital right
for various reasons, there are not a few cases of infringement in our society. Through the blockchain technology, we can timely own our works, upload corresponding proof materials to ensure the authenticity of our rights and interests, and confirm that our works can have corresponding records in all subsequent places