如何从零开始学习区块链技术——推荐从以太坊开发DApp开始
很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源。
一、 以太坊和区块链的关系
从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取了技术架构和体系,称之为区块链技术。从比特币提取的区块链技术称之为区块链1.0时代,那个时候的应用主要以电子货币和去中心化交易为主,比如各种山寨币。而以太坊将区块链带入了2.0的时代,区块链2.0不是推翻了1.0,而是在1.0的基础上实现了区块知晓、价值知晓、图灵完备,并进行了细节优化,从而形成了以智能合约为特色的区块链2.0。比特币定位于一个应用,而以太坊定位于平台,你可以在这个平台上利用智能合约做各种应用。
所以,学习区块链,直接学习以太坊就好。推荐汇智网的以太坊DApp实战开发入门教程,通过在线编程环境和循序渐进的知识点引导,可以迅速理解并上手区块链应用开发。
二、以太坊入门的方法
对于没有接触过区块链的人,建议先参会以太坊的日常应用。
1、使用客户端
最流行的geth使用指南电子书:https://pan.baidu.com/s/1k8gJ1VihtXkOpCfPdB6Pdg
2 、挖矿
挖矿的教程很多,一般分布在各个矿池,这里推荐一个国内矿池的教程,并且可以加入各个矿池的群去交流一下。国内的矿池有www.f2pool.com,www.bw.com 等几大矿池。
3、浏览公有链的区块信息
在经历以上事情后,可以通过区块链浏览器去查看自己的账户和交易,更直观感受。
通过以上的操作,基本可以算对区块链有了一个初步的了解和感知。
三、以太坊各个项目说明
以太坊发布以后,有 多个客户端,同时也支持多个平台,初学者往往被各种各样的客户端弄迷糊,本文进行了详细的总结。
以太坊客户端以语言进行分类,在github上分成了不同项目,源代码地址:https://github.com/ethereum/,虽然以太坊客户端众多,但是有两个共同特点:
同一语言的客户端在不同平台上的使用是完全相同的
不同语言的客户端(mist、geth、eth等等)之间在同一个平台(linux、windows或OSX)上共用一样的应用配置,同时其命令行可使用的参数也是一致。
下面就以github上的项目为分类说明各个客户端的用途和特点:
go-ethereum项目
开发语言:go语言
客户端文件:Geth
界面:命令行
适用平台:windows、linux和OSX
功能和特点:该项目是使用最广泛的以太坊客户端,大部分节点都是运行的该客户端,教程和例子也最多,推荐使用,可用于挖矿,组建私有链,管理账号,部署智能合约等常用功能,不可以编译智能合约。
webthree-umbrella项目
此项目包含3个客户端
开发语言:c++
客户端文件:AlethZero、Mix和Eth
使用平台:windows、linux和OSX
界面:图形化界面
功能和特点:该项目严格来说是cpp-ethereum 项目的一个shell,是以太坊基金会的前CTO,Gavin Wood主持编写的,所以人气也很高,易用性也很好。AlethZero是图形化的钱包客户端,对应的是Geth的功能,不过是全图形化的。但是随着后续以太坊基金会主推的图形化钱包Mist的推出,渐渐没落。Mix 是智能合约(以太坊称为DAPP)的开发IDE,可以支持智能合约(DAPP)的编写、调试,部署,全图形化界面,但是目前已经停止开发了,开发组转向了Remix。Eth是C++编写的命令行客户端功能和Geth一样。
Mist项目
开发语言:JavaScript
客户端文件:Mist(目前使用Ethereum-Wallet的名称)
使用平台:windows、linux和OSX
界面:图形化界面
功能和特点:该项目是以太坊基金会主推的项目,Mist定位不只是一个钱包,而是将来DAPP(智能合约的应用APP)市场,类似于苹果市场,在这里可以有你的账号,可以浏览、发布和买卖以太坊的DAPP应用。目前因为开发还不够全面,名称暂时显示为Ethereum-Wallet,作用也很简单,就是一个钱包的功能。强烈推荐,未来的主流客户端。
solidity项目
开发语言:C++
客户端文件:solc
使用平台:windows、linux和OSX
界面:命令行界面
功能和特点:该项目是以太坊智能合约(DAPP)的编程语言,使用solc作为编译程序,该项目主要用于编译,严格来说是一个基本的编译平台,一般开发可用MIX替代。
browser-solidity项目
开发语言:C++
客户端文件:浏览器中显示
使用平台:windows、linux和OSX
界面:浏览器界面
功能和特点:该项目是智能合约浏览器版本的开发环境,可以支持在浏览器中直接开发、调试和编译,对于初学者来说,可以快速上手,不需要安装,非常方便,直接访问地址使用:https://ethereum.github.io/browser-solidity/
pyethereum项目和ethereumj项目
pyethereum项目是用python语言编写的以太坊客户端,ethereumj项目是用JAVA语言编写的以太坊客户端,只是语言不同,和前面GO语言编写的客户端Geth的功能完全相同。
etheminer项目
开发语言:C++
客户端文件:ethminer
使用平台:windows、linux和OSX
界面:命令行
功能和特点:该项目是cpp-ethereum项目的一部分,用于和Geth配合进行GPU挖矿,比CPU挖矿效率高100多倍,也可以用于矿池挖矿
四、以太坊常用网址(含智能合约)
以太坊有很多有用的网站都分布在国外,找起来很费劲,这里总结一下
1、以太坊官方网站:https://ethereum.org/
该网站为以太坊的官方网站,有详细的以太坊介绍和各种连接地址,推荐详细看一看
2、以太坊所有源码地址(官方):https://github.com/ethereum/
该github为以太坊所有项目的源码地址,以及更新和发布。
3、以太坊Homestead文档地址(官方):http://www.ethdocs.org/en/latest/index.html
该网站为以太坊的详细介绍文档,基本包括了以太坊的方方面面,如果有什么不清楚的原理和应用,基本都可以在这里找到答案和线索。
中文版电子书:https://pan.baidu.com/s/18nrVXrZ26ubcgrOGi1iwZA
4、以太坊网络状态地址(官方):https://ethstats.net/
该网站能全面的显示网络状态,包括节点、难度、算力等等,非常直观
5、以太坊资源网站(官方):http://ether.fund/
该网站提供了以太坊很多应用资源,比如市场情况、合约辅助工具、已发布的智能合约、以太坊网络、DAAP等,方便开发和发布。
6、Solidity编程文档(官方):http://solidity.readthedocs.io/en/latest/
该网站提供了以太坊Solidity语言的全面参考手册,学习Solidity语言必备。
中文版电子书:https://pan.baidu.com/s/18YG0QDVjH9L2B02TnIqVvw
7、以太坊网络扫描(官方):http://etherscan.io/
该网站提供了以太坊网络的各种状态,比如帐号的详情、TOKEN详情,难度详情、区块详情,非常方便和直观。
8、以太坊官方博客:https://blog.ethereum.org/
9、以太坊wiki百科地址:https://github.com/ethereum/wiki/wiki
在这里有白皮书、黄皮书以及开发指南,比较全面。
10、以太坊的gitter的实时交流网站:https://gitter.im/orgs/ethereum/rooms
该网站是以太坊的gitter chart的网站,根据项目分了很多房间,只要你提问题,大部分有人回答,很不错,不过只能英语交流。
11、以太坊的官方论坛:https://forum.ethereum.org/
官方论坛,没什么好说的,我遇到的几个问题,都是在这里找到的答案
12、以太坊第三方强大的IDE:https://live.ether.camp/
这个是第三方发布的Solidity IDE,我看了一下,很强大,强大到还不太会用,他的目标是企业级IDE,老外用的较多。
13、以太坊开发框架Truffle说明书:http://truffle.readthedocs.io/en/latest/
以太坊目前很流行的开发框架Truffle的说明书,这个框架比较流行。
中文版电子书:https://pan.baidu.com/s/1mTXw8g7zgCaJkX6QZiejVQ
14、以太坊开发框架dapple说明书:http://dapple.readthedocs.io/en/master/
这个开发框架是在gitter chart上看到的,感觉用的人不多,先观察
15、以太坊官方推荐开发框架Meteor说明书:https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor
这个开发框架是以太坊官方推荐的,写进了以太坊的官方wiki,值得学习,当然,以太坊官方经常转换方向,以后换别的也没准。
16、以太坊DApp做的一个投票系统开发的实战教程:https://github.com/jimilai/ethereum
如何从零开始学习区块链技术——推荐从以太坊开发DApp开始的更多相关文章
- 以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台(一)
第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售 ...
- 以太坊开发DApp入门教程——区块链投票系统(一)
概述 对初学者,首先要了解以太坊开发相关的基本概念. 学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...
- 区块链入门(2):搭建以太坊私有链(private network of ethereum),以及挖矿的操作..
在做一些测试工作的时候, 为了方便控制以及更快的进入真正的测试工作,可能需要搭建一个私有的以太坊网络. 而以太坊节点之间能够互相链接需要满足1)相同的协议版本2)相同的networkid,所以搭建私有 ...
- 区块链--Ubuntu上搭建以太坊私有链
1.搭建私链所需环境 操作系统:ubuntu16.04,开虚拟机的话要至少4G,否则会影响测试挖矿时的速度 软件: geth客户端 Mist和Ethereum Wallet:https://githu ...
- 区块链使用Java,以太坊 Ethereum, web3j, Spring Boot
Blockchain is one of the buzzwords in IT world during some last months. This term is related to cryp ...
- 区块链技术(一):Truffle开发入门
以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架,这是我们第一篇区块链技术文章介绍truffle的原因,实战是最重要的事情,这篇文章不讲原理,只 ...
- 用Python从零开始创建区块链
本文主要内容翻译自Learn Blockchains by Building One 本文原始链接,转载请注明出处. 作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python来创建一 ...
- 如何用区块链技术解决信任问题?Fabric 架构深度解读
阿里妹导读:区块链技术,随着比特币的兴起而为大家所知.但是具体到技术本身,大家相对熟悉的几个词可能是“数据不可篡改”.“公开链”.“分布式数据”.“共识机制”等. 这篇文章将抛砖引玉,通过深度解读Hy ...
- 用spring boot 2从零开始创建区块链
区块链这么火的技术,大java怎能落后,所以有了本文,主要代码参考自 Learn Blockchains by Building One , 中文翻译:用Python从零开始创建区块链 . 一.区块链 ...
随机推荐
- 芝麻HTTP:Flask的安装
Flask是一个轻量级的Web服务程序,它简单.易用.灵活,这里主要用来做一些API服务. 1. 相关链接 GitHub:https://github.com/pallets/flask 官方文档:h ...
- OpenStack_I版 3.glance部署
存储镜像path 默认镜像不存储在本地,一般放在swift对象存储或Cinder块存储里 glance安装 拷贝配置文件到/ect下,并新建配置目录,日志目 ...
- monkeyrunner_获取apk的包名和activity名
一.使用adb获取单个apk的包名和Activity名称: 1.配置adb环境 a. 我的电脑点击右键-属性-高级-环境变量; b. 环境变量中新建PATH,变量值输入adb.exe工具所在目录; ...
- RobotFramework自动化测试框架的基础关键字(三)
1.1.1 如何定义一个字典 此处我们说的字典,其实就等同于python语言中的字典,和列表一样,字典也是python语言中非常常用的一种数据结构,也类似于Java 语言中的Map. 在 ...
- 简述MyBatis的体系结构
MyBatis体系结构主要由以下几个关键部分: 1.加载配置 配置有两种形式:一种是xml配置文件,另一种是java代码的注解MyBatis将SQL的配置信息加载成为一个个的MappedStateme ...
- 【CF235C】Cyclical Quest(后缀自动机)
[CF235C]Cyclical Quest(后缀自动机) 题面 洛谷 题解 大致翻译: 给定一个串 然后若干组询问 每次也给定一个串 这个串可以旋转(就是把最后一位丢到最前面这样子) 问这个串以及其 ...
- 【BZOJ2875】随机数生成器(矩阵快速幂)
[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Me ...
- emacs配置
原配置 (global-set-key [f9] 'compile-file) (global-set-key [f10] 'gud-gdb) (global-set-key (kbd "C ...
- 【linux之进程管理,系统监控】
一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R ...
- 百度定位一直出现4.9E -324的问题解决方法
问题:华为mate10一直在申请百度定位的时候出现此问题并且定位权限和定位服务都打开的情况也是返回这个参数 明显没有定位成功,其他手机暂时没有出现(只要打开定位权限就会立即定位成功) 解决:在定位之前 ...