First, the relationship between Ethereum and blockchain
From the history of blockchain, Bitcoin was first born. At that time, there was no blockchain technology and nouns. Then the industry extracted the technical architecture and system from Bitcoin, which was called blockchain technology. The blockchain technology extracted from Bitcoin is called the blockchain 1.0 era. At that time, the application was mainly based on electronic money and decentralized transactions, such as various altcoins. Ethereum brought the blockchain into the era of 2.0. Blockchain 2.0 did not overthrow 1.0, but realized block awareness, value awareness, Turing completeness, and detailed optimization based on 1.0. Blockchain 2.0 featuring smart contracts was formed. Bitcoin is targeted at an application, and Ethereum is positioned on the platform, where you can leverage smart contracts for a variety of applications.
So, learning the blockchain, it’s good to learn Ethereum directly.
Second, the method of getting started with Ethereum
For those who have not touched the blockchain, it is recommended to attend the daily application of Ethereum.
1. Using the client
There are a lot of tutorials here, recommend an Ethereum wallet tutorial
2. Mining
There are many tutorials for mining, which are generally distributed in various mining pools. Here is a tutorial for domestic mine pools, and you can join the clusters of each mine pool to exchange. The domestic mining pool has several large mining pools such as www.f2pool.com and www.bw.com.
http://pan.baidu.com/s/1c27DOCo
3. Browse the block information of the public chain
After experiencing the above, you can use the blockchain browser to view your own accounts and transactions, which is more intuitive.
Through the above operations, it is basically possible to have a preliminary understanding and perception of the blockchain.
Third, Ethereum project description
After the release of Ethereum, there are multiple clients and multiple platforms. Beginners are often confused by various clients. This article gives a detailed summary.
The Ethereum client is classified by language and is divided into different projects on github. The source code address is https://github.com/ethereum/. Although there are many Ethereum clients, there are two common features:
1. The use of clients in the same language on different platforms is identical.
2. Clients of different languages (mist, geth, eth, etc.) share the same application configuration on the same platform (Linux, Windows, or OSX), and the parameters that can be used on the command line are also consistent.
The following is a classification of the items on github to illustrate the purpose and characteristics of each client:
(1) Go-ethereum project
Development language: go language
Client file: Geth
Interface: Command line
Applicable platforms: windows, linux and OSX
Features and Features: This project is the most widely used Ethereum client. Most of the nodes are running this client. The tutorials and examples are also the most recommended. It can be used for mining, building private chains, managing accounts, deploying intelligence. Common functions such as contracts cannot compile smart contracts.
(2) webthree-umbrella project
This project contains 3 clients
Development language: c++
Client files: AlethZero, Mix, and Eth
Use the platform: windows, linux and OSX
Interface: Graphical interface
Features and Features: The project is strictly a shell of the cpp-ethereum project, written by Gavin Wood, the former CTO of the Ethereum Foundation, so it is also very popular and easy to use. AlethZero is a graphical wallet client that corresponds to Geth's functionality, but is fully graphical. However, with the launch of the graphical wallet Mist, which was mainly promoted by the Ethereum Foundation, it gradually declined. Mix is a development contract for smart contracts (called EAP in Ethereum) that supports the writing, debugging, deployment, and full graphical interface of smart contracts (DAPP), but has stopped development and the development team has moved to Remix. Eth is the command line client function written in C++ and is the same as Geth.
(3) Mist project
Development language: JavaScript
Client file: Mist (currently using the name of Ethereum-Wallet)
Use the platform: windows, linux and OSX
Interface: Graphical interface
Features and features: The project is the main project of the Ethereum Foundation. Mist is not only a wallet, but also a future DAPP (Intelligent Contract Application APP) market, similar to the Apple market, where you can have your account and can browse. , publish and trade E-shop applications in Ethereum. At present, because the development is not comprehensive enough, the name is temporarily displayed as Ethereum-Wallet, and the function is very simple, which is the function of a wallet. Highly recommended, the mainstream of the future client.
(4) Solidity project
Development language: C++
Client file: solc
Use the platform: windows, linux and OSX
Interface: Command line interface
Functions and features: The project is a programming language of Ethereum Smart Contract (DAPP), which uses Solc as a compiler. This project is mainly used for compilation. Strictly speaking, it is a basic compilation platform. Generally, MIX can be used instead.
(5) Browser-solidity project
Development language: C++
Client file: displayed in the browser
Use the platform: windows, linux and OSX
Interface: browser interface
Features and Features: This project is a development environment for smart contract browser version. It can support direct development, debugging and compilation in the browser. For beginners, it can be quickly started, no need to install, very convenient, direct access address :https://ethereum.github.io/browser-solidity/
(6) Pyethereum project and ethereumj project
The pyethereum project is an Ethereum client written in Python. The ethereumj project is an Ethereum client written in Java, but the language is different, and the functionality of the client Goh written in the GO language is exactly the same.
(7) Etheminer project
Development language: C++
Client file: ethminer
Use the platform: windows, linux and OSX
Interface: Command line
Features and Features: This project is part of the cpp-ethereum project. It is used in conjunction with Geth for GPU mining. It is more than 100 times more efficient than CPU mining and can also be used for mine mining.
Fourth, Ethereum commonly used website (including smart contracts)
There are many useful websites in Ethereum that are distributed abroad. It is very hard to find.
1. Ethereum official website: https://ethereum.org/
The website is the official website of Ethereum, with detailed Ethereum introduction and various connection addresses. It is recommended to take a closer look.
2. Ethereum all source code (official): https://github.com/ethereum/
The github is the source address of all Ethereum projects, as well as updates and releases.
3. Ethereum Homestead Document Address (Official): http://www.ethdocs.org/en/latest/index.html
The website is a detailed introduction document of Ethereum, which basically covers all aspects of Ethereum. If there are any unclear principles and applications, you can basically find answers and clues here.
4. Ethereum network status address (official): https://ethstats.NET/
The website can fully display the network status, including nodes, difficulty, computing power, etc., very intuitive
5. Ethereum Resources Website (official): http://ether.fund/
The website provides many application resources for Ethereum, such as market conditions, contract assistance tools, published smart contracts, Ethereum network, DAAP, etc., for easy development and release.
6. Solidity programming documentation (official): http://solidity.readthedocs.io/en/latest/
The site provides a comprehensive reference manual for the Ethereum Solidity language, which is a must for the Solidity language.
7. Ethereum Network Scan (Official): http://etherscan.io/
The website provides various statuses of the Ethereum network, such as account details, TOKEN details, difficulty details, and block details, which is very convenient and intuitive.
8. Ethereum Official Blog: https://blog.ethereum.org/
9. Ethereum wiki encyclopedia address: https://github.com/ethereum/wiki/wiki
There are white papers, yellow books and development guides here.
10. Ethereum Chinese enthusiasts website: http://ethfans.org/
The website is a self-developed website for domestic Ethereum enthusiasts. The content is relatively comprehensive and the information is updated very quickly.
11. Either's gitter real-time communication website: https://gitter.im/orgs/ethereum/rooms
The website is the website of the Gitter Chart of Ethereum. According to the project, there are a lot of rooms. As long as you ask questions, most of them answer, very good, but only English communication.
12. The official forum of Ethereum: https://forum.ethereum.org/
The official forum, there is nothing to say, I have encountered several questions, are the answers found here.
13. A powerful third-party IDE in Ethereum: https://live.ether.camp/
This is a Solidity IDE released by a third party. I looked at it, it is very powerful and powerful, and it is not very useful. His goal is enterprise-level IDE, and it is used by foreigners.
14. Ethereum development framework Truffle manual: http://truffle.readthedocs.io/en/latest/
The framework of Truffle, the current development framework of Ethereum, is quite popular.
15. Ethereum development framework dapple manual: http://dapple.readthedocs.io/en/master/
This development framework is seen on the gitter chart. I don’t think there are many people to use.
16. Ethereum official recommendation development framework Meteor manual: https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor