Ethereum contract book
< Introction to cognition & gt
publication time: 2016
recommendation: this book is mainly for programmers. Combined with API programming, we can tell you the principle and usage of cryptocurrency, as well as how to develop related software. For non programmer readers, the first few chapters of this book are still applicable as in-depth introction of bitcoin Book pdf download: https://quant.la/Download
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.
2 FORTRAN 95 programming, written by Peng Guolun
3 Introction to FORTRAN 77 and 90 / 95 programming, written by Ding Zejun
4. Out of control: the new biology of machines, society and economy
5. Necessity, written by Kevin Kelly, mentions 12 inevitable trends in the next 20 years
6. Master bitcoin, this book will provide you with the necessary knowledge to guide you into the bitcoin world
7. Blockchain revolution, written by don Tapscott and Alex Tapscott, tells how the underlying technology of bitcoin has changed money, business and the world
8. Blueprint and guide of blockchain new economy, written by Melanie Swann
9. Blockchain: the concept of quantum wealth, written by Han Feng / Zhang Xiaomei
10. Logic of finance, The author is Chen Zhiwu. The work starts from the cultural and institutional genes of wealth in simple terms, so as to tell readers what the logic of finance is
related books include principles of economics, blockchain: technology driven finance, blockchain Revolution: how bitcoin's underlying technology can change money Business and the world, blockchain technology guide, illustrated blockchain, how blockchain will redefine the world, digital currency: bitcoin data reporting and operation guide, blockchain: from digital currency to credit society, intelligent age, etc. to be honest, blockchain is still a hot resource. It's mainly about judgment (whether it's valuable) and action (to get in early)
recommends a block chain related APP, called golden finance, recommends a public official account, called "Xiao Ke online". The article is rich in materials;
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
what is Ethereum
Ethereum is often compared with bitcoin, but the situation is different. Bitcoin is a kind of cryptocurrency and distributed payment network, which allows bitcoin to be transferred between users
related: what is bitcoin? How does it work
Ethereum has a bigger goal. As Ethereum says, "Ethereum is a distributed platform running smart contracts.". These smart contracts run on "Ethereum virtual machine", a distributed computing network composed of all devices running Ethernet nodes
"distributed platform" means that anyone can set up and run an Ethereum node just as anyone can run a bitcoin node. Anyone who wants to run "smart contracts" on nodes must pay the operators of these nodes in ether, which is a cryptocurrency related to Ethereum. Therefore, the person running the Ethernet node provides computing power and gets paid in the Ethernet, which is similar to the way that the person running the bitcoin node provides hash power and pays in bitcoin
in other words, although bitcoin is only a blockchain and payment network, Ethereum is a distributed computing network, and its blockchain can be used for many other things. Details are provided in the Ethereum white paper
what is ether
Ethernet is a digital token (or cryptocurrency) related to Ethereum blockchain. In other words, Ethereum is the token and Ethereum is the platform. But now people often use these terms alternately. For example, coinbase allows you to buy Ethereum, which stands for Ethereum
this is technically "altcoin", which actually means a non bitcoin cryptocurrency. Like bitcoin, ether is supported by distributed blockchain - in this case, Ethereum blockchain
developers who want to create applications or Ethereum smart contracts on Ethereum blockchain need Ethernet token to pay for nodes to host it, while users of Ethereum based applications may need Ethernet to pay for services in these applications. People can also sell services outside the Ethereum network and accept Ethernet payments, or they can sell Ethernet tokens in cash - just like bitcoin
Yes, refer to the interaction between contracts. Digital currency exchange platform for example, I am trying to sign a smart contract from another factory contract and then redeploy the address of the new smart contract. However, the address it returns is the transaction hash, not the contract address. I believe this is because when the address is returned, the contract has not been exploited. When I deploy the smart contract with Web3, it seems that it will not output the contract address until the smart contract is deployed