Modification of public chain code based on Ethereum
issued based on Ethereum public chain should be observed according to the price trend of the platform.
although the pow mining mechanism is adopted, the block out mechanism of Ethereum is different from that of bitcoin. Due to the short block time of Ethereum, Ethereum is easy to form isolated blocks. Isolated blocks refer to the blocks that are not on the longest chain. Bitcoin's isolated blocks have no block rewards, but in Ethereum, isolated blocks can be referenced. The referenced isolated blocks are called "Uncle blocks", and their packaged data will also be recorded in the blockchain. Unlike bitcoin, Ethereum's TERT block has a reward, and each TERT block can get a reward of 4.375 Ethernet coins at most
Ethereum is a programmable and Turing complete blockchain development platform, which is equivalent to a decentralized global computer. In a programming system, there are usually some virtual machines to compile and execute. Java has JVM. In Ethereum, there is also Ethereum's virtual machine EVM, which can execute any complex algorithm code. Developers can use existing programming languages such as JavaScript or Python to create their own applications on Ethereum. Through Ethereum's virtual machine, you can easily issue digital assets, write smart contracts, set up and run decentralized applications, and set up decentralized autonomous organizations
eth is also known as the internal fuel of Ethereum. Unlike currency digital assets, Ethereum is not only used for transfer, but also for payment of smart contracts
in order to prevent the Ethereum blockchain from being full of junk contracts and junk applications, and to establish and run smart contracts on Ethereum, you must use eth to pay for smart contracts. For example, when you transfer your newly created digital assets on the Ethereum blockchain, you need to use eth to pay the handling fee instead of your newly created digital assets.
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.
Public chain, also known as "public chain", refers to the blockchain that anyone in the world can enter the system at any time to read data, send confirmatory transactions and compete for bookkeeping. The public chain is generally considered to be "completely decentralized", because no indivial or institution can control or tamper with the reading and writing of data in it. In terms of application, blockchain public chain mainly includes bitcoin, Ethereum, super ledger, most counterfeit currencies and smart contracts. The ancestor of blockchain public chain is bitcoin blockchain, which has the following characteristics:
1, open source code
upload the code to GitHub, and everyone can get complete blockchain data by downloading, Accept the test of the public
2, complete decentralization
anyone can become a node, each node is open, everyone can participate in the calculation of the blockchain, any node is not permanent, but phased, and any center is not mandatory for nodes. Anyone can read and send transactions, and transactions can be effectively confirmed on the blockchain. Anyone can participate in the consensus process. The consensus process determines whether a block can be added to the blockchain and the exact current state. Everyone can get financial reward from it, which is proportional to their contribution to the consensus process. These public chains are generally considered to be "completely decentralized"
3. Developing decentralized applications
through this public chain, developers can easily develop centralized applications. Public chain can protect the rights and interests of users from the influence of program developers

This is two different concepts. According to different standards, blockchain can be classified into three categories:
& # 8195 8195; 1) According to the network scope of blockchain, it can be divided into public chain, private chain and alliance chain
8195; 2) According to the docking type of blockchain, it is divided into single chain, side chain and interconnection chain
8195; 3) According to the display environment of blockchain deployment, it can be divided into main chain and test chain
the main chain can be understood as a formal online and independent blockchain network, while the public chain refers to a blockchain that can be read by anyone, can send transactions and can be effectively confirmed by anyone, and can participate in its consensus process

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. It is essentially 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 about bitcoin network transactions, Used to verify the validity of its information (anti-counterfeiting) and generate the next block
if such technology wants to be put into application, the biggest problem is the "Impossible Triangle problem"
that is, scalability, decentralization and security cannot be achieved at the same time, and only two of them can be achieved
most of the existing public chain projects in the market are difficult to put into use on a large scale

Take a blockchain API tool that I am currently using as an example
previously, I occasionally found bctools , which can quickly and conveniently test and verify BTC and EOS blockchain API. At the same time, these API interface test network and main network can be verified on bctools ; If you are interested, you can go http://bctools.io Use it
at present, Apis on bctools seem to have the following types:

