The language of Ethereum
I am in oyuan.com!!!
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 open source public blockchain platform with smart contract function. It provides decentralized virtual machine (Ethereum virtual machine) to process point-to-point contract through its special cryptocurrency ether (also known as "Ethereum")
The token on theblockchain is called ether, and the code is eth. It can be traded in many foreign exchange markets of cryptocurrency, and it is also the medium used to pay transaction fees and computing services on Ethereum
the concept of Ethereum was first proposed by vitalik buterin, a programmer, from 2013 to 2014, inspired by bitcoin, with the general meaning of "next generation cryptocurrency and decentralized application platform", and began to develop through ICO crowdfunding in 2014. As of February 2018, Ethernet is the second highest cryptocurrency in market value, second only to bitcoin
extended data:
Ethereum platform has no characteristics and value. Like programming languages, it's up to entrepreneurs and developers to decide what to use. However, it is clear that some application types benefit more from the functions of Ethereum than others. Ethereum is especially suitable for those applications that automatically interact directly between points or promote group coordination activities across networks
for example, coordinate the application of point-to-point market, or the automation of complex financial contracts. Bitcoin enables indivials to exchange money without the help of financial institutions, banks or governments. The impact of Ethereum may be more profound
in theory, any complex financial activities or transactions can be automatically and reliably carried out on Ethereum with coding. In addition to financial applications, any application scenario with high requirements for trust, security and persistence, such as asset registration, voting, management and Internet of things, will be affected by Ethereum platform on a large scale
-
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
etc (Ethereum Classic) is a bifurcated currency that Ethereum hard bifurcates after 1920000 blocks, and its function is very similar to Ethereum. Etc adheres to the concept of decentralization and supports the consensus mechanism of blockchain guarantee. Etc firmly believes that once the blockchain starts to run, its development direction will not be controlled by any central team, but will be determined by the consensus of the people participating in the whole network and the consensus of the computing power of the whole network
the Ethereum blockchain hard branching in July 2016 aims to transfer the Dao funds stolen by hackers to an account controlled by investors, and let the old transaction records be forgotten by history. Most Ethereum developers are involved in the reversal, as are exchanges, startups and other members of the ecosystem. A few days later, the project returned to normal. But not everyone wants to forget the old record. As a result, a small number of miners continued to use the original blockchain as a protest. They described the hard fork as a capital withdrawal for the abandoned project of the Dao. So Ethereum classic (etc) was born
2. Detailed parameters
Chinese Name: Ethereum classic English Name: Ethereum classic English abbreviation: etc
developer: Ethereum Classic team core algorithm: ethash consensus proof: POW
release date: 2016 / 7 / 20 block time: About 15-17 seconds / block
total currency: fixed at 210 million, up to 230 million, Every 5 million blocks decelerate by 20%, and the first proction rection is expected to be in December 2017
main features: independent cryptocurrency
compared with bitcoin, we can find that Ethereum is more difficult to develop a new encryption technology than bitcoin. This breakthrough has greatly reced the development cost and time for developers who apply blockchain technology. The emergence of Ethereum once again reiterated the need to split the center, as well as the feasibility and advantages of decentralized distributed applications, to the existing economic market, the financial sector a new direction of development and throw to the society a new entrepreneurial ideas and opportunities.
with the global hot discussion of the concept of "blockchain", the application of blockchain technology has been quietly added to the daily life scenes such as finance, logistics, credit reference, manufacturing and retail. Some experts have shown that the future blockchain will be closely related to people's lives, and the integration of blockchain technology and people's daily life is the general trend
the popularity of the blockchain market has triggered a large number of talents demand based on blockchain technical personnel, and the popularity of blockchain talents is rising at the speed of light. According to the "2018 blockchain high salary list" released by lagou.com, Tencent, Xiaomi, Suning, Jingdong and other domestic enterprise giants have released many high salary blockchain post demands, trying to explore blockchain related technologies and applications. It is also pointed out in the list that the demand for high salary jobs is mainly based on blockchain related technical jobs, among which Suning and Keda have been given the highest monthly salary of 100k
the huge market demand for technical talents will inevitably lead to the explosive emergence and growth of the whole blockchain training market. Most of the training modes can be divided into online training, traditional IT organization training, and offline short-term training camps, which mainly focus on high-end forms. However, in the process of the hot market evolution, there are also a variety of blockchain training chaos: lecturers' qualifications are watered down, and even the most basic names are not disclosed, the syllabus is opaque, and the teaching quality is shrinking, Unreasonable class arrangement and uneven training fees and so on
with the large-scale development of the whole blockchain training market, brother company ecation, together with Yin Cheng, a senior blockchain expert, and his Tsinghua Shuimu Weiming team, has set up a blockchain college. With its professional and powerful team of technical lecturers, detailed and comprehensive curriculum system, and a large number of authentic enterprise blockchain projects, it aims to deepen the blockchain teaching and training field, And train more professional technical talents for enterprises and society<
Yin Cheng, a senior blockchain technology expert, graated from Tsinghua University, is the dean of brother Lian blockchain college. He once served as Google Algorithm Engineer, the world's most valuable expert in the field of Microsoft blockchain, and the gold medal lecturer of Microsoft tech.ed conference. Proficient in C / C + +, python, go language, sicikit learn and tensorflow. With 15 years of programming experience and 5 years of teaching experience, senior software architect, Intel Software Technology expert, famous technology expert, with many years of working experience in the world's top it company Microsoft Google. He has many years of experience in software programming and lecturing, and has developed many procts in human-computer interaction, ecation, information security, advertising and blockchain system. He has deep experience in project management and R & D, has two AI invention patents, and has practical experience in developing e-money deployed to Microsoft Windows azure. Teaching explanation is in simple language, so that students can apply what they have learned.
the loads() function performs the same deserialization as the load() function. Instead of accepting a stream object and reading the serialized data from a file, it accepts the str object containing the serialized data and returns the object directly.
