Blockchain technology tutorial, how to learn Ethereum and blockchain from scratch

Many people are confused about blockchain and Ethereum and don't know how to learn. This article briefly introduces some methods and resources for learning.

1. The relationship between Ethereum and blockchain

     From the history of blockchain, Bitcoin was born first, but the technology and term of blockchain did not exist at that time, and then the industry extracted the technical architecture and system from Bitcoin , which is called blockchain technology. The blockchain technology extracted from Bitcoin is called the blockchain 1.0 era. At that time, the applications were mainly electronic currency and decentralized transactions, such as various altcoins. Ethereum brings the blockchain into the era of 2.0. Blockchain 2.0 does not overturn 1.0, but realizes block awareness, value awareness, Turing completeness on the basis of 1.0, and optimizes the details. A blockchain 2.0 featuring smart contracts is formed. Bitcoin is positioned as an application, while Ethereum is positioned as a platform on which you can use smart contracts to do various applications.

    So, just learn blockchain, just learn Ethereum directly

Ethereum Knowledge Base : http://www.aibbt.com/a/ethereum/

2. How to get started with Ethereum

        For those who have not been exposed to the blockchain, it is recommended to first participate in the daily application of Ethereum.

1. Use the client

    There are many tutorials here, I recommend an Ethereum wallet tutorial

2. Mining

    There are many mining tutorials, which are generally distributed in various mining pools. Here we recommend a domestic mining pool tutorial, and you can join the groups of each mining pool to communicate. There are several major mining pools in China, such as www.f2pool.com and www.bw.com.

3. Browse the block information of the public chain

    After going through the above things, you can view your account and transactions through the blockchain browser, which is more intuitive.

    Through the above operations, you can basically have a preliminary understanding and perception of the blockchain.

3. Description of various projects of Ethereum

    After the release of Ethereum, there are multiple clients and multiple platforms are also supported. Beginners are often confused by various clients. This article makes a detailed summary.

    Ethereum clients are classified by language and are divided into different projects on github. The source code address is: https://github.com/ethereum/. Although there are many Ethereum clients, they have two common features:

    1. The use of the same language client on different platforms is exactly the same

    2. Clients in 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 in the command line are also the same.

    The following describes the uses and features of each client based on the projects on github:

(1) go-ethereum project

    Development language: go language

    Client file: Geth

    Interface: Command Line

    Applicable platforms: windows, linux and OSX

    Functions and features: This project is the most widely used Ethereum client. Most nodes are running this client. It also has the most tutorials and examples. It is recommended to use. It can be used for mining, building private chains, managing accounts, and deploying intelligence. Common functions such as contracts cannot be compiled into smart contracts.

(2) webthree-umbrella project

    This project contains 3 clients

    Development language: c++

    Client files: AlethZero, Mix and Eth

    Platforms used: windows, linux and OSX

    Interface: Graphical interface

    Functions and features: Strictly speaking, this project is a shell of the cpp-ethereum project. It was written by Gavin Wood, the former CTO of the Ethereum Foundation, so it is very popular and easy to use. AlethZero is a graphical wallet client, which corresponds to the function of Geth, but is fully graphical. However, with the subsequent launch of Mist, a graphical wallet promoted by the Ethereum Foundation, it gradually declined. Mix is ​​a development IDE for smart contracts (called DAPP in Ethereum), which can support the writing, debugging, deployment, and full graphical interface of smart contracts (DAPP). Eth is a command-line client written in C++ with the same functionality as Geth.

(3) Mist project

    Development language: JavaScript

    Client file: Mist (currently using the name Ethereum-Wallet)

    Platforms used: windows, linux and OSX

    Interface: Graphical interface

    Functions and features: This project is the main project promoted by the Ethereum Foundation. Mist is positioned not only as a wallet, but also in the future DAPP (application APP for smart contracts) market, similar to the Apple market, where you can have your account and browse , DAPP applications for publishing and buying and selling Ethereum. At present, because the development is not comprehensive enough, the name is temporarily displayed as Ethereum-Wallet, and the function is also very simple, that is, the function of a wallet. Highly recommended, future mainstream clients.

