主页 > imtoken安卓app下载 > 区块链学习(二)以太坊学习介绍

区块链学习(二)以太坊学习介绍

imtoken安卓app下载 2023-04-12 05:23:55

很多人在刚接触区块链的时候都想知道以太坊是什么,和区块链有什么关系,为什么要学习以太坊等问题,本文将简单介绍一下,目的是为了进一步学习和了解以太坊将来学习。

先从区块链的发展说起:

区块链起源于比特币,是比特币的底层技术。 具体介绍可以参考我的区块链介绍博客:

区块链1.0时代:

即比特币应用中的区块链技术,它记录了自比特币诞生以来所有的比特币转账交易,相当于比特币网络的“数据库”。 其实在区块链1.0时代,也就是比特币所使用的区块链技术中,已经包含了智能合约的概念。 可以说,智能合约的引入,让区块链技术演变成一股驱动世界的力量。 区块链1.0的特点和不足:去中心化、公开性、自治性、信息不可篡改、匿名性。 缺点:支持智能合约的脚本系统不完善,导致其在非金融领域的应用难度很大。 数学计算吞噬了全网80%的算力。 每个块的大小只有1M,能记录的信息非常有限。

区块链2.0诞生:

以太坊的出现使得智能合约能力的自由释放成为可能。 以太坊在比特币区块链的基础上做了重大改进: 1. 完善脚本系统,让智能合约可以应用在各个非金融领域,这一点非常重要; 2.平衡账户,实现更精细的账户控制; 3.底层协议保持简单。以太坊:图灵完备虚拟机

区块链技术汇集了多个领域的概念和操作,包括计算、通信网络、密码学和人工智能。 在区块链2.0中,我们需要通过智能合约和智能资产来记录和传输更复杂的资产类型,需要第三步——更强大的脚本系统——最终实现图灵完备(能够运行任何货币、协议和区块链) . 以太坊是一个基于区块链的项目,旨在提供图灵完备的脚本语言和图灵完备的平台。

所以,我们学习区块链,可以直接从学习以太坊开始。

什么是以太坊? (官方网站: )

以太坊是一个全新的开放区块链平台,允许任何人构建和使用在区块链技术上运行的去中心化应用程序。 与比特币一样,以太坊不受任何人控制或拥有——它是一个由世界各地许多人创建的开源项目。 与比特币协议不同,以太坊的设计具有灵活性和适应性。 在以太坊平台上创建新的应用程序非常容易,任何人都可以安全地使用平台上的应用程序。

以太坊虚拟机

以太坊是一个可编程的区块链。 它不给用户一系列预先设定的操作(如比特币交易),而是允许用户根据自己的意愿创建复杂的操作。 因此,它可以作为多种类型的去中心化区块链应用程序的平台,包括但不限于加密货币。

以太坊狭义地指一组为去中心化应用程序定义平台的协议。 其核心是以太坊虚拟机(“EVM”),它可以执行任意复杂算法的编码。 用计算机科学术语来说,以太坊是“图灵完备”的。 开发者可以使用类似于现有的 JavaScript 和 Python 的其他友好编程语言作为模型来创建运行在以太坊模拟器上的应用程序。

如何运行以太坊?

通过下载以太坊提供的客户端(或者你自己写,如果你有能力),以太坊客户端将通过网络连接到其他运行类似客户端软件的计算机,并开始通过它们下载以太坊区块链以进行追赶。 相当于你也加入了以太坊区块链网络,成为其中的一个节点,与其他节点具有同等的地位来处理交易。 请记住,在对等网络中,没有“核心”服务器,每台计算机都有平等的权利和地位。 您可以在以太坊区块链上做的事情:连接到以太坊网络、探索以太坊区块链、创建新交易和智能合约、运行智能合约、挖掘新区块等等。

你可以理解为以太坊网络是一个类似于比特币的网络,但不仅如此,它还是一个底层开发平台,机制更加完善。 以太坊也是工作量证明 (POW) 挖矿。 与比特币一样,矿工通过消耗电力来解决数学难题来创建有效区块。 以太坊的工作量证明算法称为Ethash,它与比特币的工作量证明算法略有不同,它降低了对矿工算力的要求,使得用普通硬件挖矿成为可能。 以太坊有一个内置的数字货币:

以太坊中的代币称为以太币,简称ETH。 与 BTC 类似,这种加密货币可用于与其他加密货币或其他法定货币进行交易。 目前一枚 ETH 的价格约为 365 元人民币(2017 年 3 月)。 与 BTC 所有者被记录在比特币区块链上的方式相同,ETH 所有者也被记录在以太坊区块链上,尽管它们在技术上的实现方式略有不同。

