The difference between fabric and Ethereum
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.
-
about the variability of blockchain
-
eth, if most people agree to modify the chain, that is, variability, then they can modify the blockchain records and contracts
-
etc, blockchain records and contracts can't be modified, that is, they can't be tampered with
-
here are the advantages and disadvantages of the two methods
The advantage of -
variability is that people can make timely changes to make the right decisions. Therefore, modifying the specification is more practical than finding loopholes
-
non modifiability means that no matter how smart people are at that time, it is impossible not to make mistakes. Therefore, when problems arise in this scheme, it is best to find and solve the loopholes through the existing legal framework
-
differences in development
-
eth, whether it is intentionally arranged or since its birth, the core decisions of blockchain are made by Ethereum foundation with the participation of the community and most of them are developed by it
-
etc, the decision-making of blockchain is mainly decided by the feedback of three loose, collaborative teams with community participation
-
in any case, anyone can put forward improvement suggestions for the two kinds of blockchains. This is the benefit of open source, and it is also very common. You will find that developers of the two chains communicate with each other through GitHub and reddit. I hope to improve the frequency of communication in order to achieve the common goal
-
about compatibility
-
at present, the two kinds of blockchains are compatible with each other. Contracts or applications written by eth can be applied on etc, and vice versa
-
eth, focusing on ewasm, is committed to providing a platform for more and more developers, while the issue of contract security is secondary, such as viper
-
etc focuses on making developers create more secure contracts, such as viper, iohk research, at the cost of consuming the number of potential developers
-
it's obvious that both chains can accept each other, regardless of whether their wishes are the same or not. My view is that the number of developers is not necessarily related to the quality of the proct
-
about the transaction speed
-
eth, the average is 25 seconds, which will be shortened after upgrading
-
etc, with an average time of 14 seconds, maintained at 10-14 seconds after upgrade, according to ecip-1010 and ecip-1036 protocols
-
about the block capacity
-
eth, with the daily trading volume of eth graally reaching 5 million, the block capacity is graally saturated. This situation is similar to the recent transaction cost of bitcoin. This problem can be solved by expanding the block capacity by increasing the default fuel limit
ETC, At present, there is still a lot of room for block capacity. As more and more people accept etc, the block capacity will also increase, just like eth
-
about community
-
eth, mainly discuss on reddit
-
etc, mainly discuss on slack
-
about monetary policy
-
eth, the planned supply is growing steadily, resulting in an average inflation of 3% in eth blockchain in its life cycle
-
etc, before 2025, inflation will reach 3%, and then the total supply will reach 200 million etc, and then there will be deflation
As for the regional distribution of trading volume, China accounts for 20%, South Korea 25% and the United States 25% In etc, China accounts for 50%, South Korea 25% and the United States 10% About securities, at present, investors do not have the option to trade securities. Recently, one of eth's ETFs, trading open-end index funds, was denied by the regulators -
etc owns etc trading trust, which allows investors to own etc instead of the asset itself
Bitcoin uses SHA-256 encryption algorithm. When mining, it competes with computing power. In order to improve computing power, bitcoin has gone through four stages: CPU mining, GPU mining, FPGA mining and now ASIC mining machine mining, and the degree of specialization is getting higher and higher
Ethereum uses the ethash encryption algorithm. In the process of mining, it needs to read the memory and store the DAG file. Because the bandwidth of each read memory is limited, and the existing computer technology is difficult to have a qualitative breakthrough in this problem, so no matter how to improve the computing efficiency of the computer, the memory read efficiency will not be greatly improved. Therefore, in a sense, Ethereum's ethash encryption algorithm is ASIC resistant.
different encryption algorithms lead to great differences in mining equipment and computing power between bitcoin and Ethereum
at present, bitcoin mining equipment is mainly ASIC mining machine with a very high degree of specialization. The maximum computing power of a single mining machine is 110t / s, and the scale of computing power of the whole network is more than 120eh / s
the main mining equipment of Ethereum is video card miner, and there are very few specialized ASIC miner. On the one hand, the "ASIC resistance" of Ethereum mining algorithm improves the threshold of developing ASIC miner. On the other hand, after Ethereum is upgraded to 2.0, the consensus mechanism will be transformed into POS, and the miner can not continue mining
compared with the ASIC miner, the graphics card miner has two orders of magnitude difference in computing power. At present, the computing power of mainstream graphics card miner (8 cards) is about 420mh / s, and that of Ethereum is about 230th / s.
from the time dimension of the past two years, bitcoin's computing power of the whole network is growing rapidly, while Ethereum's computing power of the whole network is growing relatively slowly
The ASIC mining machine of
bitcoin is monopolized by several major mining machine manufacturers, and miners can only buy it from the market; Although the graphics card miner of Ethereum is also manufactured by a special miner, the miner can buy accessories from the market and assemble them according to his own demand
The user groups of Ethernet and bitcoin are different
mahjong is the earliest application of blockchain in China:
the idea that a wants to play mahjong is equivalent to creating a block:
a calls to inform B, C and D, which means "decentralization & quot; Point to point transmission of
ABCD has formed a consensus that the touch action is "mining", and four people are "miners"
mahjong is a hash value. The Hu card is to hit the correct hash value and get the corresponding chip reward, which is called bitcoin
each of the four recorded the first round of the game. In the whole blockchain, this is only one node. If 20 mahjong games were played that day, that is, 20 nodes (blocks), and 20 blocks were connected together to form a complete ledger, that is blockchain< According to historical records, China is the world's earliest application group in blockchain, so you can be proud to say that China is more than 1000 years ahead of the world in blockchain application
it's powerful. Our country is [strong] [strong] [strong]