(4) Solidity project

    Development language: C++

    Client file: solc

    Platforms used: windows, linux and OSX

    Interface: Command Line Interface

    Functions and features: This project is the programming language of Ethereum smart contracts (DAPP), using solc as the compiler, this project is mainly used for compilation, strictly speaking, it is a basic compilation platform, which can be replaced by MIX in general development.

(5) The browser-solidity project

    Development language: C++

    Client file: displayed in browser

    Platforms used: windows, linux and OSX

    Interface: Browser interface

    Functions and features: This project is a development environment for the browser version of smart contracts, which can support direct development, debugging and compilation in the browser. For beginners, it can be used quickly without installation, which is very convenient and can be used directly by accessing the address. : https://ethereum.github.io/browser-solidity/

(6) pyethereum project and ethereumj project

    The pyethereum project is an Ethereum client written in the python language, and the ethereumj project is an Ethereum client written in the JAVA language, but the language is different, and the function of the client Geth written in the GO language is exactly the same.

(7) Ethminer Project

    Development language: C++

    Client file: ethminer

    Platforms used: windows, linux and OSX

    Interface: Command Line

    Functions and features: This project is part of the cpp-ethereum project, which is used for GPU mining with Geth, which is more than 100 times more efficient than CPU mining, and can also be used for mining pools

4. Common URLs of Ethereum (including smart contracts)

    There are many useful websites in Ethereum, which are distributed abroad, and it is very difficult to find them. Here is a summary.

1. Ethereum official website: https://ethereum.org/

This website is the official website of Ethereum. It has a detailed introduction to Ethereum and various connection addresses. It is recommended to take a look at it in detail.

2. All source addresses of Ethereum (official): https://github.com/ethereum/

This github is the source address of all projects in Ethereum, as well as updates and releases.

3. Ethereum Homestead documentation address (official): http://www.ethdocs.org/en/latest/index.html

This 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 comprehensively display the network status, including nodes, difficulty, computing power, etc., very intuitive

5. Ethereum resource website (official): http://ether.fund/

The website provides many application resources of Ethereum, such as market conditions, contract auxiliary tools, published smart contracts, Ethereum network, DAAP, etc., to facilitate development and release.

6. Solidity programming documentation (official): http://solidity.readthedocs.io/en/latest/

This website provides a comprehensive reference manual for the Ethereum Solidity language, which is a must for learning 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 are 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 papers and development guides here, which are more comprehensive.

10. Ethereum Chinese fan website: http://www.aibbt.com/a/ethereum/

This website is a website established spontaneously by domestic Ethereum enthusiasts. The content is relatively complete and the information is updated quickly.

11. Ethereum's gitter real-time communication website: https://gitter.im/orgs/ethereum/rooms

This website is the website of Ethereum's gitter chart. There are many rooms according to the project. As long as you ask questions, most of them will answer them, which is very good, but you can only communicate in English.

12. The official forum of Ethereum: https://forum.ethereum.org/

The official forum, nothing to say, a few questions I encountered, all the answers found here

13. A third-party powerful IDE for Ethereum: https://live.ether.camp/

This is the Solidity IDE released by a third party. I took a look at it. It is very powerful. It is too powerful to be used. His goal is an enterprise-level IDE, and foreigners use it more.

14. Truffle manual for Ethereum development framework: http://truffle.readthedocs.io/en/latest/

The manual of Truffle, the current popular development framework of Ethereum, this framework is more popular.

15. The dapple manual for the Ethereum development framework: http://dapple.readthedocs.io/en/master/

This development framework is seen on the gitter chart. I feel that there are not many people using it. Let's observe it first.

16. Meteor manual for the official recommended development framework of Ethereum: https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor

This development framework is officially recommended by Ethereum and has been written into the official wiki of Ethereum. It is worth learning. Of course, the official Ethereum official often changes direction, and it may not be possible to change it in the future.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325177204&siteId=291194637