以太坊的出块时间更短

与比特币的 10 分钟相比,以太坊的区块间时间约为 14 秒。 这意味着当你在比特币和以太坊中发起交易时,以太坊中的交易被记录在区块链中的速度比比特币中的交易被记录在区块链中的速度更快。 你可以认为比特币平均需要 10 分钟才能写入数据库,而以太坊平均需要 14 秒才能写入数据库。

智能合约可以在以太坊虚拟机上运行

与比特币最初的脚本语言相比,以太坊中用于部署代码和运行智能合约的语言更高级,因此也更为开发者所熟悉。 智能合约是存储在以太坊区块链上的简短计算机程序。 智能合约代码在称为以太坊虚拟机的东西上运行,该虚拟机分布在网络中所有参与者的计算机上。 和。 现在可以将智能合约简单地与传统的服务器端代码进行比较。

以太坊学习开发中常用项目和工具介绍:

刚接触以太坊的时候,对它的各种客户端、编译工具、环境、项目等一头雾水,这里简单介绍一下以太坊的各种项目、客户端、工具等。

获取客户端:

即Go-ethereum项目采用go语言开发,界面:命令行适用平台:windows、linux和OSX

功能与特点:本项目是使用最广泛的以太坊客户端。 大多数节点都在运行这个客户端。 它还具有最多的教程和示例。 推荐使用。 可用于挖矿、搭建私链、管理账户、部署智能合约等通用功能,无法编译智能合约。

pyethereum 项目和 ethereumj 项目(客户端)

pyethereum项目是用Python写的以太坊客户端,ethereumj项目是用Java写的以太坊客户端以太坊区块体中包含交易列表,只是语言不同,用GO语言写的客户端Geth功能完全一样。

webthree-umbrella 项目(客户端):

本项目包含3个客户端,开发语言:c++,平台:windows、linux和OSX,易用性也很好。 但随着以太坊基金会主推的图形化钱包Mist的上线,逐渐没落。

混合(IDE):

Mix是智能合约(以太坊简称DAPP)的开发IDE,可以支持智能合约(DAPP)的编写、调试、部署、全图形化界面。 不过目前已经停止开发,开发团队转向了Remix。 Remix 一般在编写和调试智能合约时使用。

Mist 项目(客户端)

由JavaScript语言开发,客户端文件:Mist,可在windows、linux和OSX平台上使用的图形界面。 Mist的定位不仅仅是钱包,而是未来的DAPP(智能合约应用APP)市场,类似苹果市场,可以拥有自己的账户,浏览,发布,买卖以太坊DAPP应用。 目前因为开发不够全面,名称暂时显示为Ethereum-Wallet,功能也很简单,就是一个钱包的功能。 以后多注意。

松露:

Truffle 是以太坊上最受欢迎的开发框架。 它是用于编译和部署智能合约的本地工具。 它可以为你做很多编译和部署,让开发者专注于开发。

测试rpc:

Testrpc是以太坊区块链的本地模拟环境。 与geth不同,geth是一个真实的以太坊环境。 Testrpc 是使用内存在本地模拟的以太坊环境。 开发调试更方便快捷。 在 testrpc 中测试您的合约后,即可将其部署到 geth。

解决方案:

目前一般开发中可以用Remix代替智能合约的编译工具。

团结项目

Solidity 是一种用于智能合约的编程语言。 语言风格类似于 JavaScript。 目前只适合编写以太坊智能合约。 你可以把它理解为一种新的编程语言。

浏览器坚固项目:

采用C++开发,用户无需下载本地编译器,直接在浏览器中输入网址即可显示编译器,非常方便。 可用平台:windows、linux 和 OSX。 功能特点: 本项目为智能合约浏览器版开发环境,可支持在浏览器中直接开发、调试、编译。 对于新手来说,可以快速上手,无需安装,非常方便,直接访问地址即可使用:

总结一下:一般我们初学者出于易用性的考虑,可以使用一些简单的本地编程:geth等客户端,truffle开发框架以太坊区块体中包含交易列表,browser-solidity网页编译器,testrpc测试环境,solidity编程语言。

随附的:

以太坊官网:

这个网站是以太坊的官方网站,里面有对以太坊和各种资源的详细介绍。

Solidity编程帮助文档:

Truffle 开发框架文档:

以太坊新手教程: