Data structure of Ethereum blockchain
blockchain is a new application mode of distributed data storage, point-to-point transmission, consensus mechanism, encryption algorithm and other computer technologies. Blockchain is an important concept of bitcoin,
in essence, it is a decentralized database. At the same time, as the underlying technology of bitcoin, it is a series of data blocks generated by using cryptographic methods. Each data block contains a batch of information of bitcoin network transactions, Used to verify the validity of its information (anti-counterfeiting) and generate the next block
extended data
most blockchain public chains are limited by scalability. The biggest feature of blockchain technology is decentralization, which requires that all accounts in the network need to deal with the accounting process. Distributed accounting has high security, low misoperation rate, political neutrality and correctness
however, blockchain technology embraces these features at the same time, sacrificing scalability, unable to meet the personalized supervision, and slightly insufficient in protecting data privacy. Moreover, with the increase of the number of ledger, the interaction delay will increase exponentially, that is to say, the more ledger in the blockchain network, the higher the delay
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.
1. Data layer
the data layer is the lowest layer in the six hierarchies of the blockchain. We can understand the data layer as a database, but for the blockchain, this database is a tamperable and distributed database, which is what we call "distributed ledger"
in the data layer, that is, the "distributed ledger", the data information on the blockchain is stored, and the blockchain structure, asymmetric encryption technology, hash algorithm and other technical means of the block are encapsulated to ensure the security of the data in the case of the whole network being open. The specific method is:
in the blockchain network, nodes use consensus algorithm to maintain the consistency of data layer (that is, the distributed database), and use asymmetric encryption and hash algorithm in cryptography to ensure the non usurpation and traceability of the distributed database
This constitutes the bottom data structure of blockchain technology. However, it is not enough to have a distributed database. We also need to let the data information in the database be shared and exchanged. Next, we will introce the upper layer of the data layer - the network layer
Second, network layer
the network system of blockchain is essentially a P2P (point-to-point) network. Point to point means that there is no need for an intermediate link or centralized server to control the system. All resources and services in the network are distributed in the hands of each node, and the transmission of information is also a direct communication between the two nodes. However, it should be noted that P2P
(peer-to-peer) was not invented by Nakamoto, and the blockchain only integrates this technology
therefore, the network layer of blockchain is actually a particularly powerful point-to-point network system. In this system, each node can not only proce information, but also receive information, just like sending e-mail. You can write your own e-mail, and you can also receive the e-mail sent to you by others
in the blockchain network, nodes need to jointly maintain the blockchain system. Every time a node creates a new block, it needs to notify other nodes in the form of broadcast. After receiving the information, other nodes verify the block, and then create a new block on the basis of the block. In this way, the whole network can jointly maintain and update the general ledger of the blockchain system
however, what rules should the whole network follow to maintain and update the general ledger of the blockchain system? This involves the so-called "laws and regulations" (rules), which we will introce next: the consensus layer
Third, consensus layer
in the world of blockchain, consensus simply means that the whole network should maintain and update the general ledger of blockchain system according to a unified and agreed rule, which is similar to the rule of updating data. It is one of the core technologies of blockchain and the governance mechanism of blockchain community to let highly dispersed nodes reach consensus efficiently in the decentralized blockchain network
at present, the mainstream consensus mechanism algorithms include: proof of work of bitcoin (POW), proof of rights and interests of Ethereum (POS), proof of rights and interests of EOS (dpos), etc
we now introce the data layer, network layer and consensus layer. These three layers ensure that there are data, networks and rules for updating data on the network. However, there is no free lunch in the world. How can nodes actively participate in the maintenance of the blockchain system? Here is the incentive layer, which we will introce next: incentive layer< 4. Incentive layer
incentive layer is the so-called mining mechanism, which can be understood as incentive mechanism: you can get as much reward as you contribute to the blockchain system. With this incentive mechanism, the whole network nodes can be encouraged to participate in the data recording and maintenance on the blockchain
mining mechanism and consensus mechanism are actually the same truth. Consensus mechanism can be understood as the company's general rules and regulations, while mining mechanism can be understood as the reward rules for what you do well in the general rules and regulations
just like the consensus mechanism POW of bitcoin, it stipulates that more work pays more. Whoever can find the correct hash value first can get a certain amount of bitcoin reward
and Ethereum's POS stipulates that the older the holder is, the more likely he or she will be rewarded
it should be noted that the incentive layer is generally only available for the public chain, because the public chain must rely on the nodes of the whole network to jointly maintain data, so there must be a set of incentive mechanism to encourage the nodes of the whole network to participate in the construction and maintenance of the blockchain system, so as to ensure the security and reliability of the blockchain system
the blockchain is safe and reliable, and it is not intelligent enough, right? The contract layer we will introce next can make the blockchain system more intelligent
v. contract layer
Contract layer mainly includes various scripts, codes, algorithm mechanisms and smart contracts, which is the basis of block chain programming. What we call "smart contract" is at the contract level
if the bitcoin system is not intelligent enough, the "smart contract" proposed by Ethereum can meet many application scenarios. The principle of the contract layer is to embed the code into the blockchain system, in this way to realize the smart contract that can be customized. In this way, on the blockchain system, once the terms of the smart contract are triggered, the system can automatically execute commands< Finally, the application layer. The application layer is very simple. As the name suggests, it is a variety of application scenarios and cases of blockchain. What we now call "blockchain +" is the so-called application layer. At present, the blockchain applications that have been implemented are mainly various blockchain applications built on
eth, EOS and other public chains. There are more applications of gambling and games, and the real practical applications have not yet appeared.
1, data layer / data layer
the data layer mainly describes the physical form of blockchain, which is a chain structure starting from Genesis block on blockchain, including block data, chain structure, random number, time stamp, public and private key data on blockchain, and is the lowest level data structure in the whole blockchain technology
2. Network layer / network layer
the network layer mainly realizes the mechanism of distributed network through P2P technology, and the network layer includes P2P networking mechanism, data dissemination mechanism and data verification mechanism. Therefore, blockchain is essentially a P2P network with automatic networking mechanism, and the communication between nodes is maintained by maintaining a common blockchain structure
3. Consensus layer / consensus layer
consensus layer mainly includes consensus algorithm and consensus mechanism, which enables highly dispersed nodes to reach consensus on the effectiveness of block data efficiently in the decentralized blockchain network. It is one of the core technologies of blockchain and also the governance mechanism of blockchain community. At present, there are at least dozens of consensus mechanism algorithms, including workload proof, rights and interests proof, rights and interests authorization proof, burning proof, importance proof and so on
data layer, network layer and consensus layer are the necessary elements of building blockchain technology. Without any layer, it can not be called a real blockchain technology
4. Incentive layer / activator layer
the incentive layer mainly includes the issuing system and distribution system of economic incentive. Its function is to provide certain incentive measures, encourage nodes to participate in the security verification work in the blockchain, incorporate economic factors into the blockchain technology system, encourage nodes that comply with rules to participate in bookkeeping, and punish nodes that do not comply with rules
5. Contract layer / contract layer
the contract layer mainly includes various scripts, codes, algorithm mechanisms and smart contracts, which is the basis of block chain programming. Embedding the code into the blockchain or token, realizing the smart contract that can be customized, and automatically executing without a third party when certain constraints are met, is the foundation of the blockchain's distrust
6. Application layer / application layer
the application layer of blockchain encapsulates various application scenarios and cases, which are similar to applications on computer operating system, portals on Internet browsers, search engines, e-malls or apps on mobile phones. The blockchain technology applications are deployed on Ethereum, EOS and qtum, and are implemented in real life scenarios. The future programmable finance and programmable society will also be built on the application layer
incentive layer, contract layer and application layer are not necessary factors for each blockchain application, and some blockchain applications do not completely include the three-tier structure.
blockchain 1.0 mainly refers to bitcoin. Blockchain 2.0 extends to all assets, while blockchain 3.0 goes beyond currency, finance, even commerce, and all areas of our lives, including politics, social relations, ecation, medical care, etc. According to the prediction and conception of people in the instry, the era of blockchain 3.0 will be realized in the next five years. At that time, blockchain will be recognized and accepted by all the public like the Internet, thus completely subverting our lives
McKinsey has submitted a technical report on blockchain to the Federal Insurance Advisory Committee of the United States. The report calls 2009-2016 the "Dark Age" and believes that all blockchain solutions ring this period are based on bitcoin, and the new era of blockchain will begin in 2016. At that time, the application of blockchain will become unprecedented. Applying an original sentence in McKinsey report: Based on the current development speed of blockchain, we believe that blockchain solutions may realize their full potential in the next five years.
As we all know, blockchain is the proct of recent years, but the market for blockchain related courses can be said to be multifarious, fengmaolingjiao, each has its own merits, here, do a statistics, study, discuss and exchange together
32. What is the application of blockchain (decentralized application)
33. How to recover the stolen EOS key
the Xueshuo innovation blockchain Technology Workstation of Lianqiao ecation online is the only approved "blockchain Technology Specialty" pilot workstation of "smart learning workshop 2020 Xueshuo innovation workstation" launched by the school planning, construction and development center of the Ministry of ecation of China. Based on providing diversified growth paths for students, the professional station promotes the reform of the training mode of the combination of professional degree research, proction, learning and research, and constructs the applied and compound talent training system
network layer: blockchain network is essentially a P2P (peer-to-peer) network. The resources and services in the network are distributed on all nodes, and the information transmission and service implementation are directly carried out between nodes, without the intervention of intermediate links and servers. Each node not only receives information, but also generates information. Nodes synchronize information by maintaining a common blockchain. When a node creates a new block, it notifies other nodes in the form of broadcast. After receiving the information, other nodes verify the block and create a new block on the basis of the block, So as to achieve the role of the whole network to jointly maintain a bottom ledger. Therefore, the network layer will involve the design of P2P network, propagation mechanism and verification mechanism. Obviously, these designs can affect the confirmation speed of block information. The network layer can be used as a research direction in the scalable scheme of blockchain technology
data layer: the underlying data of blockchain is a data structure of block + linked list, which includes data block, chain structure, timestamp, hash function, Merkle tree, asymmetric encryption, etc. Among them, data block and chain structure can be used as the improvement direction of data layer research in the extensible scheme of blockchain technology
consensus layer: it is the basis for highly dispersed nodes to reach a fast consensus on the effectiveness of block data. The main consensus mechanisms include pow (proof of work), POS (proof of stake), dpos (delegated proof of stake) and pbft (Practical Byzantine fault tolerance), They have always been the highlight of the scalable solution of blockchain technology
incentive layer: it is a common mining mechanism, which is used to design certain economic incentive model and encourage nodes to participate in the security verification of blockchain, including the design of issuance mechanism and allocation mechanism. Improvements at this level do not seem to be directly related to blockchain scalability
Contract layer: mainly refers to various script codes, algorithm mechanisms and smart contracts. Strictly speaking, this layer of the first generation blockchain is missing, so they can only trade, and can not be used in other fields or other logical processing. The emergence of the contract layer makes it a reality to use blockchain in other fields. This part of Ethereum includes EVM (Ethereum virtual machine) and smart contract. The improvement of this level seems to provide a potential new direction for the scalability of the blockchain, but it does not seem to be directly related to the application layer in terms of structure
it is the display layer of the blockchain, including various application scenarios and cases. For example, Ethereum uses truffle and Web3 JS. The application layer of blockchain can be mobile terminal, Web terminal, or integrated into the existing server, taking the current business server as the application layer. The improvement of this level also seems to provide a potential new direction for the expansion of blockchain, but structurally, it doesn't seem to be directly related
the Xueshuo innovation blockchain Technology Workstation of Lianqiao ecation online is the only approved "blockchain Technology Specialty" pilot workstation of "smart learning workshop 2020 Xueshuo innovation workstation" launched by the school planning, construction and development center of the Ministry of ecation of China. Based on providing diversified growth paths for students, the professional station promotes the reform of the training mode of the combination of professional degree research, proction, learning and research, and constructs the applied and compound talent training system.