Ethereum contract development tool
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.
First of all, we need to understand what is MLM:
MLM refers to the illegal behavior of organizers and development personnel to obtain wealth by calculating and paying remuneration to the developed personnel based on the number or performance of the personnel directly or indirectly developed, or requiring the developed personnel to pay certain fees to obtain the qualification to join. The essence of MLM is "Ponzi scheme", that is to say, the money of later comers is distributed to the income of former comers
However, the new type of MLM does not restrict personal freedom, does not accept ID cards and mobile phones, and does not take classes collectively. Instead, it uses capital operation as a banner to pull people to cheat money, drives luxury cars, wears gold and silver, and uses money to attract your relatives and friends to join in, and finally makes you lose all your moneythen judge whether the ether coin is a kind of MLM, whether you need membership fee, whether you need to ask your relatives and friends to join
extended materials:
Ethereum is an underlying technology platform on which developers can create distributed applications. With the application, there will be transactions. With a transaction, you need money to complete the transaction. In this way, money has value, and investors' investment has a return. If the transaction volume on the platform is larger and larger, the demand for money will be higher and higher, and the money will be more and more valuable
from the perspective of image, bitcoin creates a kind of digital gold, while Ethereum creates a country, and Ethereum is the credit currency of the country
after bitcoin, there are thousands of digital virtual currencies in the world, many of which are completely deceptive in the guise of "digital currency". Previously, Haikou Municipal Public Security cracked down on a pyramid selling organization called "Eurasian currency", which operated on the internet pyramid selling platform, making more than 40000 investors cheated, involving 4.06 billion yuan. The field of virtual currency has just started, so we need to be cautious
resources : Ethernet money network
EOS is a public chain system at the bottom of blockchain developed by block. One, which is specially designed to support decentralized application of Commerce, and its code is open source
bitcoin is called blockchain 1.0 because it opens up the world of digital cryptocurrency and takes a decisive step from 0 to 1
Ethereum is known as blockchain 2.0, because it provides Turing complete virtual machine that can run smart contracts, bringing unlimited possibilities
and EOS is called blockchain 3.0, why? Two words: performance
The positioning of EOS is the slogan of its home page:English: the most powerful infrastructure for decentralized applications
Chinese: the most powerful decentralized application infrastructure
EOS expects to be an enhanced version of Ethereum, a high-throughput intelligent contract platform
although Ethereum has complete functions, it is limited by its design choice. Due to the block output speed of 15 seconds, the transaction throughput is far from large-scale practical level, which is only about 30 ~ 40tps (transaction / s). EOS, on the other hand, has chosen a different technology route, with the goal of achieving a considerable million TPS, which is quite attractive considering visa's actual processing speed of 1700tps
consensus mechanism of EOS
the reason why the throughput of bitcoin and Ethereum is so low is that they are constrained by the application scenario they envision and the consensus mechanism they choose for the scenario - both of them assume that the environment in which the system runs is totally untrustworthy, so they both adopt the consensus mechanism of proof of work
consensus, as the name suggests, is to reach a unified understanding of something - for blockchain, something refers to the confirmation of the transaction - any node to submit a transaction needs everyone's approval
the pow mechanism currently adopted by bitcoin and Ethereum is the design of the legendary Nakamoto Tsung. Under this mechanism, in order to obtain the bookkeeping right and digital currency reward, miners need to constantly dig for the compliant hash value, and confirm and package the transaction data through the consensus of hash value. POW has no access threshold, and any node has equal rights to participate in bookkeeping. Of course, the probability of winning is related to computing power:
the price of ram is based on Bancor algorithm, that is, it is regulated by market supply and demand: if the supply of ram exceeds the demand, more EOS certificates are needed to buy ram, At this time, more EOS certificates can be obtained by selling ram
memory is a consuming resource, which cannot be redeemed and can only be bought and sold. Take the issue of currency on EOS as an example. At present, the issue of currency requires 20m of memory. An EOS can buy 20KB. According to the current storage price, issuing a currency will consume 1000 EOS. This is the source of EOS memory consumption
Course Overview
this course is for friends who are interested in the development of EOS decentralized application. The course covers the core concepts of EOS DAPP development, the development and deployment of smart contracts, and how the front page interacts with EOS blockchain. Finally, a complete DAPP development based on react and EOS is completed
Chapter 1: enter the world of EOS
to understand the core concepts of EOS, such as positioning and characteristics, consensus mechanism, payment computing model, etc
Chapter 2: Hi EOS
understand the overall framework of EOS node software and the functions of node server, wallet server and command-line tools, learn how to configure and start EOS node server and wallet server, and preliminarily understand the use of command-line tools
Chapter 3: wallet, key and account
understand the three core concepts related to personal identity in EOS: wallet, key and account, and learn how to use command-line tools to create wallet, key and account
Chapter 4: development and interaction of smart contracts
understand the concept and function of smart contracts, learn how to write and compile EOS smart contracts, and learn how to deploy and interact with contracts using command-line tools
understand the persistence mechanism of state in EOS smart contract, and learn to use multi index table to save contract state
Chapter 5: issue your own tokens
learn the principle and implementation mechanism of issuing tokens on EOS, and master how to use command-line tools to issue, transfer and view the balance of tokens through practical operation
Chapter 6: use code to interact with smart contract
understand the principle of interaction between application and EOS blockchain, and learn to use JSON RPC interface and eosjs encapsulation library to access EOS blockchain
Chapter 7: DAPP development of practical notes
comprehensively use EOS knowledge, use react to complete a decentralized application of EOS notes, and learn the complete process from requirement analysis to code implementation
The above course address is as follows: EOS tutorialchoose your own direction
the cost of developing an interface is not so high. Except for EOS, there is not much data to be chained, which is basically completed locally.
Ethereum is not only a database, it also allows you to run programs in the trusted environment of the blockchain. Ethereum has built a virtual machine named EVM (Ethereum virtual machine) on the blockchain. EVM allows code to be verified and executed on the blockchain, providing guarantee for code to run in the same way on everyone's machine. These codes are included in the smart contract. In addition to tracking the account balance, Ethereum uses the same method to save the EVM status on the blockchain. All nodes process the smart contract to verify the integrity of the contract itself and its output.