Ethereum DAPP development language
just like bitcoin, Ethereum is neither controlled nor owned by anyone - it is an open source project created by many people around the world. Different from bitcoin protocol, Ethereum's design is very flexible and adaptable. It is very easy to create new applications on the Ethereum platform. With the release of homestead, anyone can use the applications on this platform safely
Ethereum is a programmable blockchain. It does not give users a series of preset operations, but allows users to create complex operations according to their own wishes. In this way, it can be used as a platform for many types of decentralized blockchain applications
in a narrow sense, Ethereum refers to a series of protocols that define a decentralized application platform. The core of Ethereum is Ethereum virtual machine (EVM), which can encode any complex algorithm. In computer science terminology, Ethereum is "Turing complete.". Developers can use the existing JavaScript and python as the model of other friendly programming languages to create applications running on the Ethereum simulator.
what is Ethereum:
Ethereum is an innovation based on the application of technologies and concepts in bitcoin to computers. Ethereum itself imitates a lot of bitcoin technology to maintain the computer platform. Blockchain technology is one of them
Ethereum platform can safely run any program users want
advantages of Ethereum over other competitive currencies before Ethereum appeared, some digital currencies imitated bitcoin. However, these projects have their own shortcomings, they can only support one or several specific applications at the same time< However, the reason why Ethereum can surpass the limitations of these projects in the past is because of the core idea of Ethereum
what Ethereum wants to implement is a blockchain protocol with built-in programming language. Since it supports programming language, in theory, any blockchain application can be defined with this language, and then run on Ethereum's blockchain protocol as an application
The design of Ethereum is very flexible and adaptable
Ethereum target sets the advantages of blockchain technology, in order to add the advantages of blockchain, such as decentralization, openness and security, to almost all computing fields
blockchain applications of Ethereum
Ethereum has many blockchain applications, such as digital applications of gold and stocks, financial derivatives applications, DNS and digital authentication, etc
Ethereum has achieved more than 100 blockchain applications by many start-ups
Ethereum has also been closely watched by some financial institutions, banking consortia (such as R3), as well as large companies like Samsung, Deloitte, RWE and IBM. As a result, a number of blockchain applications such as simplified and automated financial transactions, merchant loyalty index tracking, and gift cards designed to achieve decentralization of electronic transactions have emerged
the relationship between Ethereum and blockchain:
Ethereum is a programmable blockchain
Ethereum does not give users a series of preset operations (such as bitcoin transaction), but allows users to create complex operations according to their own wishes
in this way, Ethereum can be used as a platform for various types of decentralized blockchain applications, including but not limited to cryptocurrency
like other blockchains, Ethereum also has a peer-to-peer network protocol. Ethereum blockchain database is maintained and updated by many nodes connected to the network. Each network node runs the Ethereum simulator and executes the same instructions. Therefore, people sometimes call Ethereum "world computer"
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.
Ethereum is an implementation of blockchain. In Ethereum network, many nodes are connected with each other to form Ethereum network:
Ethereum node software provides two core functions: data storage and contract code execution
in each Ethereum node, complete blockchain data is stored. Ethereum not only saves the transaction data on the chain, but also saves the compiled contract code on the chain
At the same time, a virtual machine is provided to execute the contract code Ethereum virtual machine
Ethereum blockchain not only stores data and code, but also contains a virtual machine (EVM) in each node to execute contract code - it sounds like a computer operating system
in fact, this is the core difference between Ethereum and bitcoin: the existence of virtual machine has brought blockchain into the era of 2.0 and made blockchain a friendly platform for application developers for the first time
the above content comes from the introction course of Ethereum DAPP development
22 weeks in total, divided into five stages,
the first stage is four weeks, go language foundation and network concurrency, after learning the introctory go language,
the second stage is four weeks, go language practical web development, crawler development, cryptography, consensus algorithm, implementation of lightweight public chain, after 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, And the intelligent contract DAPP development
phase V 6-week project actual combat, five enterprise level projects, after learning, you can have one year of blockchain project experience
suitable for the crowd:
1. People who have no programming foundation and want to learn it technology
2
3. People who have programming experience and want to change careers
learning objectives:
learn go language from 0, and comprehensively cultivate special application-oriented talents of blockchain through the learning of go language< Employment direction:
1. New technology go language development (web development, micro service, distributed)
2. Blockchain development in new areas (cryptography security, blockchain system, blockchain application).
there is no central server in Ethereum. Instead, there are many equal nodes connected by P2P protocol, which store all the data in many nodes. When a user initiates a transaction, the transaction will be broadcast out through P2P protocol. The miner node verifies, packages and further broadcasts the transaction to the whole network. After confirmation in the blockchain, the operation is considered to be unchangeable
in the articles on blockchain on the Internet, the two words distributed and decentralized are mentioned, sometimes slightly different, sometimes mixed. The author thinks that if we want to distinguish accurately, the distributed system emphasizes that multiple components work together by sending messages, and the decentralized system emphasizes that there is no central node to control the operation of the whole system. Therefore, we think that Ethereum is both decentralized and distributed, or running a decentralized program on a distributed platform.
1.
Lianzhuang data block structure based on blocks
2.
network wide shared ledger
3.
asymmetric encryption
4.
source code open source
the technical basis of blockchain 2.0 era is as follows:
1.
smart contract; It is an application in the blockchain system. It is a business logic that can run automatically by coding. It usually has its own token and special development language<
2
3.
virtual machine: it is used to execute the compiled code of smart contract. Virtual machine is Turing complete
with the application and deepening of blockchain technology, the era of blockchain 3.0 has come. The mode of blockchain cooperation can be seen from behind the operation of all walks of life. Therefore, blockchain will change the way of human life widely and profoundly, so the whole life service will enter the era of blockchain. In the process of Internet development, blockchain + physical instry, blockchain e-commerce and blockchain community operation can be applied to blockchain technology
of course, 3.0 came into being with the development of modern cryptography. Today's applied cryptography is the result of cryptography 20 years ago. Therefore, in order to apply blockchain technology to more participation scenarios, especially in Internet economy and other aspects, more verification is needed to verify whether the existing encryption technology can meet the demand, and more in-depth integration of cryptographic frontier technology and continuous innovation are needed.